【问题标题】:NLTK remove stop words from CSVNLTK 从 CSV 中删除停用词
【发布时间】:2015-01-20 00:38:49
【问题描述】:

虽然这是一个常见问题,但我找不到适合我的情况的解决方案。我有数据,用逗号分隔,如下所示。

['my scientific','data']['is comma-separated','frequency']

我正在尝试使用

删除停用词
from nltk.corpus import stopwords
stopword = stopwords.words('english')
mynewtext = [w for w in transposed if w not in stopword]
out_file.writerow(w)

但它给了我一个错误,提示“UnicodeWarning:Unicode 相等比较未能将两个参数都转换为 Unicode - 将它们解释为不相等”。我不确定我在哪里犯了错误。我希望我在 csv 文件中的输出类似于

scientific,data
comma-separated,frequency

另外,我希望它适用于上下两种情况。 casefield 在我的 Python 2.7 版中不起作用

【问题讨论】:

    标签: python csv unicode nltk stop-words


    【解决方案1】:

    我认为您正在将上述代码中的 str objectunicode object 进行比较。

    建议你看一下链接Python unicode equal comparison failed

    >>> s1 = u'Hello'
    >>> s2 = unicode("Hello")
    >>> type(s1), type(s2)
    (<type 'unicode'>, <type 'unicode'>)
    >>> s1==s2
    True
    >>> 
    >>> s3='Hello'.decode('utf-8')
    >>> type(s3)
    <type 'unicode'>
    >>> s1==s3
    >>>True
    

    【讨论】:

    • 感谢您的回复。我不确定我这样做的方式是否正确,我的数据在变量“转置”中,所以根据你的回答,我使用 unicode(transposed) 并保持其余部分相同。现在我的输出 csv 文件被分割成单独的字母。
    【解决方案2】:

    试试

    # -*- coding: utf-8 -*-,  
    

    在源代码的标题中。

    它告诉 Python 你保存的源文件是utf-8Python 2 的默认值为 ASCII(Python 3utf-8)。这只会影响解释器如何读取文件中的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2019-10-01
      • 2013-10-08
      • 1970-01-01
      • 2014-04-29
      • 2019-01-21
      • 2018-12-06
      相关资源
      最近更新 更多