У меня есть список списков, где каждый внутренний список представляет собой предложение, которое разбито на слова:
sentences = [['farmer', 'plants', 'grain'],
['fisher', 'catches', tuna'],
['police', 'officer', 'fights', 'crime']]
В настоящее время я пытаюсь вычислить nGrams следующим образом:
numSentences = len(sentences)
nGrams = []
for i in range(0, numSentences):
nGrams.append(list(ngrams(sentences, 2)))
Это приводит к поиску биграмм всего списка, а не отдельных слов для каждого внутреннего списка (и это повторяется для количества предложений, что несколько предсказуемо):
[[(['farmer', 'plants', 'grain'], ['fisher', 'catches', tuna']),
(['fisher', 'catches', tuna'], ['police', 'officer', 'fights', 'crime'])],
[(['farmer', 'plants', 'grain'], ['fisher', 'catches', tuna']),
(['fisher', 'catches', tuna'], ['police', 'officer', 'fights', 'crime'])],
[(['farmer', 'plants', 'grain'], ['fisher', 'catches', tuna']),
(['fisher', 'catches', tuna'], ['police', 'officer', 'fights', 'crime'])]]
Как вычислить nGrams каждого предложения (по слову)? Другими словами, как я могу гарантировать, что nGrams не охватывают несколько элементов списка? Вот мой желаемый результат:
farmer plants
plants grain
fisher catches
catches tuna
police officer
officer fights
fights crime