我正在使用NLTK來分析一些經典文本,並且我正忙於按句子標記文本。例如,這裏是我得到的一個片段來自Moby Dick:如何調整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?
-----
"
'''
我不指望十全十美這裏,考慮到梅爾維爾的語法是有點過時,但NLTK應該能夠處理終端雙引號和「太太」這樣的標題。由於標記器是無監督訓練算法的結果,但是,我無法弄清楚如何修改它。
任何人都有更好的句子tokenizer的建議?我更喜歡一種簡單的啓發式方法,我可以進行攻擊,而不必去訓練我自己的解析器。
啊,很高興知道。奇怪的是,如果我通過你的解決方案在我的問題中運行完整的句子,這是行不通的。任何想法爲什麼? –
只是在答案中增加了更多信息。 – vpekar
我通常避免'感謝'的評論,但這裏真的是在這裏:謝謝! – Private