首页 > 解决方案 > 如何在熊猫中拆分复合词?

问题描述

我有并记录了由许多复合词(或有时是组合词)组成的:

文件.csv

index  text
 0    my first java code was helloworld     
 1    my cardoor is totally broken
 2    I will buy a screwdriver to fix my bike

如上所示,一些单词是组合的或复合的,我从这里使用复合词拆分器来解决这个问题,但是,我很难将它应用到我文档的每一行(如熊猫系列)并将文档转换为干净的形式的:

清洁文档.csv

index  text
 0    my first java code was hello world     
 1    my car door is totally broken
 2    I will buy a screw driver to fix my bike

(我知道螺丝刀之类的词应该在一起,但我的目标是清理文件)。如果您对仅拆分组合词有更好的想法,请告诉我。

拆分器代码可以作为:

import pandas as pd
import splitter ## This use enchant dict (pip install enchant requires)
data = pd.read_csv('document.csv.csv')

那么,它应该使用:

splitter.split(data) ## ???

我已经研究过这样的事情,但这在我的情况下不起作用。谢谢

标签: python-3.xpandas

解决方案


您使用 apply wit axis =1 :您可以尝试以下操作

 data.apply(lambda x: splitter.split(j) for j in (x.split()), axis = 1)

我的系统上没有安装分离器。通过查看您提供的链接,我有以下代码。你能试一下吗:

def handle_list(m):
    ret_lst = []
    L = m['text'].split()
    for wrd in L:
        g = splitter.split(wrd)
        if g :
            ret_lst.extend(g)
        else:
            ret_lst.append(wrd)

    return ret_lst


dft.apply(handle_list, axis = 1)

推荐阅读