受http://yixuan.cos.name/cn/2011/03/text-mining-of-song-poems/这篇文章的启发,觉得PYTHON来做文字处理分析应该不错,可以来做个词频分析,分析聊天记录可以看出每个人的说话习惯

用的是暴力方法 不用语义分析 直接列出所有出现的字词

做下来觉得难点就在中文编码这部分 python下中文涉及的编码转化确实要琢磨一番

首先数据文件要存为utf-8格式

在python显示中文的关键代码:

import sys
reload(sys)
sys.setdefaultencoding('utf8')
txt.encode('gb18030')

txt为中文字符串

搜索中文,用正则表达式匹配:

r = re.compile('[\x80-\xff]+')
m = r.findall(txt)

字典排序,按照value排序,代码很精简:

dict=sorted(dict.items(), key=lambda d:d[1])

代码:

#coding=utf-8
#Author: http://blog.csdn.net/boksic
import sys,rereload(sys)
sys.setdefaultencoding('utf8')
txt = open('blog.csdn.net.boksic.txt','r').read()
wfile=open('result.txt','w')r = re.compile('[\x80-\xff]+')
m = r.findall(txt)
dict={}
z1 = re.compile('[\x80-\xff]{2}')
z2 = re.compile('[\x80-\xff]{4}')
z3 = re.compile('[\x80-\xff]{6}')
z4 = re.compile('[\x80-\xff]{8}')
for i in m:x = i.encode('gb18030')i = z1.findall(x)#i+= z2.findall(x)#i+= z2.findall(x[2:])#i+= z3.findall(x)#i+= z3.findall(x[2:])#i+= z3.findall(x[4:])#i+= z4.findall(x)#i+= z4.findall(x[2:])#i+= z4.findall(x[4:])#i+= z4.findall(x[6:])for j in i:if (j in dict):dict[j]+=1else:dict[j]=1dict=sorted(dict.items(), key=lambda d:d[1])
for a,b in dict:if b>0:wfile.write(a+','+str(b)+'\n')

感觉匹配的代码还不是很好

于是改了一个直接在utf-8格式下搜索的代码

 for l in range(len(i)/3):x+=[i[3*l:3*l+3]]for l in range(len(i)/3-1):x+=[i[3*l:3*l+6]]for l in range(len(i)/3-2):x+=[i[3*l:3*l+9]]

但实际运行速度太慢了,有时还有错误,望高手指点这部分

最后还是用正则搜索的代码,虽然代码比较冗长 运行速度还可以 50万字的文件 不到一秒就统计完了

(不太理解这里的python正则搜索的速度比数组存取怎么快这么多)

因为这种方法没有什么语义算法,所以得到的结果还需要一些人工筛选

聊天记录的统计效果:

低频单字

高频单字

多字

也来分析下唐诗宋词

单字的话

香,106

何,107

有,109

夜,109

日,111

千,114

年,114

是,114

时,115

相,117

雨,118

月,121

处,128

云,133

山,141

春,157

来,160

天,163

花,179

一,184

不,189

无,193

风,230

人,276

多字

归去,14
明月,14
西风,15
盈盈,15
不见,16
万里,17
多少,17
相思,18
风流,18
当年,18
浣溪,19
回首,19
少年,20
无人,20
千里,22
人间,24
何处,31

