Создание биграмм с использованием NLTK из корпуса с несколькими строками

Я пытаюсь создать bigrams из корпуса с несколькими строками. Биграмы создаются через разрывы строк, что является проблемой, потому что каждая строка представляет собой собственный контекст и не связана с последующей строкой. Это приводит к семантически неправильным биграммам.

Корпус

Reeves Acrylfarbe 75Ml Ultramarin Acrylfarbe Deep Peach Reeves Acrylfarbe 75Ml Grasgrün Acrylfarbe Antique Go 

Пример для проблемных биграмм

«Ultramarin Acrylfarbe», «Grasgrün Acrylfarbe»

Это код, который я использую:

 finder = BigramCollocationFinder.from_words(word_tokenize(corpus)) bigrams = finder.nbest(bigram_measures.likelihood_ratio, 100) 

Как я могу опустить битрамы, которые охватывают две строки?

2 Solutions collect form web for “Создание биграмм с использованием NLTK из корпуса с несколькими строками”

Я бы использовал split на '\ n', чтобы получить список строк и обрабатывать каждую строку отдельно и объединить список биграмм

Я считаю, что что-то вроде этого должно работать:

 finder = nltk.BigramCollocationFinder.from_documents([ nltk.word_tokenize(x) for x in corpus.split('\n')]) bigrams = finder.nbest(bigram_measures.likelihood_ratio, 100) 
  • Как выполнять анализ зависимостей в NLTK?
  • Стебель, легматизировать слова с частотой (фильтр и анализ)
  • Сочетание текста и удаление пунктуации в NLTK и scikit-learn
  • Разделить текст на абзацы NLTK - использование nltk.tokenize.texttiling?
  • Есть ли альтернатива для удаленного модуля 'nltk.model.NGramModel'?
  • nltk не добавляет $ NLTK_DATA в путь поиска?
  • Проблема с импортом stanford pos tagger в nltk
  • Стэнфордский NER с python NLTK терпит неудачу со строками, содержащими несколько «!!» s?
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.