Tôi đang sử dụng NLTK để phân tích một vài văn bản cổ điển và tôi đang gặp sự cố khi mã hóa văn bản theo câu. Ví dụ, đây là những gì tôi nhận được cho một đoạn từ Moby Dick:Cách tinh chỉnh mã thông báo câu hỏi NLTK
import nltk
sent_tokenize = nltk.data.load('tokenizers/punkt/english.pickle')
'''
(Chapter 16)
A clam for supper? a cold clam; is THAT what you mean, Mrs. Hussey?" says I, "but
that's a rather cold and clammy reception in the winter time, ain't it, Mrs. Hussey?"
'''
sample = 'A clam for supper? a cold clam; is THAT what you mean, Mrs. Hussey?" says I, "but that\'s a rather cold and clammy reception in the winter time, ain\'t it, Mrs. Hussey?"'
print "\n-----\n".join(sent_tokenize.tokenize(sample))
'''
OUTPUT
"A clam for supper?
-----
a cold clam; is THAT what you mean, Mrs.
-----
Hussey?
-----
" says I, "but that\'s a rather cold and clammy reception in the winter time, ain\'t it, Mrs.
-----
Hussey?
-----
"
'''
Tôi không mong đợi sự hoàn hảo ở đây, xem xét rằng cú pháp Melville là một chút ngày, nhưng NLTK nên để có thể xử lý các dấu ngoặc kép thiết bị đầu cuối và các tựa đề như "Mrs." Vì tokenizer là kết quả của một algo đào tạo không giám sát, tuy nhiên, tôi không thể tìm ra cách để tinker với nó.
Bất kỳ ai cũng có đề xuất cho trình thông báo câu tốt hơn? Tôi muốn một heuristic đơn giản mà tôi có thể hack hơn là phải đào tạo phân tích cú pháp của riêng tôi.
Ah, rất hữu ích. Kỳ lạ thay, điều này không hiệu quả nếu tôi chạy câu hoàn chỉnh trong câu hỏi của tôi thông qua giải pháp của bạn. Bất kỳ ý tưởng tại sao? –
Chỉ cần thêm một số thông tin khác vào câu trả lời. – vpekar
Tôi thường tránh nhận xét 'cảm ơn', nhưng ở đây nó thực sự là tại chỗ: cảm ơn! – Private