遵循文档here以及以下链接:Machine Learning Gensim Tutorial,我完全不知道为什么会这样。在对句子进行标记化和定形化之后,我将这些句子放入短语转换器中,创建了一个Dictionary,并将所有正确的变量插入到模型中。这是我的代码示例:
tokens = [[euid, sent, gensim.parsing.preprocessing.preprocess_string(sent.lower(), filters=[strip_punctuation,
strip_multiple_whitespaces, strip_numeric, remove_stopwords, strip_short, wordnet_stem])] for sent in sentences]
#these filters are all default gensim filters except for wordnet_stem, which uses a WordNetLemmatizer
bigram = gensim.models.Phrases(bag_of_words)
bigram_mod = gensim.models.phrases.Phraser(bigram)
样本令牌列表如下所示:['beautiful', 'Manager', 'tree', 'caring', 'great_place']
(完全由伪造的列表)
texts = [bigram_mod[t] for t in bag_of_words]
id2word = corpora.Dictionary(texts)
sent_wordfreq = [id2word.doc2bow(sent) for sent in texts]
lda_model = gensim.models.ldamodel.LdaModel(corpus=sent_wordfreq,
id2word=id2word,
num_topics=5,
update_every=1,
alpha='auto',
per_word_topics=True)
这是我得到的主题:
[(0,'nan *“ discovered” + nan *“ gained” + nan *“ send” + ... (1,'nan *“发现” + nan *“获得” + nan *“发送” + ... 而且还会继续3次
因此,不仅所有主题都是相同的,而且每个主题的权重都是nan。可能是什么问题?
答案 0 :(得分:0)
已更新:如果您遇到此问题,请升级numpy版本(这是一个numpy问题)。对我来说,conda install numpy =“ 1.14.5”可以正常工作。