如何查找文档的前n个主题

时间:2018-02-12 11:44:40

标签: information-retrieval tf-idf lda topic-modeling top-n

我使用tf-IDF对文档中的术语进行排名。当术语按照tf-IDF的降序排列时,top'n'术语与该文档最相关。 当我们选择文档时,必须显示该文档的前n个术语。 我的问题是如何确定'n'的值? 例如:对于按tf-IDF降序排列的文档术语如下:

文件1

  1. 会长
    1. 奥巴马
    2. 巴拉
    3. 语音
    4. 就职
    5. 外观
    6. 再次
  2. 现在,当我想要显示文档1的主题时,我只需要前5个术语,因为所有其他术语都不相关或不是文档的主题。 我如何确定文档中这个术语的断点? 提前致谢

1 个答案:

答案 0 :(得分:0)

关于您的样本数据,似乎存在问题,因为6到10个是无信息的停用词,其中一些甚至是停止词,例如'the'。

因此,您应该尝试的第一步是删除停用词。

回到你的问题,在top-K关键字提取中选择K的值没有最佳实践。这在不同文档之间有所不同,因为某些文档比其他文档更具信息性(通常是多个主题),这意味着这些文档应具有更高的K值。

决定停止点的一种方法是检查连续项之间的tfidf值之间的相对差异,然后在此相对差异高于阈值的点处停止,这表明存在大幅下降您正在输出的关键信息量。

假设您已计算每个术语的tfidf分数并按其值的降序对其进行排序,请计算以下内容 在添加每个新术语之前

enter image description here

如果上面的表达式为真,其中delta是预定义的阈值,请添加新术语...因为新术语的信息量度量足够到列表中已有的值。否则,如果表达式为假,则停止,即差异高于delta。

注意:您可以使用不同的术语评分函数...而不仅仅是tfidf。