2014-11-30 2 views
5

mógłbym z powodzeniem czytać tekst do zmiennej, ale podczas próby tokenize teksty im się ten dziwny błąd:python error nltk.sent_tokenize ASCII kodek nie potrafi dekodować

sentences=nltk.sent_tokenize(sample) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 11: ordinal not in range(128) 

znam przyczynę błędu jest jakiś specjalny ciąg/znak, którego tokenizator nie jest w stanie odczytać/odkodować, ale jak to obejść? Dzięki

Odpowiedz

22

powinien spróbować tego:

sentences=nltk.sent_tokenize(sample.decode('utf-8')) 
+0

pracował jak urok. Dzięki – rzach

+0

z powodu błędu OP, jest oczywiste, że NLTK używa kodowania ASCII podczas sent_tokenize. Stąd powyższe rozwiązanie działa TYLKO, jeśli cały kod UNICODE można przekonwertować na równoważny ASCII, co nie zawsze ma miejsce, ponieważ UNICODE ma znacznie większy zestaw CHAR (> 1M) niż ASCII (= 256). – chandresh