gpt4 book ai didi

python - LDA主题建模: Topics predicted from huge corpus make no sense

转载 作者:行者123 更新时间:2023-12-01 06:33:48 25 4
gpt4 key购买 nike

我正在使用 LDA 来执行主题建模任务。正如各种在线论坛所建议的,我在一个相当大的语料库上训练了我的模型:纽约时报新闻数据集(约 200 MB csv 文件),其中包含有关各种新闻主题的报告。令人惊讶的是,它预测的主题大多与美国政治相关,当我在一份关于“如何教育 child 和养育子女”的新文件上测试它时,它预测最有可能的主题如下:

['两个', '可能', '制造', '公司', '房子', '东西', '案件', '使用']

请看看我的模型:

def ldamodel_english(filepath, data):
data_words = simple_preprocess(str(data), deacc=True)

# Building the bigram model and removing stopwords
bigram = Phrases(data_words, min_count=5, threshold=100)
bigram_mod = Phraser(bigram)
stop_words_english = stopwords.words('english')
data_nostops = [[word for word in simple_preprocess(str(doc)) if word not in stop_words_english]
for doc in data_words]
data_bigrams = [bigram_mod[doc] for doc in data_nostops]
data_bigrams = [x for x in data_bigrams if x != []]

# Mapping indices to words for computation purpose
id2word = corpora.Dictionary(data_bigrams)
corpus = [id2word.doc2bow(text) for text in data_bigrams]

# Building the LDA model. The parameters 'alpha' and 'eta' handle the number of topics per document and words per topic respectively
lda_model = gensim.models.ldamodel.LdaModel(corpus=corpus, id2word=id2word, num_topics=20, random_state=10, iterations=100,
update_every=1, chunksize=1000, passes=8, alpha=0.09, per_word_topics=True, eta=0.8)
print('\nPerplexity Score: ' + str(lda_model.log_perplexity(corpus)) + '\n')
for i, topic in lda_model.show_topics(formatted=True, num_topics=20, num_words=10):
print('TOPIC #' + str(i) + ': ' + topic + '\n')
coherence_model_lda = CoherenceModel(model=lda_model, texts=data_bigrams, dictionary=id2word, coherence='c_v')
print('\nCoherence Score: ', coherence_model_lda.get_coherence())
saved_model_path = os.path.join(filepath, 'ldamodel_english')
lda_model.save(saved_model_path)

return saved_model_path, corpus, id2word

“数据”部分来自纽约时报新闻数据集的“内容”部分,我使用 GENSIM 库进行 LDA。

我的问题是,如果一个训练有素的 LDA 模型预测得如此糟糕,为什么会有这样的炒作?什么是有效的替代方法?

最佳答案

它可以是模型的完全有效的输出。鉴于源文本不一定与“ child 教育和育儿”相关,发现最相似的主题可能与该文章非常基本相似。 《纽约时报》的文章和您的文章之间可能没有太多共同的词汇。因此,使该主题在《纽约时报》典型主题中脱颖而出的词语可能与您的文章几乎没有共同之处。事实上,唯一共享的单词可能确实非常典型,就像您的情况一样。

当用于训练 LDA 模型的语料库与其稍后应用的文档关系不大时,这种情况经常发生。所以这里确实没有太多惊喜。 语料库的大小没有帮助,重要的是词汇/主题重叠。

我建议您更改主题和语料库的数量,或者找到合适的语料库来训练 LDA(其中包含与您打算分类的文档相关的文本)。

关于python - LDA主题建模: Topics predicted from huge corpus make no sense,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59765941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com