2014-11-30 17 views
5

ho potuto leggere correttamente il testo in una variabile, ma durante il tentativo di tokenize i testi nel mese di ottenere questo strano errore:pitone errore nltk.sent_tokenize ascii codec non può decodificare

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

faccio conoscere la causa dell'errore è qualche stringa/char speciale che il tokenizer non è in grado di leggere/decodificare ma come ignorarlo? Grazie

risposta

22

si dovrebbe provare questo:

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

ha funzionato come fascino. Grazie – rzach

+0

dall'errore dell'OP, è chiaro che NLTK sta usando la codifica ASCII durante send_tokenize. Quindi la soluzione sopra funzionerà SOLO se tutto il carattere UNICODE può essere convertito in ASCII equivalente che non è sempre il caso in cui UNICODE ha un set CHAR molto più grande (> 1M) rispetto a ASCII (= 256). – chandresh

Problemi correlati