from nltk.tokenize import RegexpTokenizer
from stop_words import get_stop_words
from gensim import corpora, models
import gensim
import os
from os import path
from time import sleep
tokenizer = RegexpTokenizer(r'\w+')
en_stop = set(get_stop_words('en'))
with open(os.path.join('c:\users\kaila\jobdescription.txt')) as f:
Reader = f.read()
texts = unicode(Reader, errors='replace')
tdm = []
#Converted all the text to lowercase for uniform analysis
raw = texts.lower()
#Tokenized the text to individual terms and created the stop list
tokens = tokenizer.tokenize(raw)
stopped_tokens = [i for i in tokens if not i in en_stop]
tdm.append(stopped_tokens)
dictionary = corpora.Dictionary(tdm)
corpus = [dictionary.doc2bow(i) for i in tdm]
sleep(3)
#Implemented the LdaModel
ldamodel = gensim.models.ldamodel.LdaModel(corpus, num_topics=10, id2word = dictionary)
print(ldamodel.print_topics(num_topics=5, num_words=8))
私の結果は、すべてのトピックを説明するのに似た言葉を持ち、確率が低すぎます。私が間違っていることは何ですか?誰かがより良い結果を生み出すのを助けることができるなら、それはすばらしいことになります。テキストファイルのトピックモデリングを実装した後、私はすべてのトピックを説明するために類似の言葉を得ており、結果は不正確です。
次は私の結果である:
(0、u'0.019 *意志+ 0.010 *経験+ 0.009 *アカウント+ 0.009 *金融+ 0.008 *会計+ 0.008 * 0.008 +金融*チーム+ 0.007 *財務+ 0.009 *経験+ 0.008 *管理+ 0.008 *会計+ 0.007 *ロール+ 0.007 *財務+ 0.007 *仕事)、(7、u'0.017 * + 0.011 *エクスペリエンス+ 0.010 *ファイナンス+ 0.008 *エクスポージャー+0.013 *エクスペリエンス+0.012 *ファイナンス+ 0.008 *ロール+0.008 *財務+0.007 *アカウンティング+0.007 * 0.007 *財務+0.011 *経験+ 0.009 *財務+ 0.008 *管理+ 0.008 *会計+財務+0.011 *経験+ 0.007 *事業+ 0.007 * 0.008 *ロール+ 0.007 *してください)
お返事ありがとうございます。より良い結果を得るためにデータをより多様化させるために現在作業できるようになり、非常に役に立ちました。 – Raj