Вы можете использовать nltk
для того, чтобы подсчитать частоту слов в строке texts
from nltk import FreqDist
import nltk
texts = 'hi there hello there'
words = nltk.tokenize.word_tokenize(texts)
fdist = FreqDist(words)
fdist
даст вам частоту слов в данной строке texts
.
Однако у вас есть список текстов. Одним из способов подсчета частоты является использование CountVectorizer
от scikit-learn
для списка строк.
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
texts = ['hi there', 'hello there', 'hello here you are']
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(texts)
freq = np.ravel(X.sum(axis=0)) # sum each columns to get total counts for each word
freq
это будет соответствовать дорожить в словаре vectorizer.vocabulary_
import operator
# get vocabulary keys, sorted by value
vocab = [v[0] for v in sorted(vectorizer.vocabulary_.items(), key=operator.itemgetter(1))]
fdist = dict(zip(vocab, freq)) # return same format as nltk
я не использовал это много - но есть проблема с использованием merge_with() или add_documents()? https://radimrehurek.com/gensim/corpora/dictionary.html –