【问题标题】:Finding keywords in a set of small texts在一组小文本中查找关键字
【发布时间】:2014-08-14 21:48:23
【问题描述】:

我有一组将近 2000 条文本。 我的目标是在这些文本中找到关键字,以了解它们的主题,或者只是最常见的单词和表达方式。

我想要一些算法的想法来对单词进行评分并识别它们何时经常出现

我在这里阅读了一些其他相关问题,但我正在尝试获取有关此主题的越来越多的信息。因此,任何想法都非常受欢迎。非常感谢!

--

我已经提取了停用词。删除它们后,我还剩下 7000 多个单词;我的问题是如何给这些词打分,然后我可以考虑从我的关键字列表中删除一些它们。另外,如何获得关键表达,找到组合在一起的单词。

【问题讨论】:

标签: algorithm keyword information-retrieval


【解决方案1】:

您可能需要参考有关信息检索的经典文本。大多数算法使用停止列表来删除常见的单词,例如“for”和“the”,然后提取基词或词根(更改“seeing”、“seen”、“看到”,“看到”到基本词“看到”)。剩余的单词构成文档的关键字,并由词频(单词在文档中出现的次数)和逆文档频率(单词在描述内容中的独特性)等因素加权。您可以将加权关键字用作文档表示并使用它们进行检索。

【讨论】:

  • 我已经提取了停用词。删除它们后,我还剩下 7000 多个单词;我的问题是如何给这些词打分,然后我可以考虑从我的关键字列表中删除一些它们。另外,如何获得关键表达,找到组合在一起的单词。
  • 您将不得不使用一些概率技术来实现这一点。你最好参考一本 IR 书。
【解决方案2】:

您可以使用 Lucene MoreLikeThis 实现,它从给定的文本文档中提取最重要的关键字列表。它使用的术语评分函数是 tf-idf,即它选择那些具有最高 tf-idf 分数的术语,即在文档中相对不常见且经常出现的术语。 如果效率是一个问题,它会采用一些常见的启发式方法,如下所示。

由于您尝试最大化 tf*idf 分数,因此您可能最感兴趣的是高 tf.选择即使低至 2 或 3 的 tf 阈值也会从根本上减少所考虑的术语数量。另一个启发式是具有高 idf(即低 df)的术语往往更长。因此,您可以通过字符数对术语进行阈值处理,而不是选择少于(例如,六个或七个字符)的任何内容。借助这些启发式方法,您通常可以找到一小部分(例如,十个或更少)能够很好地表征文档的术语。

更多细节可以在这个javadoc中找到。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多