NLTK从CSV中删除停用词

时间:2014-11-21 19:12:51

标签: python csv unicode nltk stop-words

虽然这是一个常见问题,但我无法找到适合我案例的解决方案。我有数据,这是逗号分隔如下。

['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版

2 个答案:

答案 0 :(得分:3)

我认为您正在将上述代码中的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

答案 1 :(得分:2)

尝试

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

在源代码的标题中。

它告诉Python您保存的源文件是utf-8 Python 2 的默认值为ASCII(对于 Python 3 它&#39; s utf-8)。这只会影响解释器读取文件中字符的方式。