代码之家  ›  专栏  ›  技术社区  ›  raksha

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

  •  0
  • raksha  · 技术社区  · 6 年前

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

    文件1

    1. 总统
      1. 奥巴马
      2. 巴拉克
      3. 演讲
      4. 就职典礼
      5. 这个
      6. 再一次

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   Debasis    6 年前

    就您的示例数据而言,似乎存在一个问题,因为6到10个是非信息性的停止词,其中一些甚至是停止词,例如“the”。

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

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

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

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

    enter image description here

    如果上述表达式为true,其中delta是预定义的阈值,请添加新的术语。。。因为新术语的信息量是 足够近 已经在列表中的。否则,如果表达式为false,即差值大于delta,则停止。

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