逆文档频率
逆文档频率定义如下:
IDF(term,document) = tf(term) * log(1 + n/df(term))
其中 tf(term) = '文档中术语的频率', n = 'number文档数', df(term) = '包含 term 的文档数'。
只是对 df(term) 感到好奇 - 即使文档多次包含该术语,我是否只计算文档的个数?
使用 lucene(.net) 确定这个统计数据是否容易?我现在才开始使用后者并使用关系数据库。
谢谢。
基督教
The inverse document freqency is defined as follows:
IDF(term,document) = tf(term) * log(1 + n/df(term))
where tf(term) = 'frequency of term in document', n = 'number of documents', df(term) = 'number of docs containing term'.
Just curious about df(term) - do I only count a document ones even if it contains the term more than once?
Also is it easy to determine this stat with lucene(.net)? I am only starting to use the latter and use a relational db at the moment.
Thanks.
Christian
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要在 Lucene 中使用 idf,检查 API示例在这里。
您关于文档仅计算一次的说法是正确的。这个想法是得到一个在对数部分具有下界的函数。像这样:
如果您对幕后的 idf 理论感兴趣,您可以偷看 这篇论文。
HTH!
For using idf with Lucene, check the API for example here.
You are right about the docs being counted only once. The idea is to get a function with a lower bound in the log part. Like this:
If you are interested in the idf theory behind the scenes, you may peep at this paper.
HTH!
当然你必须计算一次 DF(term)。因此,您应该将单词分组以获得不同的单词。
在此处查看我的班级 IDF
Of course you have to count the DF(term) once. therefore, you should group the words to get distinct words.
See my class IDF here