Я пытаюсь найти коллокации с NLTK в тексте с помощью встроенного метода.
Сейчас у меня есть следующий пример текста (test и foo следуют друг за другом, но между ними есть граница предложения):
content_part = """test. foo 0 test. foo 1 test.
foo 2 test. foo 3 test. foo 4 test. foo 5"""
Результат токенизации и collocations()
следующий:
print nltk.word_tokenize(content_part)
# ['test.', 'foo', 'my', 'test.', 'foo', '1', 'test.',
# 'foo', '2', 'test.', 'foo', '3', 'test.', 'foo', '4', 'test.', 'foo', '5']
print nltk.Text(nltk.word_tokenize(content_part)).collocations()
# test. foo
Как я могу предотвратить, чтобы NLTK:
То есть в этом примере он вообще не должен выводить коллокации, но я полагаю, вы можете представить себе более сложные тексты, где коллокации есть и внутри предложений.
Я могу предположить, что мне нужно использовать Punkt sentence segmenter, но тогда я не знаю, как снова соединить их вместе, чтобы найти коллокации с помощью nltk (collocation()
кажется более могущественным, чем просто подсчет вещей самостоятельно).