python如何实现统计汉字/英文单词数的正则表达式
发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,这篇文章主要介绍了python如何实现统计汉字/英文单词数的正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。思路•使用正则式
千家信息网最后更新 2024年09月23日python如何实现统计汉字/英文单词数的正则表达式
这篇文章主要介绍了python如何实现统计汉字/英文单词数的正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
思路
•使用正则式 "(?x) (?: [\w-]+ | [\x80-\xff]{3} )"获得utf-8文档中的英文单词和汉字的列表。
•使用dictionary来记录每个单词/汉字出现的频率,如果出现过则+1,如果没出现则置1。
•将dictionary按照value排序,输出。
源码
#!/usr/bin/python# -*- coding: utf-8 -*-##author: rex#blog: http://iregex.org#filename counter.py#created: Mon Sep 20 21:00:52 2010#desc: convert .py file to html with VIM.import sysimport refrom operator import itemgetterdef readfile(f):with file(f,"r") as pFile:return pFile.read()def divide(c, regex):#the regex below is only valid for utf8 codingreturn regex.findall(c)def update_dict(di,li):for i in li:if di.has_key(i):di[i]+=1else:di[i]=1return didef main():#receive files from bashfiles=sys.argv[1:]#regex compile only onceregex=re.compile("(?x) (?: [\w-]+ | [\x80-\xff]{3} )")dict={}#get all words from filesfor f in files:words=divide(readfile(f), regex)dict=update_dict(dict, words)#sort dictionary by value#dict is now a list.dict=sorted(dict.items(), key=itemgetter(1), reverse=True)#output to standard-outputfor i in dict:print i[0], i[1]if __name__=='__main__':main()
Tips
由于使用了files=sys.argv[1:] 来接收参数,因此./counter.py file1 file2 ...可以将参数指定的文件的词频累加计算输出。
可以自定义该程序。例如,
•使用
regex=re.compile("(?x) ( [\w-]+ | [\x80-\xff]{3} )") words=[w for w in regex.split(line) if w]
这样得到的列表是包含分隔符在内的单词列表,方便于以后对全文分词再做操作。
•以行为单位处理文件,而不是将整个文件读入内存,在处理大文件时可以节约内存。
•可以使用这样的正则表达式先对整个文件预处理一下,去掉可能的html tags: content=re.sub(r"<[^>]+","",content),这样的结果对于某些文档更精确。
感谢你能够认真阅读完这篇文章,希望小编分享的"python如何实现统计汉字/英文单词数的正则表达式"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
单词
文件
正则
汉字
篇文章
表达式
英文
统计
内存
参数
文档
utf-8
处理
输出
精确
价值
全文
兴趣
分隔符
单位
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海华腾软件开发工资几号发
数据库在会计专业应用
阿里网络技术专家
网络安全保护制度分级
app电影服务器架设
软件开发或技术服务类的发票
钉钉怎么保持网络安全
普及网络安全知识技能
华为2020软件开发机试题
街道网络安全审计问题整改报告
吐鲁番网络技术质量
网络安全前沿专家
服务器异常启动怎么回事
redis连接到服务器的命令
二年级数学网络安全手抄报
实时数据库显卡
润联网络技术
数据库如何导出迁移
2017学软件开发
怎样在手机上玩拔刀剑服务器
mysql数据库管理
数据库基础入门
python网络安全监控
数据库智能运维平台
医药和网络技术哪个好
网络安全信息季度通报
车载网络技术的标准
小学网络安全组织机构
盒马软件开发票
学生在线考试系统数据库课设