2017-01-31 28 views
0

我的代碼在基於斷碼的:https://rstudio-pubs-static.s3.amazonaws.com/79360_850b2a69980c4488b1db95987a24867a.htmlPython的隱含狄利克雷分佈Stopped_tokens錯誤

當我開始去更大的文件數1000左右,我可以用較低的數字文件的運行我的程序,但是,後來我得到這個錯誤:

ReadWrite.py:59:UnicodeWarning:統一等於比較未能兩個參數爲Unicode轉換 - 將它們解釋爲是不平等的 stopped_tokens = [我爲我在令牌如果不是我在en_stop]

我想知道是否有人遇到過這個或之前一個人有任何想法如何解決這個錯誤。

回答

0

看起來你似乎試圖在列表理解中比較不同類型的變量。 en_stop包含unicode變量。我猜,你正在從文件中讀取的令牌有utf-8,cp1251等編碼。你應該嘗試確定你的令牌有什麼樣的編碼。你可以這樣來做:

encoding = 'utf-8' # assign name like 'utf-8', 'cp1251', etc. 
string = tokens[0] 
try: 
    string.decode(encoding) 
    print 'string is {}'.format(encoding) 
except UnicodeError: 
    print 'string is not {}'.format(encoding) 

當你找到正確的編碼,就可以得到stopped_tokens這樣:

stopped_tokens = [i for i in tokens if not unicode(i, encoding) in en_stop] 

unicode(i, encoding)應該將令牌轉換爲Unicode表示在列表理解。

+0

我接受了你的建議,並檢查了我的文件是utf-8。但是,當我運行代碼更改時,建議將我的錯誤更改爲UnicodeDecodeError:'ascii'編解碼器無法解碼位置2中的字節0xe2:序號不在範圍(128)中。這是因爲我把文件轉換爲utf-8嗎? –