基于python的中文词频分析相关推荐

  1. 使用python进行“中文词频分析”学习笔记

    首先什么是"词频分析"? 词频分析,就是对某一或某些给定的词语在某文件中出现的次数进行统计分析. 那么它能做哪些事情? 比如:分析你最喜欢的作者的表达习惯是怎样的? 判断一首诗是李 ...

  2. python信息采集管理系统_基于Python的求职信息采集分析系统设计与实现

    基于 Python 的求职信息采集分析系统设计与实现 关鑫洁 ; 黄思奇 ; 位磊 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2020(000)003 [摘要] 为了便于求职 ...

  3. python微博文本分析_基于Python的微博情感分析系统设计

    基于 Python 的微博情感分析系统设计 王欣 ; 周文龙 [期刊名称] < <信息与电脑> > [年 ( 卷 ), 期] 2019(000)006 [摘要] 微博是当今公众 ...

  4. 第三方库实现中文词频分析和词语可视化(jieba,wordcloud库)

    jieba,wordcloud库实现中文词频分析和词语可视化 文章目录 前言: 一.实验题目: 二.实验准备: 三.实验内容 1.全部代码: 2.实验结果: 3.难点分析: 结语: 前言: 这篇文章是 ...

  5. python微博评论情感分析_基于Python的微博情感分析系统设计

    2019 年第 6 期 信息与电脑 China Computer & Communication 软件开发与应用 基于 Python 的微博情感分析系统设计 王 欣 周文龙 (武汉工程大学邮电 ...

  6. python文本聚类 词云图_有哪些软件可以进行中文词频分析?

    在现实生活中,人想做词云,也有了关键词的数据但自己又不会做词云可怎么办,我给大家推荐几款词云制作工具,让你瞬间呈现美观.酷炫的词云可视化.我们先来看看国外的词云制作工具: 1.Wordle Wordl ...

  7. 大数据分析 | 用 Python 做文本词频分析

    老师教给我,要学骆驼,沉得住气的动物.看它从不着急,慢慢地走,慢慢地嚼,总会走到的,总会吃饱的. ---<城南旧事> 目录 一.前言 Python 简介 Python 特点 二.基本环境配 ...

  8. 红楼梦人物出场顺序python_Python 中文词频分析——红楼梦人物出场次数

    本篇文档,带大家用Python做一下词频统计 本章需要用到Python的jieba模块 jieba模块是一个经典的用于中文分词的模块 首先呢 我们需要读取文章的内容,并用jieba库的lcut进行分词 ...

  9. Python入门与词频分析初步

    一.python与其他语言的区别 1.python作为一门解释性语言,与java.C等语言相比,第一个特点就是python不用编译,可以像脚本一样直接运行.前几天咱们工作室有同学问我,他的编程界面为什 ...

最新文章

  1. ajax不能设置哪些header
  2. 修改Xmodem/Zmodem上传下载路径
  3. rome rss_RSS阅读器使用:ROME,Spring MVC,嵌入式Jetty
  4. docker etcd
  5. 7-1 模拟EXCEL排序 (25 分)
  6. SparkRDD常用算子实践(附运行效果图)
  7. 关于计算机设计的英语作文,一篇关于计算机的看法的英语作文
  8. 达观杯文本智能处理挑战赛冠军解决方案
  9. jsp input输入实时校验长度并提示_拆解「输入框」,理解输入反馈的规则逻辑
  10. Logic Pro X for Mac(专业级音频制作软件)
  11. 机器学习 扬帆起航004-02评估假设与比较检验
  12. 姓名降序排列语句c语言,sql语句升序降序排列20个
  13. 网易,这次你让粉丝们失望了
  14. SQL查询-查询所有员工的姓名及其直接上级的姓名,没有领导的员工也需要查询
  15. C语言自定义函数的调用
  16. 联系超级计算机,与超级计算机共事是一种怎样的体验?
  17. PairWork2必应词典测试补交作业-孙胜-刘明
  18. Emlog最新付费模板带会员
  19. The contents in the strings file of the famous IM app.
  20. oTree学习教程(一)概念性概述

热门文章

  1. 记录——python与华为云对象存储服务OBS
  2. 台式机切换有线/无线网脚本
  3. Finished with error: ProcessException: ProcessXXXXXXXexited abnormally 的解决方法
  4. 换一种姿势挖掘任意用户密码重置漏洞
  5. 视频编码之I帧、P帧、B帧
  6. 睡梦音乐声悠悠...
  7. java遗传算法编程_遗传算法示例程序
  8. sakila数仓实战案例
  9. Java_笛卡尔积计算
  10. 机器学习VS深度学习,两者区别在哪里?