查找文本关键字的算法

时间:2013-03-13 18:13:49

标签: algorithm

鉴于一组文本(可能是书籍,文章,文档等),您如何为每个文本找到相关的关键字? 常识建议:

  • 分词
  • 排除常用词(也称为停用词,如“a, to,for,in“)
  • 计算单词频率
  • 为每个单词给出一个分数,其公式考虑到文档中每个单词的频率以及其他文档中的文档单词数和所有单词的总单词数

问题是:这是一个很好的公式吗?

1 个答案:

答案 0 :(得分:7)

我开发了一个。

对于每个单词计算此比率:

(frequency of word in this text) * (total number of words in all texts)
-----------------------------------------------------------------------
  (number of words in this text) * (frequency of word in all texts)

关键词是那些比例最高的20%(对于这个数字)。

Ankerl也提出了自己的公式:

tanh(curVal/curWords*200) - 5*tanh((allVal-curVal)/(allWords-curWords)*200)

其中:

  • curVal:要分析的文字
  • 中出现得分的频率
  • curWords:待分析文本中的单词总数
  • allVal:索引数据集中存在得分的频率
  • allWords:索引数据集的总字数

两种算法都运行良好,结果经常重合。你知道怎样做得更好吗?