`
san_yun
  • 浏览: 2662344 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

统计单词出现频率

 
阅读更多

这里有一个大文本,文件请从 http://10.125.9.144:8000/document.zip 获取,在解压后大约有20m(实际比赛时文件是1.1G)。 文本中都是英文单词,空格以及英文的标点符号: [.,;-~"?'!] (句号,逗号,分号,破折号,波浪号,双引号,问号,单引号,感叹号)

请统计出该文本中最常出现的前10个单词(不区分大小写)。 请注意,在统计中这20个单词请忽略(the, and, i, to, of, a, in, was, that, had, he, you, his, my, it, as, with, her, for, on)

 

 

#http://stackoverflow.com/questions/4215472/python-take-max-n-elements-from-some-list
import re, collections
import heapq

ignore_words = ['the','and','to','in','a','that','he','was','it','his','of', 'is', 'with', 'as', 'i', 'had', 'for', 'at', 'by', 'on','not', 'be', 'from', 'but', 's', 'you', 'or', 'her', 'him', 'which']

def words(text): 
    return re.findall('[a-z]+', text.lower())

def train(features):
    model = collections.defaultdict(lambda: 1)
    for f in features:
        model[f] += 1
    return model

import time
starttime = time.time()
f = file('/duitang/data/nltk_data/big.txt').read()
endtime = time.time()
exe_time = (endtime - starttime)*1000
print 'read',exe_time

starttime = time.time()
f = words(f)
endtime = time.time()
exe_time = (endtime - starttime)*1000
print 're',exe_time

starttime = time.time()
f = train(f)
endtime = time.time()
exe_time = (endtime - starttime)*1000
print 'dict',exe_time

starttime = time.time()
max_list=heapq.nlargest(40,f,key=f.get)
nmax_list = []
for m in  max_list:
    if m in ignore_words: continue
    nmax_list.append(m)
print nmax_list

endtime = time.time()
exe_time = (endtime - starttime)*1000
print 'sort',exe_time

 

分享到:
评论

相关推荐

    统计单词出现频率代码

    标题 "统计单词出现频率代码" 描述的是一个用于计算英文文章中单词频率的程序。这个程序可以帮助我们了解一篇文章中各个单词出现的频次,对于文本分析、信息检索或语言学习等场景都十分有用。标签 "单词" 和 "频率" ...

    MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar

    MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar MapReduce Java API实例-统计单次出现频率示例代码-MapReduceDemo.rar

    Java词频统计算法(使用单词树)

    传统的词频统计方法通常是通过遍历文档中的每个单词,并使用`HashMap`来记录每个单词出现的次数。这种方法虽然实现简单,但在性能方面存在明显的缺陷。 #### 基本方法与不足 传统的词频统计方法基于`HashMap`,...

    单词字母频率统计.单词字母频率统计

    在提供的压缩包中,“统计文本单词频率(c++实现).txt”可能是一个包含C++代码的示例,它展示了如何执行上述步骤。通过阅读和理解这个代码,你可以进一步学习如何在实际项目中运用这些知识。 此外,"单词字母频率...

    统计单词在文章中出现频率

    标题 "统计单词在文章中出现频率" 描述的是一个C++编程任务,目的是设计并实现一个程序,能够读取一个包含英文文章的文本文件,分析其中的单词,并统计每个单词出现的次数。最终,程序会将这些信息写入另一个文件,...

    C++双向链表统计文章单词出现频率

    为了统计单词频率,我们可以创建一个自定义的双向链表节点类,每个节点存储一个单词和对应的计数值。在遍历文本的过程中,我们可以用哈希映射(如`std::unordered_map`)暂存单词及其出现次数,避免重复计算。最后,...

    统计单词出现的频率

    统计单词出现的频率,很好用,好东西要分享

    统计 单词频率练习

    本实践项目聚焦于“统计单词频率”,这是一个典型的文本处理问题,旨在通过编程来实现对文本数据的高效分析。在这个过程中,我们将学习如何统计单词个数,查询特定单词及其出现频率,以及定位单词在文本中的行号。 ...

    c++课程设计单词频率统计

    这样一来对文件中单词频率的统计就转化为对内存链表中单词频率的统计。 在这个过程中需要用到打开文件并显示文件里的英文文章的函数openfile(),这个函数包括了打开文件并显示里面的内容,将英文文章存放到...

    单词的统计和频率计数的小工具

    从磁盘中输入文件,然后对文件中的单词进行统计,并由高到低的顺序输出单词及其出现频率

    Spark学习---统计文件单词出现次数

    上一节我们简单介绍了RDD中转化和执行操作的用法,本节将通过一个具体的示例来加深对RDD的认识。 一.需求 ...4.通过reduceByKey,累计叠加每个key,统计单词出现次数; 三.代码实现 四.下载代码

    统计一篇文档中每个单词出现的次数,频率

    在IT领域,文本分析是一项重要的任务,而统计文档中每个单词的出现次数是其中的基础步骤。这个过程通常称为词频统计,它可以帮助我们理解文本的主要主题、找出关键词或进行文本挖掘。下面,我们将深入探讨如何在Java...

    统计文本文件中一段英文中某个单词出现的次数及其出现的位置

    4. 主函数 `main`:该函数负责读取文本文件,获取用户输入的单词,并调用 `Index` 函数来统计单词的出现次数及其出现的位置。 统计单词出现次数及其出现的位置 函数 `Index` 负责统计给定单词在文本文件中的出现...

    C#英文词频统计-统计单词出现次数

    词频统计是指在给定文本中计算每个单词出现的频率,它对于文本挖掘、信息检索和自然语言处理等领域具有重要意义。通过词频统计,我们可以发现文本中最常出现的词汇,这些高频词汇往往反映了文本的核心内容。 在C#中...

    统计指定的文本文件(英文)中,每个单词的出现频率,输出按字典序排列的单词频度表。

    这样的程序设计不仅可以用于统计单词频率,还可以扩展到其他文本分析任务,如找出最常见的单词、检测停用词或进行词性标注等。掌握这些基础技能对于IT专业人士,尤其是从事数据科学、自然语言处理和软件开发的人来说...

    二叉搜索树统计单词频率 MFC实现

    在"二叉搜索树统计单词频率"的问题中,我们首先需要读取用户输入的一段文本,将其中的单词提取出来。这个过程通常涉及到字符串处理,例如分隔符分割、大小写转换等,以便进行统一的比较。我们可以使用C++的标准...

    数据结构 统计单词频率

    在数据结构课程设计中,"统计单词频率"是一个常见的实践项目,它涉及到文本处理、数据组织和算法应用。这个项目的主要目标是分析文本文件中的单词出现频次,并以可视化的方式展示出来。MFC(Microsoft Foundation ...

    JS使用单链表统计英语单词出现次数

    在JavaScript编程中,有时我们需要处理文本数据,例如统计一段英文文本中各个单词出现的次数。在这种情况下,可以利用数据结构中的链表来有效地实现这一功能。本篇文章将介绍如何使用单链表(Singly Linked List)来...

    单词的词频统计,按出现的频率递减的次序输出

    单词的词频统计 基本功能要求: (1)从文件中读出一篇英文文章,将不同的单词存入堆中,建立相应的索引表确定各单词在堆中存储的位置及出现的次数。 (2)按出现的频率递减的次序输出。

    统计文本单词频率(c++实现)

    在IT领域,尤其是在编程与数据处理方面,统计文本单词频率是一项基本且重要的任务。通过给定的代码示例,我们可以深入探讨如何使用C++结合STL(标准模板库)中的`map`容器来高效地完成这一工作。 ### 核心知识点...

Global site tag (gtag.js) - Google Analytics