如何用python和jieba分词,统计词频? #! python3
# -*- coding: utf-8 -*-
import os, codecs
import jieba
from collections import Counter
def get_words(txt):
seg_list = jieba.cut(txt)
c = Counter()
for x in seg_list:
if len(x)1 and x != '\r\n':
c[x]= 1
print('常用词频度统计结果')
for (k,v) in c.most_common(100):
print('%s%s %s%d' % (''*(5-len(k)), k, '*'*int(v/3), v))
if __name__ == '__main__':
with codecs.open('19d.txt', 'r', 'utf8') as f:
txt = f.read()
get_words(txt)
如何用python统计一个txt文件中各个单词出现的次数1、首先,定义一个变量,保存要统计的英文文章 。
2、接着,定义两个数组,保存文章中的单词,以及各单词的词频 。
3、从文章中分割出所有的单词 , 保存在数组中 。
4、然后 , 计算文章中单词的总数,保存在变量中 。
5、用for循环,统计文章中各单词的词频 。
6、最后,输出文章中各单词的词频 。
7、运行程序,电脑会自动统计输入文章中各单词的词频 。
一个txt文档,已经用结巴分词分完词,怎么用python工具对这个分完词的文档进行计算统计词频,求脚本 , 非#!/usr/bin/env python3
#-*- coding:utf-8 -*-
import os,random
#假设要读取文件名为aapython求词频的函数,位于当前路径
filename='aa.txt'
dirname=os.getcwd()
f_n=os.path.join(dirname,filename)
#注释掉python求词频的函数的程序段python求词频的函数,用于测试脚本,它生成20行数据,每行有1-20随机个数字,每个数字随机1-20
'''
test=''
for i in range(20):
for j in range(random.randint(1,20)):
test =str(random.randint(1,20)) ' '
test ='\n'
with open(f_n,'w') as wf:
wf.write(test)
'''
with open(f_n) as f:
s=f.readlines()
#将每一行数据去掉首尾的空格和换行符,然后用空格分割,再组成一维列表
words=[]
for line in s:
words.extend(line.strip().split(' '))
#格式化要输出的每行数据,首尾各占8位,中间占18位
def geshi(a,b,c):
return alignment(str(a)) alignment(str(b),18) alignment(str(c)) '\n'
#中英文混合对齐,参考 , 二楼
#汉字与字母 格式化占位 format对齐出错 对不齐 汉字对齐数字 汉字对齐字母 中文对齐英文
#alignment函数用于英汉混合对齐、汉字英文对齐、汉英对齐、中英对齐
def alignment(str1, space=8, align = 'left'):
length = len(str1.encode('gb2312'))
space = space - length if space =length else 0
if align in ['left','l','L','Left','LEFT']:
str1 = str1' ' * space
elif align in ['right','r','R','Right','RIGHT']:
str1 = ' '* spacestr1
elif align in ['center','c','C','Center','CENTER','centre']:
str1 = ' ' * (space //2)str1' '* (space - space // 2)
return str1
w_s=geshi('序号','词','频率')
#由(词,频率)元组构成列表 , 先按频率降序排序 , 再按词升序排序,多级排序,一组升,一组降,高级sorted
wordcount=sorted([(w,words.count(w)) for w in set(words)],key=lambda l:(-l[1],l[0]))
#要输出的数据,每一行由:序号(占8位)词(占20位)频率(占8位) '\n'构成,序号=List.index(element) 1
for (w,c) in wordcount:
w_s =geshi(wordcount.index((w,c)) 1,w,c)
#将统计结果写入文件ar.txt中
writefile='ar.txt'
w_n=os.path.join(dirname,writefile)
with open(w_n,'w') as wf:
wf.write(w_s)
如何用python对文章中文分词并统计词频1、全局变量在函数中使用时需要加入global声明
2、获取网页内容存入文件时的编码为ascii进行正则匹配时需要decode为GB2312,当匹配到的中文写入文件时需要encode成GB2312写入文件 。
3、中文字符匹配过滤正则表达式为ur'[一-龥] ',使用findall找到所有的中文字符存入分组
4、KEY , Value值可以使用dict存储,排序后可以使用list存储
5、字符串处理使用split分割,然后使用index截取字符串,判断哪些是名词和动词
6、命令行使用需要导入os,os.system(cmd)
【python求词频的函数 python词频统计】python求词频的函数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于python词频统计、python求词频的函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 带货在线直播文案策划,直播带货的宣传语
- 怎么关闭有限电视,怎么关闭有限电视付费业务
- css引入背景图不显示,css背景图片不显示
- 洪大炮视频号几点直播,洪大炮直播放的音乐叫什么名字
- 关于三星windows系统的信息
- mysql配置查询超时时间设置,mysql查询时间范围 优化
- 拍摄棚和拍摄箱有什么区别的简单介绍
- 直播伴侣直播流程详细教程,怎样用直播伴侣直播
- windows系统不睡眠的简单介绍