python中结巴包的一些东西

jieba分词去掉停顿词语

	
#coding:utf-8
import jieba,csv
fenci=open(r'fenci_ddc.csv','w')  #数据写入到fenci_key里
stopkey=[line.strip().decode('utf-8') for line in open('stopkey.txt').readlines()]  
	#读取停止词文件并保存到列表stopkey
key=csv.reader(file('key_ddc.csv','rb'))  #读取需要处理的词库:key_ddc.csv
list1=[]
i=0
for keys in key:	
	if i==0:		
		i=1	
		jiebas=jieba.cut_for_search(keys[0]) #jieba.cut_for_search() 结巴分词搜索引擎模式			
		fenci_key="/".join(list(set(jiebas)-set(stopkey))) #使用join链接字符串输出
		list1.append(fenci_key.strip())  #将数据添加到list1列表
		print u'程序处理中,请等待...'
	else:
		jiebas=jieba.cut_for_search(keys[0]) 
	
		fenci_key="/".join(list(set(jiebas)-set(stopkey))) 
	
		list1.append(fenci_key.strip()) 

zidian={}.fromkeys(list1).keys()    #字典去重的方法
for zd  in zidian:	
	try:
		print zd	
	except:
		pass	
	fenci.writelines(zd.encode('utf-8'))      #需要转换成utf-8格式输出
	fenci.writelines('\n')
	
fenci.close()
	


计算文章关键的TF-IDF

import jieba
import jieba.analyse    #计算tf-idf需要调用此模块jieba.analyse	
stopkey=[line.strip().decode('utf-8') for line in open('stopkey.txt').readlines()] 
#将停止词文件保存到列表stopkey,停止词在网上下载的。
neirong = open(r"ceshi1.txt","r").read()  #导入需要计算的内容
zidian={}
fenci=jieba.cut_for_search(neirong)   #搜索引擎模式分词
for fc in fenci:
	if fc in zidian:                
        zidian[fc]+=1           #字典中如果存在键,键值加1,
    else:
        zidian.setdefault(fc,1)   #字典中如果不存在键,就加入键,键值设置为1	
quanzhong=jieba.analyse.extract_tags(neirong,topK=20)       #计算tf-idf,输出前20的权重词。

for qg in quanzhong:
     if qg in stopkey:       #如果qg存在停止词stopkey里面,则pass	
        pass
    else:                                        #不存在的话就输出qg和出现qg的次数
        print qg+","+`zidian[qg]`       #输出权重词和权重词出现的次数


 


计算关键词长度


import re,csv
key=csv.reader(file('uz.csv','rb'))
key1=open('uz1.csv','w')
zidian={}
lists=[]
for line in key:
	reges=re.compile(r'\w',re.M)
	E=reges.findall(line[0])   #获取数字和英文
	reges1=re.compile(r'\W',re.M)
	C=reges1.findall(line[0])  #获取到中文
	English= len(E)  #获取英文长度
	China=len(C)/3   #获取中文长度,中文一个汉字3个字节,除以3得到汉字个数
	length=line[0]+','+line[1]+','+`English+China`
	lists.append(length)
	
for ls in lists:
	ls=ls.split(',')
	ls_value=int(ls[2])      #这一步必须转成int,否则下面的字典排序的时候不会当作数值处理,而是当作字符来处理,导致排序错误
	ls_key=ls[0]+','+ls[1]
	zidian1={ls_key:ls_value}	
	zidian.update(zidian1)
cc=sorted(zidian.items(), key=lambda d:d[1], reverse=True )   #字典排序之降序,针对字典value排序(d:d[1]), reverse=true为降序
for key in cc:    #keys()字典的键值
	key1.writelines(key[0]+","+`key[1]`+"\n" )   #文件写入key1
	print key[0]+","+`key[1]`    #分别输出里面的数
key1.close()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值