在一组小文本中查找关键字

时间:2014-06-24 14:57:07

标签: algorithm keyword information-retrieval

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

我想要一些算法的概念来对单词进行评分,并在他们经常聚在一起时识别

我在这里已经阅读了一些其他相关问题,但我试图获得有关此主题的越来越多的信息。所以任何想法都非常受欢迎。非常感谢你!

-

我已经提取了停用词。删除它们后,我有超过7000个单词正在重写;我的问题是如何评分这些单词,从哪一点我可以考虑从我的关键字列表中删除它们。另外,如何获取关键表达式,找到合在一起的单词。

2 个答案:

答案 0 :(得分:0)

您可能想要参考信息检索上的经典文本。大多数算法使用停止列表来删除常见词,例如“for”和“the”,然后提取基词或词根(更改“看到”,“看到”,“看“,”看到“基础词”见“)。剩余的单词构成文档的关键词,并通过术语频率(单词在文档中出现的次数)和反向文档频率(单词在描述内容时的独特性)加权。您可以使用加权关键字作为文档表示,并将其用于检索。

答案 1 :(得分:0)

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

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

可在此javadoc中找到更多详细信息。