[問題] NLTK concordance encoding 問題

看板Python作者 (taco)時間14年前 (2011/12/26 19:20), 編輯推噓1(102)
留言3則, 2人參與, 最新討論串1/1
大家好~ 最近剛好在跑一個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

12/27 00:01, , 1F
我自己解決了!!!! 附上更改過的codes!!
12/27 00:01, 1F

12/27 00:04, , 2F
在read()後面多加上 .encode('unicode-escape')
12/27 00:04, 2F

01/16 20:32, , 3F
nltk++
01/16 20:32, 3F
文章代碼(AID): #1E-5Y1AM (Python)
文章代碼(AID): #1E-5Y1AM (Python)