2014-11-21 87 views
1

雖然這是一個常見問題,但我無法找到適用於我的案例的解決方案。我有數據,這是逗號分隔如下。NLTK從CSV中刪除停用詞

['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轉換 - 將它們解釋爲不平等」 。我不確定我犯了什麼錯誤。我想我的csv文件輸出到像

scientific,data 
comma-separated,frequency 

而且,我希望它爲這兩種情況下,上下工作。 casefield在我的Python版本中不起作用2.7

回答

2

嘗試

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

在你的源代碼中的頭。

它告訴Python,您保存的源文件是utf-8Python 2的默認值是ASCII(對於Python 3它是utf-8)。這隻會影響解釋器如何讀取文件中的字符。

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 
+0

感謝您的回覆。我不確定我做的方式是否正確,我的數據是在變量「轉置」的,所以根據您的回答,我使用unicode(轉置)並保持其餘的相同。現在我的輸出csv文件被分成單獨的字母。 – abn 2014-11-21 19:38:10