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

How to find Top n topics for a document

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

文档 1

  1. 总裁
    1. 奥巴马
    2. 巴拉克
    3. 演讲
    4. 就职典礼
    5. 再次
    6. 拍了

现在,当我想显示文档 1 的主题时,我只需要前 5 个术语,因为所有其他术语都不相关或与文档的主题无关。 我如何决定文档中术语的断点? 提前致谢

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

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

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

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

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

如果上面的表达式为真,其中 delta 是一个预定义的阈值,添加新术语...因为新术语的信息量度足够接近已经在列表中的。否则如果表达式为假则停止,即差异大于增量。

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