2014-11-30 14 views
5

deşifre edemez ama metinler bu garip hata alıyorum im tokenize çalışırken: Ben hatasının nedenini olduğunu biliyoruzpiton nltk.sent_tokenize hata ASCII codec'i başarıyla bir değişkene metin okuyabilir

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

Tüyleştiricinin okuyamayacağı/çözemediği bazı özel dize/char'dur, ancak sonra bunu nasıl atlatabiliriz? Teşekkür

cevap

22

Bunu denemek gerekir: Özetle

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

çekicilik gibi çalıştı. OP'nin hatasından – rzach

+0

'a teşekkürler, NLTK'nın sent_tokenize sırasında ASCII kodlamasını kullandığı açıktır. Bu nedenle, yukarıdaki UNICODE karakterinin ASCII (= 256) 'dan çok daha büyük CHAR setine (> 1M) sahip olması durumunda her zaman geçerli olmayan eşdeğer ASCII'ye dönüştürülebiliyorsa, yukarıdaki çözüm YALNIZCA çalışacaktır. – chandresh