Найдите наиболее часто встречающуюся пару слов из списка сообщений в python - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть список из 100 сообщений. И я могу найти наиболее часто используемые слова в списке сообщений. Но я хочу найти пару слов, которые встречаются чаще всего. Например, ключ и доска показываются как наиболее часто встречающиеся слова. Но мне нужно найти количество случаев, когда «клавиатура» используется как пара в NLTK. Здесь тезисы - это список предложений, а абстрактные слова - это список слов.

abstracts = [preprocessing(document) for document in abstracts]

abstract_words = " ".join(abstracts)
abstract_words = abstract_words.split()

def plot_word_frequency(words, top_n=10):
    word_freq = FreqDist(words)
    labels = [element[0] for element in word_freq.most_common(top_n)]
    counts = [element[1] for element in word_freq.most_common(top_n)]
    plot = sns.barplot(labels, counts)
    return plot

plot_word_frequency(abstract_words, 10)

Здесь я могу построить отдельные 10 лучших слов. Но нужно составить комбинацию слов, которые встречаются чаще всего.

1 Ответ

0 голосов
/ 10 февраля 2020

N-грамм, см. n-грамм в python, четыре, пять, шесть грамм? , например,

>>> from collections import Counter
>>> from nltk import ngrams
>>> tokens = "this is a sentence with some of this words this is meh ".split()
>>> Counter(list(ngrams(tokens, 2)))
Counter({('this', 'is'): 2, ('is', 'a'): 1, ('a', 'sentence'): 1, ('sentence', 'with'): 1, ('with', 'some'): 1, ('some', 'of'): 1, ('of', 'this'): 1, ('this', 'words'): 1, ('words', 'this'): 1, ('is', 'meh'): 1})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...