我是靠谱客的博主 忐忑白开水,最近开发中收集的这篇文章主要介绍利用python做中文词频分析                                    利用python做中文词频分析 ,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

                                    利用python做中文词频分析

        摘要:利用python做中文词频 分析,分析文本中词频出现的次数,文本可以保存在TXT或者CSV文件中,用到csv库和正则表达式。需要有文本处理和正则表达式的基础,不会请先学习这方面内容。

      导入库:
# coding=utf-8   编码形式
import sys      #字符串处理方式
import  re      #包含正则表达式
import csv
       因为要用到中文,所以用 coding=utf-8设定为utf-8格式,否则会出现乱码,这个根据数据源的编码形式改变,如果数据源是其他的格式要按照数据源更改格式,或者利用Notpad更改数据源格式为utf-8。
       CSV全部代码:
# coding=utf-8            设定编码形式
# Author:                 luoqingyu
import sys                #字符串处理方式
import  re                #包含正则表达式
import csv                #包含CSV库

reload(sys)
sys.setdefaultencoding('utf8')          
wfile = open('result.txt', 'w')        #存放结果的文件,放同义一目录下
dict = {}
r = re.compile('[x80-xff]+')         #正则表达式,表示匹配汉字和标点符号
z1 = re.compile('[x80-xff]{2}')      #正则表达式,表示匹配1个汉字和标点符号
z2 = re.compile('[x80-xff]{4}')      #正则表达式,表示匹配2个汉字和标点符号
z3 = re.compile('[x80-xff]{6}')      #正则表达式,表示匹配3个汉字和标点符号
z4 = re.compile('[x80-xff]{8}')
with open('test7.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row[4]
        x = row[0].encode('gb18030')
        i = z4.findall(x)              #Z1统计单字,Z4表示统计四字高频
        for j in i:

            if (j in dict):
                dict[j] += 1
            else:
                dict[j] = 1
dict = sorted(dict.items(), key=lambda d: d[1],reverse=True)       #安装value排序
for a, b in dict:                                                  #a是中文,b是词出现的次数
    if b > 0:
        wfile.write(a + ',' + str(b) + 'n')

    效果:双字高频

    
        四字高频:


TXT全部代码:
#coding=utf-8
#Author: http://blog.csdn.net/boksic
import sys,re

reload(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]+=1
		else:
			dict[j]=1
			
			
dict=sorted(dict.items(), key=lambda d:d[1])
for a,b in dict:
	if b>0:
		wfile.write(a+','+str(b)+'n')
	
	







最后

以上就是忐忑白开水为你收集整理的利用python做中文词频分析                                    利用python做中文词频分析 的全部内容,希望文章能够帮你解决利用python做中文词频分析                                    利用python做中文词频分析 所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部