關於NLP的編碼問題的思索

2021-08-17 19:55:51 字數 783 閱讀 4129

前幾天,在嘗試通過nltk工具包對唐詩進行一些處理分析的時候,遇到了編碼解碼方面的錯誤。錯誤如下,就是

unicodedecodeerror: 'gbk' codec can't decode bytes in position 738868-738869: illegal multibyte s。

很明顯,這是編碼解碼上的錯誤,於是去度娘那裡仔細了解了一下編碼解碼方面的知識,得到了乙個算是一勞永逸的解決思路:由於python處理的字元都是unicode編碼,不管輸入的文字是什麼編碼,把輸入的文字解碼為unicode編碼,然後輸出時再編碼為所需編碼。

所以我在解決我的這個中文編碼問題中,首先將輸入的文字另存為utf-8格式之後,然後使用python處理解碼為unicode,處理完後的結果寫入文字時再編碼為utf-8就可以了。

其中讀取文字的**片段為:

import codecs

lines = codecs.open(filename1,'r',encoding='utf-8')

for line in lines:

print(line.encode('utf-8'))

寫入文字的**片段為:

with open(filename2, 'w') as lines:

for line in list_s:

lines.write(line.encode('utf-8')+'\n')

這樣就完美解決了這個unicodedecode問題。

關於字元編碼的問題

寫程式的人基本上都會遇到亂碼的問題,之前自己對字符集 編碼等問題也是一知半解,大概明白什麼意思,但卻說不清楚。由於公司需要做多語言,於是研究了一下,終於把字符集和編碼等問題弄明白了。ascii gb2312 gbk unicode utf 8 utf 16 ucs2 ucs4.對於很多人來說這些東西...

關於字元編碼的問題

這幾天一直在改 前輩 流下來的乙個程式,其中讓我很無語的是 他的字元編碼居然全在servlet 中進行轉碼的,就是這樣 string submit new string request.getparameter submit1 getbytes iso 8859 1 gbk 居然寫成這樣了 讓我來擴...

關於xml的編碼問題

昨天在進行蕭山校產的報表配置的時候遇到乙個問題,我要求輸出的xml檔案中保留我原來的內容 內容中包括有很多的空格 但是dom4j在輸出檔案時自動將這些空格去除了,經研究有以下發現 當我們在用dom4j處理xml檔案輸出的時候可能會遇到以下的問題,就是我們要求每個element中的text保留我寫入的...