查找文本关键字的算法

Att*_*lio 3 algorithm

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

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

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

Att*_*lio 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)
Run Code Online (Sandbox Code Playgroud)

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

Ankerl还提出了他自己的公式:

tanh(curVal/curWords*200) - 5*tanh((allVal-curVal)/(allWords-curWords)*200)
Run Code Online (Sandbox Code Playgroud)

哪里:

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

两种算法都运行良好,结果经常重合.你知道更好的方法吗?