【问题标题】:How to split compound word in pandas?如何在熊猫中拆分复合词?
【发布时间】:2020-05-06 17:45:58
【问题描述】:

我有一个由许多复合词(或有时是组合词)组成的文档:

文档.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

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

cleanDocument.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) ## ???

我已经研究过this 之类的东西,但这不适用于我的情况。谢谢

【问题讨论】:

    标签: python-3.x pandas


    【解决方案1】:

    您使用 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)
    

    【讨论】:

    • 感谢您的评论。我申请了,我收到一个错误SyntaxError: Generator expression must be parenthesized
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 2019-05-08
    相关资源
    最近更新 更多