私はPythonでLDA解析を行っています。そして、次のコードを使用して文書用語行列を作成しました。文書用語行列から単語頻度を抽出する方法は?
corpus = [dictionary.doc2bow(text) for text in texts].
コーパス全体で単語の頻度を数える簡単な方法はありますか?私はterm-idリストである辞書を持っているので、term-idとfrequencyという単語をマッチさせることができます。
私はPythonでLDA解析を行っています。そして、次のコードを使用して文書用語行列を作成しました。文書用語行列から単語頻度を抽出する方法は?
corpus = [dictionary.doc2bow(text) for text in texts].
コーパス全体で単語の頻度を数える簡単な方法はありますか?私はterm-idリストである辞書を持っているので、term-idとfrequencyという単語をマッチさせることができます。
あなたはあなたに与えられた文字列texts
の単語の出現頻度を与える文字列texts
from nltk import FreqDist
import nltk
texts = 'hi there hello there'
words = nltk.tokenize.word_tokenize(texts)
fdist = FreqDist(words)
fdist
で単語の出現頻度をカウントするためにnltk
を使用することができます。
ただし、テキストのリストがあります。頻度をカウントする1つの方法は、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 –