Как настроить токенизатор предложений NLTK

Я использую NLTK для анализа нескольких классических текстов, и яЯ прибегаю к неприятностям, разбивая текст по предложениям. Например, здесьS, что я получаю за фрагмент отМоби Дик:

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?
-----
"
'''

Я нездесь нельзя ожидать совершенства, учитывая, что МелвиллСинтаксис s немного устарел, но NLTK должен уметь обрабатывать терминальные двойные кавычки и заголовки типа "Г-жа." Поскольку токенизатор является результатом неконтролируемого обучающего алгоритма, я могуне могу понять, как с этим повозиться.

У кого-нибудь есть рекомендации для лучшего предложения токенизатора? Я'Я предпочел бы простую эвристику, которую я могу взломать, вместо того, чтобы обучать свой собственный парсер.

Ответы на вопрос(4)

Ваш ответ на вопрос