我目前有一个使用MALLET训练的主题模型(http://mallet.cs.umass.edu/topics.php)这是基于大约8万篇收集的新闻文章(这些文章都属于一个类别(。
我希望每次有新文章出现时都能给出相关性评分(可能与类别相关,也可能与类别无关(。有什么办法做到这一点吗?我读过td idf,但它似乎是根据现有文章而不是任何新文章来评分的。最终目标是过滤掉可能不相关的文章。
任何想法或帮助都将不胜感激。非常感谢。
拥有模型(主题(后,您可以根据文档对新的看不见的文档进行测试(参数--评估器文件名[filename]是您传递新的看看不见文档的位置(主题保持概率:
主题保持概率
--评估器文件名[filename]上一节描述了如何获取新文档的主题比例。我们经常想估计新文档的日志概率,在所有主题中被边缘化配置。使用MALLET命令bin/MALLET评估主题--帮助获得有关使用保留概率估计的信息。与主题推理一样,您必须确保新数据与您的训练数据兼容。使用选项--使用管道MALLET命令bin/MALLET导入文件中的[MALLET TRAINING FILE]或import-dir以指定训练文件。
注意:我确实使用了更多的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主题,则只添加一个您想要考虑的最小值的简单阈值,如果确实超过了,例如0.40,则不在类别中(。