python词频统计的方式
现有列表如下:
[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
需要处理的clean_data.csv文件内容(三列)
http://you.ctrip.com/travels/1322/1360550.html 地中海邮轮+罗马深度自由行 宅猫行天下
http://you.ctrip.com/travels/1400/1600356.html 柏林&安纳西 老鼠m
- import sys
- reload(sys)
- sys.setdefaultencoding("utf-8")
- import jieba
- import jieba.analyse
- wf = open('clean_title.txt','w+')
- for line in open('/root/clean_data/clean_data.csv'):
- item = line.strip('\n\r').split('\t') //制表格切分
- # print item[1]
- tags = jieba.analyse.extract_tags(item[1]) //jieba分词
- tagsw = ",".join(tags) //逗号连接切分的词
- wf.write(tagsw)
- wf.close()
输出的clean_title.txt内容
- 邮轮,地中海,深度,罗马,自由纳西,柏林签证,步行,三天,批准申根,手把手,签证,申请,如何赞爆,法兰,穿越,葡萄酒,风景,河谷,世界欧洲颜色,一种,国家,一个水族箱,帕劳,七日,上帝奥林匹亚,跑步圣托,
- 里尼,文明古国,探访,爱琴海,魅力,希腊
2、统计词频
- #!/usr/bin/python
- # -*- coding:utf-8 -*-
- word_lst = []
- word_dict= {}
- with open('/root/clean_data/clean_title.txt') as wf,open("word.txt",'w') as wf2: //打开文件
- for word in wf:
- word_lst.append(word.split(',')) //使用逗号进行切分
- for item in word_lst:
- for item2 in item:
- if item2 not in word_dict: //统计数量
- word_dict[item2] = 1
- else:
- word_dict[item2] += 1
- for key in word_dict:
- print key,word_dict[key]
- wf2.write(key+' '+str(word_dict[key])+'\n') //写入文档
结果:
- 最后 4
- 欧洲幽蓝 1
- 集美 1
- 葡萄牙法多 1
- 工地 1
- 知道湖光山色 1
- 神圣 7
- 欧洲少女瑞士加游 1
根据词汇数量排序查看:
cat word.txt |sort -nr -k 2|more
- 神圣 7
- 最后 4
- 欧洲幽蓝 1
- 集美 1
- 葡萄牙法多 1
- 工地 1
- 知道湖光山色 1
- 欧洲少女瑞士加游 1
python词频统计的方式相关推荐
- python词频统计(word ——> excel,含去重)
word资料处理 -------> 存入excel 精简地从word文档读取资料,分析后传入excel文档. 不是txt!因为我的电脑是mac,针对txt的乱码问题解决不了. 主要操作的思维导图 ...
- python词频统计完整步骤_Python统计词频的几种方式
语料 text = """My fellow citizens: I stand here today humbled by the task before us, gr ...
- python 词频统计,分词笔记
Python的中文分词库有很多,常见的有: jieba(结巴分词) THULAC(清华大学自然语言处理与社会人文计算实验室) pkuseg(北京大学语言计算与机器学习研究组) SnowNLP pynl ...
- python词频统计时、文件放哪里_初学python,词频统计小实验
最近突然对python感兴趣,就学了起来.我可怜的计算机基础只有VB,而且学的时候这门课还特别水,仅仅了解了语法,考试基本上是背题过的. 现在自学python还是比较吃力.今天捣鼓了一下午,搞出了一个 ...
- Python词频统计之密信约定进攻时间
问题 假设你是小蔡,你和小徐同学一起穿越到了抗战时期,分别成为了八路军华北根据地A地和B地的联络员.此时,两地的八路军部队准备发动协同进攻,给予日寇重重一击.由于某些原因无法亲自送信,为了约定进攻时间 ...
- python词频统计代码_python统计词频
一.程序分析 (1)将文件读入缓冲区(dst指文本文件存放路径,设置成形参,也可以不设,具体到函数里设置) def process_file(dst): # 读文件到缓冲区try: # 打开文件 tx ...
- python词频统计完整步骤_Python中文文本分词、词频统计、词云绘制
本文主要从中文文本分词.词频统计.词云绘制方面介绍Python中文文本分词的使用.会使用到的中文文本处理包包括:wordcloud,jieba,re(正则表达式),collections. 1 准备工 ...
- python词频统计GUI(thinter)
本文介绍利用python实现了简单的词频统计程序,其中涉及了简单的正则表达式的使用和python可视化模块tkinter的使用.完成了选择任意的文件,然后统计其中的单词的出现频度并以列表的形式展现出来 ...
- python词频统计西游记_实例10-文本词频统计.pdf
Python语言程序设计 实例10: 文本词频统计 嵩 天 北京理工大学 "文本词频统计"问题分析 CC BY-NC-SA 4.0 嵩天 问题分析 文本词频统计 - 需求 :一篇文 ...
最新文章
- windowservice创建及部署
- vue.js项目文件搭建
- MDK5中代码补全功能
- 服务网关 - jwt
- postSQL使用存储过程动态查询
- mysql有rollup函数_如何在MySQL ROLLUP函数中替换NULL类别标题?
- zktime 协议_Zktime考勤管理系统
- java8steam流 filler_做有机硅,不懂英文哪能行?——赶紧收藏,说不定哪天就用到了!...
- IP138 IP地址查询 php实例
- <hr> 标签:定义水平线
- 四川跃恒云启网络科技有限公司:拼多多推广花费高怎么调整
- 【SRS】ATC模式和时间抖动矫正
- RabbitMQ了解——>安装——>入门
- Android 第三方应用接入微信平台(1)
- 带本科生作工程实习(1)
- MATLAB中关于函数intlinprog的使用
- 详解电脑开不了机怎么重装系统
- .Cisco 路由器、交换机密码恢复
- 北京市怀柔区谷歌卫星地图下载
- hp服务器系统安装 win7,hp惠普电脑重装win7系统的方法