Machine learning 基于主题建模的文档相关性评分

Machine learning 基于主题建模的文档相关性评分,machine-learning,nlp,topic-modeling,mallet,relevance,Machine Learning,Nlp,Topic Modeling,Mallet,Relevance,我目前有一个使用MALLET()的经过训练的主题模型,它基于大约80000篇收集的新闻文章(这些文章都属于一个类别) 我希望每次有新文章出现时都能给出一个相关性评分(可能与该类别有关,也可能与该类别无关)。有没有办法做到这一点?我读过td idf,但它似乎是根据现有文章评分的,而不是任何新文章。最终目标是过滤掉可能不相关的文章 非常感谢您的任何想法或帮助。谢谢大家! 拥有模型(主题)后,可以根据文档对新的未查看文档进行测试(参数--evaluator filename[filename]是传递新

我目前有一个使用MALLET()的经过训练的主题模型,它基于大约80000篇收集的新闻文章(这些文章都属于一个类别)

我希望每次有新文章出现时都能给出一个相关性评分(可能与该类别有关,也可能与该类别无关)。有没有办法做到这一点?我读过td idf,但它似乎是根据现有文章评分的,而不是任何新文章。最终目标是过滤掉可能不相关的文章

非常感谢您的任何想法或帮助。谢谢大家!

拥有模型(主题)后,可以根据文档对新的未查看文档进行测试(参数--evaluator filename[filename]是传递新的未查看文档的位置):

这个话题提出了可能性

--evaluator filename[文件名]上一节介绍了如何获取新文档的主题比例。我们经常想估计 新文档的日志概率,在所有主题中被边缘化 配置。使用MALLET命令bin/MALLET评估主题 --帮助获取有关使用保持概率估计的信息。与主题推理一样,您必须确保新数据是正确的 与您的培训数据兼容。使用选项--Use pipe from 在MALLET命令bin/MALLET导入文件中的[MALLET培训文件]或 导入目录以指定培训文件

注意:我确实使用了更多的gensim LDA和LSI,您可以按如下方式传递新文档:

new_doc = "Human computer interaction"
new_vec = dictionary.doc2bow(new_doc.lower().split())
print(lda_model[new_vec])

#output: [(0, 0.020229542), (1, 0.49642297)
解释:您可以看到(1,0.49642297)表示从2 主题(类别)我们的新文档由主题#1表示。因此,在您的情况下,您可以从输出列表中获取最大值,并且您具有相关性“系数”因此,高系数属于类别,而低系数不属于类别(添加了2个主题作为更好的可视化,在你的情况下,如果你只有1个主题,而不只是添加一个简单的阈值MIIM你想考虑,如果失败了,例如0.40,比在其他类别不)。