现有列表如下:

[6, 7, 5, 9, 4, 1, 8, 6, 2, 9]

希望统计各个元素出现的次数,可以看作一个词频统计的问题。

我们希望最终得到一个这样的结果:{6:2, 7:1...}即 {某个元素:出现的次数...}

首先要将这些元素作为字典的键,建立一个初值为空的字典:

>>> from random import randint
>>> l = [randint(1,10) for x in xrange(10)]
>>> l
[6, 7, 5, 9, 4, 1, 8, 6, 2, 9]
>>> d = dict.fromkeys(l, 0)
>>> d
{1: 0, 2: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
# 现在的任务是需要将d中每个键所对应的值统计出来
>>> for x in l:
>>>     d[x] += 1
>>> d
{1: 1, 2: 1, 4: 1, 5: 1, 6: 2, 7: 1, 8: 1, 9: 2}
# 这就统计完了所有的元素出现的次数

另外一种方法,利用collections模块中的Counter对象

>>> from collections import Counter
# 这个Counter可以直接接受一个列表,将它转化为统计完成的结果
>>> d = Counter(l)
>>> d
Counter({6: 2, 9: 2, 1: 1, 2: 1, 4: 1, 5: 1, 7: 1, 8: 1})
# 该Counter对象是字典对象的子类,也可以通过键来访问对应值
>>> d[6]
2
# Counter对象方便之处在于它内置有most_common(n)方法,可以直接统计出前n个最高词频
>>> d.most_common(2)
[(6, 2), (9, 2)]

下面进行实践,对某篇文章进行词频统计,得到词频最高的十个词。

>>> import re
>>> from collections import Counter
>>> txt = open('CodingStyle.txt').read()
>>> new_txt = re.split('\W+', txt)
>>> result = Counter(new_txt)
>>> result.most_common(10)

使用python对中文文档进行词频统计

  • 15247
1、使用jieba先对中文文档进行分词处理

需要处理的clean_data.csv文件内容(三列)

http://you.ctrip.com/travels/1322/1360550.html   地中海邮轮+罗马深度自由行      宅猫行天下     
http://you.ctrip.com/travels/1400/1600356.html  柏林&安纳西     老鼠m

[python] view plain copy
  1. import sys
  2. reload(sys)
  3. sys.setdefaultencoding("utf-8")
  4. import jieba
  5. import jieba.analyse
  6. wf = open('clean_title.txt','w+')
  7. for line in open('/root/clean_data/clean_data.csv'):
  8. item = line.strip('\n\r').split('\t') //制表格切分
  9. # print item[1]
  10. tags = jieba.analyse.extract_tags(item[1]) //jieba分词
  11. tagsw = ",".join(tags) //逗号连接切分的词
  12. wf.write(tagsw)
  13. wf.close()

输出的clean_title.txt内容

[python] view plain copy
  1. 邮轮,地中海,深度,罗马,自由纳西,柏林签证,步行,三天,批准申根,手把手,签证,申请,如何赞爆,法兰,穿越,葡萄酒,风景,河谷,世界欧洲颜色,一种,国家,一个水族箱,帕劳,七日,上帝奥林匹亚,跑步圣托,
  2. 里尼,文明古国,探访,爱琴海,魅力,希腊

2、统计词频

[python] view plain copy
  1. #!/usr/bin/python
  2. # -*- coding:utf-8 -*-
  3. word_lst = []
  4. word_dict= {}
  5. with open('/root/clean_data/clean_title.txt') as wf,open("word.txt",'w') as wf2: //打开文件
  6. for word in wf:
  7. word_lst.append(word.split(',')) //使用逗号进行切分
  8. for item in word_lst:
  9. for item2 in item:
  10. if item2 not in word_dict: //统计数量
  11. word_dict[item2] = 1
  12. else:
  13. word_dict[item2] += 1
  14. for key in word_dict:
  15. print key,word_dict[key]
  16. wf2.write(key+' '+str(word_dict[key])+'\n') //写入文档

结果:

[python] view plain copy
  1. 最后 4
  2. 欧洲幽蓝 1
  3. 集美 1
  4. 葡萄牙法多 1
  5. 工地 1
  6. 知道湖光山色 1
  7. 神圣 7
  8. 欧洲少女瑞士加游 1

根据词汇数量排序查看:

cat word.txt |sort -nr -k 2|more

[python] view plain copy
  1. 神圣 7
  2. 最后 4
  3. 欧洲幽蓝 1
  4. 集美 1
  5. 葡萄牙法多 1
  6. 工地 1
  7. 知道湖光山色 1
  8. 欧洲少女瑞士加游 1

python词频统计的方式相关推荐

  1. python词频统计(word ——> excel,含去重)

    word资料处理 -------> 存入excel 精简地从word文档读取资料,分析后传入excel文档. 不是txt!因为我的电脑是mac,针对txt的乱码问题解决不了. 主要操作的思维导图 ...

  2. python词频统计完整步骤_Python统计词频的几种方式

    语料 text = """My fellow citizens: I stand here today humbled by the task before us, gr ...

  3. python 词频统计,分词笔记

    Python的中文分词库有很多,常见的有: jieba(结巴分词) THULAC(清华大学自然语言处理与社会人文计算实验室) pkuseg(北京大学语言计算与机器学习研究组) SnowNLP pynl ...

  4. python词频统计时、文件放哪里_初学python,词频统计小实验

    最近突然对python感兴趣,就学了起来.我可怜的计算机基础只有VB,而且学的时候这门课还特别水,仅仅了解了语法,考试基本上是背题过的. 现在自学python还是比较吃力.今天捣鼓了一下午,搞出了一个 ...

  5. Python词频统计之密信约定进攻时间

    问题 假设你是小蔡,你和小徐同学一起穿越到了抗战时期,分别成为了八路军华北根据地A地和B地的联络员.此时,两地的八路军部队准备发动协同进攻,给予日寇重重一击.由于某些原因无法亲自送信,为了约定进攻时间 ...

  6. python词频统计代码_python统计词频

    一.程序分析 (1)将文件读入缓冲区(dst指文本文件存放路径,设置成形参,也可以不设,具体到函数里设置) def process_file(dst): # 读文件到缓冲区try: # 打开文件 tx ...

  7. python词频统计完整步骤_Python中文文本分词、词频统计、词云绘制

    本文主要从中文文本分词.词频统计.词云绘制方面介绍Python中文文本分词的使用.会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections. 1 准备工 ...

  8. python词频统计GUI(thinter)

    本文介绍利用python实现了简单的词频统计程序,其中涉及了简单的正则表达式的使用和python可视化模块tkinter的使用.完成了选择任意的文件,然后统计其中的单词的出现频度并以列表的形式展现出来 ...

  9. python词频统计西游记_实例10-文本词频统计.pdf

    Python语言程序设计 实例10: 文本词频统计 嵩 天 北京理工大学 "文本词频统计"问题分析 CC BY-NC-SA 4.0 嵩天 问题分析 文本词频统计 - 需求 :一篇文 ...

最新文章

  1. windowservice创建及部署
  2. vue.js项目文件搭建
  3. MDK5中代码补全功能
  4. 服务网关 - jwt
  5. postSQL使用存储过程动态查询
  6. mysql有rollup函数_如何在MySQL ROLLUP函数中替换NULL类别标题?
  7. zktime 协议_Zktime考勤管理系统
  8. java8steam流 filler_做有机硅,不懂英文哪能行?——赶紧收藏,说不定哪天就用到了!...
  9. IP138 IP地址查询 php实例
  10. <hr> 标签:定义水平线
  11. 四川跃恒云启网络科技有限公司:拼多多推广花费高怎么调整
  12. 【SRS】ATC模式和时间抖动矫正
  13. RabbitMQ了解——>安装——>入门
  14. Android 第三方应用接入微信平台(1)
  15. 带本科生作工程实习(1)
  16. MATLAB中关于函数intlinprog的使用
  17. 详解电脑开不了机怎么重装系统
  18. .Cisco 路由器、交换机密码恢复
  19. 北京市怀柔区谷歌卫星地图下载
  20. hp服务器系统安装 win7,hp惠普电脑重装win7系统的方法

热门文章

  1. 深入剖析在意大利肆掠的Danabot木马新变种
  2. 【Hive笔记】练习hive操作
  3. Did you know?
  4. 关于TB67S109AFNAG的应用分享及应用
  5. 校园歌咏比赛成绩统计
  6. (第二回合)回龙观大叔狂磕mysql
  7. html中data-属性作用,html中的data-*的用法和作用 自定义属性
  8. SQL优化整理(三)
  9. github搜索star最多的项目
  10. QSettings用法理解