看板 Python 關於我們 聯絡資訊
大家好~ 最近剛好在跑一個Dutch corpus, 我使用的是utf-8, 可是在server上面跑nltk.concordance('van/IN') 就會出現 UnicodeEncodeError: 'big5' codec can't encode character u'\xeb' in position 28: illegal multibyte sequence 因為資料裡面有特殊符號,可是utf-8本身就都包含了這些特殊字元 為什麼執行nltk.collocations()就沒有問題? 我在猜也許是因為server的設定問題?! 如果是這樣的話, 那請問要怎麼改成讓他可以顯現result? 附上我執行的指令: # coding=utf-8 # -*- encoding: utf-8 -*- import nltk, codecs, pattern.nl, re from pattern.nl import parse nl = codecs.open(r'ned_korp.txt', 'r', encoding = 'utf-8').read() my_text = parse(nl, tags=True, chunks=False) my_text = my_text.split(' ') nltk_all = nltk.Text(my_text) nltk_all.concordance('van/IN') 希望以上問題不會太蠢... 請大家鞭小力點 先感謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.91.77.44
tacosung:我自己解決了!!!! 附上更改過的codes!! 12/27 00:01
tacosung:在read()後面多加上 .encode('unicode-escape') 12/27 00:04
bizkit:nltk++ 01/16 20:32