lucene unigrams和bigrams的频率

时间:2010-08-27 08:45:41

标签: java lucene indexing scoring frequency-analysis

我将lucene指数ngrams存储到3级。当我读取索引并计算术语和ngram的得分时,我得到的结果是这样的

TERM              FREQUENCY....      TFIDF
minority           25           16.512926
minority report 24           16.179296
report           27           13.559037
cruise           12           11.440491
tom cruise        7            8.737819

所以,如果我们看一下“汤姆巡航”的例子,就像二重奏一样,它会发生7次。从中我们看到“巡航”单独发生5次。所以我不想要这种重复频率,因为单独“巡航”比“汤姆巡航”得分更好,这不是真的,因为它包含在里面。

对不起,如果我解释不好,我不知道怎么称呼这种类型的评分,如果有人知道解释这个技术词,请编辑。

谢谢

1 个答案:

答案 0 :(得分:3)

我相信我回答了你刚才问过的类似问题。 IIUC,你想要更重要的条款脱颖而出,你觉得“汤姆巡航”比“巡航”更重要。

这看起来像是您的数据模型中的问题。 TFIDF似乎对你想要的东西不对。 您可以尝试构建语言模型,如Peter Norvig's "Beautiful Data" chapter中所述。

要点是:

  • 计算每个unigram,bigram和trigram的概率(你需要平滑或退避,如文中所述)。
  • 按概率而非TFIDF选择您的条款。

A Language Model Approach to Keyphrase Extraction似乎做了类似的事情。一些替代方案是Kea(使用TFIDF作为几个中的一个特征)和Peter Turney's Keyphrase extraction work