2014-11-30 19 views
5

tôi có thể đọc thành công văn bản vào một biến nhưng trong khi cố gắng để tokenize văn bản im nhận được lỗi lạ này:python lỗi nltk.sent_tokenize ascii codec không thể giải mã

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

tôi biết nguyên nhân của lỗi là một số chuỗi đặc biệt/char mà tokenizer là không thể đọc/giải mã nhưng sau đó làm thế nào để bỏ qua điều này? Cảm ơn

Trả lời

22

Bạn nên cố gắng này:

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

hoạt động như sự quyến rũ. Cảm ơn – rzach

+0

từ lỗi của OP, rõ ràng là NLTK đang sử dụng mã hóa ASCII trong khi send_tokenize. Do đó giải pháp trên sẽ CHỈ hoạt động nếu tất cả char UNICODE có thể được chuyển đổi thành ASCII tương đương, không phải lúc nào cũng như trường hợp UNICODE có bộ CHAR lớn hơn nhiều (> 1M) so với ASCII (= 256). – chandresh

Các vấn đề liên quan