`
AngelAndAngel
  • 浏览: 235834 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多
     在大规模检索中,我们怎样通过已经的词频得到词频的排序? 通俗点讲,就是当我知道“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 阿飞哥 转载请说明
    腾讯微博:http://t.qq.com/duyunfeiRoom
   新浪微博:http://weibo.com/u/1766094735
2
2
分享到:
评论

相关推荐

    英语词频统计工具 自带排序

    总的来说,这个“英语词频统计工具 自带排序”是一个方便易用、功能强大的文本分析工具,适用于各种场景,无论是个人学习还是专业研究。通过其提供的批处理文件和详细说明,用户可以轻松上手,有效地利用这个工具来...

    词频统计(未排序)

    自然语言理解 关于词频统计的代码 利用treemap来完成

    考研英语大纲5500词词汇表词频排序版.pdf

    英语词汇大纲5500词词频排序版 本资源为英语词汇大纲5500词词频排序版,共55页,涵盖了英语学习的基础知识,包括词汇、语法、句法等方面。 词汇 * the art.:这(那)个;这(那)些(指特定的人或物) * and:和,与...

    WordCount.rar_统计_统计英文文章的词频_英文_英文词频 分析_词频统计

    通过这个项目,你可以学习到如何使用编程语言(如MATLAB)处理文本数据,理解文本分析的基本方法,并且掌握词频统计和分析的核心概念。这不仅可以提升你的编程技能,也有助于你理解和应用自然语言处理技术,对于未来...

    词频排序,关键字搜索

    在本项目中,"词频排序,关键字搜索"是一个基于数据结构实现的程序,它能够对文本中的词汇进行频率统计并排序,同时提供搜索特定词语的功能。以下将详细阐述涉及的相关知识点。 首先,数据结构是计算机科学的基础,...

    Java词频统计程序MVC

    在这个Java应用中,我们将探讨如何使用MVC模式进行词频统计的实现。 首先,我们来看Model层。这部分主要负责处理数据和业务逻辑。在词频统计程序中,Model层可能包含一个或多个类,用于读取文本文件,分割文本成...

    C#统计词频出现的次数并排序

    在C#编程中,统计词频出现的次数并进行排序是一项常见的文本处理...以上就是用C#统计词频出现的次数并进行排序的完整流程,这个案例不仅有助于理解C#的基本操作,而且在实际的数据分析和处理项目中具有很高的实用性。

    大数据 hadoop mapreduce 词频统计

    在这个"大数据Hadoop MapReduce词频统计"的场景中,我们利用MapReduce来统计文本中的词汇出现频率。这是数据分析中一个常见的任务,有助于理解文本内容的概貌。Map阶段的任务是对输入的文本进行分词,并形成<单词, 1...

    C++词频分析/词频分析器

    在本项目"**C++词频分析/词频分析器**"中,开发者使用C++编程语言构建了一个工具,该工具能够读取文本输入,并统计其中每个单词出现的频率,这对于诸如信息检索、自然语言处理、文本挖掘等多个应用场景具有重要意义...

    文本分类之词频统计(分词、词干提取、去停用词、计算词频,有界面

    综上所述,这个工具通过一系列预处理步骤,将原始文本转化为可供分析的形式,然后利用词频统计生成特征,以支持文本分类任务。结合用户界面,使得整个流程更加便捷高效,适合初学者和专业人士进行文本分析。

    一段不简单的词频统计代码(含注释)

    5. **排序与输出**:对`Counter`对象使用`most_common()`方法,可以按词频降序排序结果,这样就能得到最常见的单词及其出现次数。 示例代码可能如下: ```python from collections import Counter import string ...

    C#记录文档词频

    最后,我们可以按照词频从高到低排序,打印出结果。 ```csharp var sortedWords = wordFrequency.OrderByDescending(x => x.Value); foreach (var kv in sortedWords) { Console.WriteLine($"{kv.Key}: {kv.Value...

    基于词表的词频统计(孔令德,C++,C)

    "基于词表的词频统计" 本文主要讲解了基于词表的词频统计技术,该技术是中文信息处理的一项基本技术,...本文提供了一个基于词表的词频统计的代码实现,使用了 C++ 语言和哈希表、链表和快速排序等数据结构和算法。

    GB2312常用汉字词频排序

    这是我收录的GB2312中的全部的汉字,并按照每个汉字的使用频率进行排序。 挺适合做自然语言处理了。

    词频统计+倒排索引+数据去重+TopN

    在IT领域,尤其是在大数据处理和搜索引擎技术中,"词频统计+倒排索引+数据去重+TopN"是四个关键概念。接下来,我们将详细探讨这些知识点。 首先,词频统计(Word Frequency Count)是文本挖掘的基础工作,主要用于...

    298031条词库,已排序,含词频

    298031条词库,已排序,含词频,可用作输入法开发数据,txt格式的

    C#词频统计

    本项目提供的代码实现了这一功能,能够读取文本数据,计算每个单词的出现次数,并按照词频从高到低进行排序。下面将详细阐述实现这个功能的关键知识点。 首先,我们要理解C#的基础语法和数据结构。C#是一种面向对象...

    基于python的三国演义词频分析

    7. **统计_SG**:这可能是分析结果的存储文件,可能包含了《三国演义》中所有词频的统计信息,例如,最常见的前一百个词,或者是按词频排序的词列表。 8. **可视化**:分析结果可以通过条形图、饼图等形式进行可视...

    用Trie树实现词频统计和单词查询

    一个简单的C语言程序:用Trie树实现词频统计和单词查询

    大数据技术实践——Spark词频统计

    【Spark技术实践——词频统计】在大数据领域,Spark作为一种高效的数据处理框架,以其快速、通用和可扩展性而受到广泛关注。本实践旨在基于已经搭建的Hadoop平台,利用Spark组件进行文本词频统计,以此深入理解Scala...

Global site tag (gtag.js) - Google Analytics