- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我刚刚开始阅读有关潜在狄利克雷分配 LDA 的内容,并希望将其应用到我的项目中。 请问 LDA 是否能够将一个主题分配给多个单词? 例如,文章A谈论“河岸”,而文章B谈论“银行在金融中的作用”。因此,
我刚刚开始阅读有关 Latent Dirichlet Allocation LDA 的内容,并想将其应用到我的项目中。 我可以知道 LDA 是否能够将一个主题分配给多个单词吗? 例如,A 条谈到“河岸
情况: 我有一个 numpy 术语文档矩阵 例如:[[0,1,0,0....],....[......0,0,0,0]]。 我已将上述矩阵插入到 gensim 的 ldamodel 方法中。并且使用
我正在尝试使用 gensim's lda模型。如果我用给定的语料库创建 lda 模型,然后我想用一个新的语料库更新它,其中包含在第一个语料库中看不到的单词,我该怎么做?当我尝试调用 lda_model
library(MASS) example(lda) plot(z) 如何访问 z 中的所有点?我想知道 LD1 和 LD2 上每个点的值,具体取决于它们的 Sp (c,s,v)。 最佳答案 您正在寻
我在 R 中制作了一个 LDA 主题模型,使用 textmineR 包,如下所示。 ## get textmineR dtm dtm2 2] dtm2 2] ###################
我想知道更多关于LDA模型中是否有设置超参数alpha和theta的规则。我运行图书馆提供的 LDA 模型 gensim : ldamodel = gensim.models.ldamodel.Lda
我认为在 LDA 模型中,这些是使用现有模型推断新文档的两种方法。这两种方法有什么区别? 最佳答案 我做了一些测试,我的 ldamodel 有 8 个主题,这里是我的结果:2 个预测主题的文档: li
在阅读有关使用 python 的 LinearDiscriminantAnalysis 的过程中,我有两种不同的方法来实现它,可在此处获得, http://scikit-learn.org/stabl
我有一个通过 Java 中的 Mallet 训练的 LDA 模型。 Mallet LDA 模型生成了三个文件,这使我能够从文件运行模型并推断新文本的主题分布。 现在我想实现一个 Python 工具,它
我正在将 MLlib LDA example 应用于从 enter link description here 下载的各种语料库我正在过滤掉停用词,并排除非常频繁的术语和非常罕见的术语。问题是我总是有
我正在尝试了解潜在狄利克雷分配(LDA)。我有机器学习和概率论的基础知识,并基于这篇博文 http://goo.gl/ccPvE我能够开发 LDA 背后的直觉。但是,我仍然没有完全了解其中的各种计算。
我正在寻找一些适用于大型数据集的主题建模工具。 我当前的训练数据集是 30 GB。我试过 MALLET topic modeling ,但我总是得到 OutOfMemoryError。 如果您有任何提
我正在使用“topicmodels”包在 R 中构建一些主题模型。在预处理并创建文档术语矩阵后,我正在应用以下 LDA Gibbs 模型。这可能是一个简单的答案,但我是 R 的新手,所以就这样吧。有没
我正在尝试为线性判别分析 (LDA) 创建双标图。我正在使用从这里获得的代码的修改版本 https://stats.stackexchange.com/questions/82497/can-the-
是否可以查找某个主题(由 LDA 确定)内的文本? 我有一个包含 5 个主题的列表,每个主题有 10 个单词,是使用 lda 找到的。 我分析了数据框列中的文本。我想选择/过滤某个特定主题中的行/文本
给定一个标准 LDA 模型,其中包含 1000 个主题和数百万个文档,并使用 Mallet/折叠吉布斯采样器进行训练: 在推断新文档时:为什么不直接跳过采样并简单地使用模型的术语主题计数来确定新文档的
我读过 LDA,并且了解当一个人输入一组文档时如何生成主题的数学原理。 引用文献称,LDA 是一种算法,只要给定一个文档集合(无需任何监督),就可以揭示该集合中的文档所表达的“主题”。因此,通过使用
我希望将交叉验证应用于 LDA 算法以确定主题的数量(K)。 我的疑问是关于评估者,因为我希望使用对数似然。创建交叉验证时,我在 .setEvaluator(????) 上设置了什么? // Defi
我希望使用 LDA 将每个文档分配给一个主题。现在我意识到你得到的是来自 LDA 的主题分布。然而,正如您从下面的最后一行中看到的那样,我将其分配给了最可能的主题。 我的问题是这样的。我必须第二次运行
我是一名优秀的程序员,十分优秀!