Я не вижу ожидаемый выходной раздел, поэтому я предполагаю, что это то, что может понадобиться.
import nltk
def compute_freq(sentence, n_value=2):
tokens = nltk.word_tokenize(sentence)
ngrams = nltk.ngrams(tokens, n_value)
ngram_fdist = nltk.FreqDist(ngrams)
return ngram_fdist
По умолчанию эта функция возвращает распределение частоты биграмм - например,
text = "This is an example sentence."
freq_dist = compute_freq(text)
Теперь freq_dist будет выглядеть так:
FreqDist({('is', 'an'): 1, ('example', 'sentence'): 1, ('an', 'example'): 1, ('This',
'is'): 1, ('sentence', '.'): 1})
Отсюда вы можете напечатать ключи и значения примерно так:аргумент при вызове функции. Например,
freq_dist = compute_freq(text, n_value=3) #will give you trigram distribution
('example', 'sentence', '.') 1
('an', 'example', 'sentence') 1
('This', 'is', 'an') 1
('is', 'an', 'example') 1