Создание биграмм с использованием 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.trees?
  • Как найти самый короткий путь зависимости между двумя словами в Python?
  • Python NLTK Наивный байесовский классификатор: каково основное вычисление, которое этот классификатор использует для ввода classifiy?
  • Как получить общий шаблон тега для списка предложений в python с помощью NLTK
  • как проверить, какая версия nltk, scikit learn установлена?
  • Как анализировать предложения на основе лексического содержимого (фразы) с помощью Python-NLTK
  • очистить текст, принадлежащий разным языкам в python
  • Избавиться от стоп-слов и знаков препинания
  • Python - лучший язык программирования в мире.