当前位置:   article > 正文

怎样通过词频得到这个词频的排序?

词频统计后怎么排序
在大规模检索中,我们怎样通过已经的词频得到词频的排序? 通俗点讲,就是当我知道“java”这个词的频率是x,那么"java"到底在排在第几位呢?
大规模数据中,有一个重要的法则叫“齐普夫法则”,它描述为第k个出现次数最多的词汇,它的词频与1/k成正比。这个法则的发现过程一点都不科学,齐普夫是这样干的:找到一本大部头的书籍,统计不同词汇出现的次数并排序,发觉词频的排序乘以出现的次数等于一个常数。然后这个常数乘以10,就得到了书籍的总词数。多么荒诞的事情啊,这比牛顿被苹果砸了更坑爹啊有木有。
但是,这个法则竟然是正确的(没什么道理啊,我想起了黄金比例和自然数)。所以我们糊里糊涂的竟然可以得到这样一个公式:p(T)=C*(1/K),T表示排在K位置的词汇,P(T)表示T词的词频,C表示一个常数。
好吧,更坑爹的还在后面。。。。。。
我们知道,在大规模数据中,词频=词出现词数/总词数,那么所有词频之和等于1,所以有(1/1+1/2+1/3+...+1/k+...+1/n)*C=1,根据自然对数,就有ln(n)*C=1。
那么ln(n)为什么约等于(1/1+1/2+1/3+...+1/k+...+1/n)呢,根据调和级数,1+1/2+1/3+1/4+...1/n = ln(n+1) + r ,r是常数,约等于0.5772156649,可忽略不计。
所以,假如n等于100万,那么C=1/ln(1000000)=1/14,咱们转回到P(T)=C*(1/K)这个公式,对于数据规模在100万的情况下,排在K位的词汇词频=1/14K。当然,知道了词汇词频后,K值也很好算咯。

By 阿飞哥 转载请说明
腾讯微博:[url]http://t.qq.com/duyunfeiRoom[/url]
新浪微博:[url]http://weibo.com/u/1766094735[/url]
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/109689
推荐阅读
相关标签
  

闽ICP备14008679号