python如何实现统计汉字/英文单词数的正则表达式

  介绍

这篇文章主要介绍了python如何实现统计汉字/英文单词数的正则表达式,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

思路
?使用正则式“x (?) (?:[\ w -] + | [\ x80 - \ xff]{3}),获得utf - 8文档中的英文单词和汉字的列表。
?使用字典来记录每个单词/汉字出现的频率,如果出现过则+ 1,如果没出现则置1。
?将字典按排照值序,输出。
源码

# !/usr/bin/python   #,- *安康;编码:utf-8  - * -   #   #作者:雷克斯   #博客:http://iregex.org   # filename  counter.py   #创建:,Mon  Sep  20 21:00:52  2010   # desc:, convert  .py  file 用html  with  VIM。   import 系统   import 再保险   得到operator  import  itemgetter   def  readfile (f):   with 文件(f,“r"), as  pFile:   return  pFile.read ()   def 分裂(c, regex):   #,regex  below  is  only  valid  for  utf8 编码   return  regex.findall (c)   李def  update_dict (di):   for 小姐:李:拷贝   if  di.has_key(我):   di[我]+=1   其他:   di[我]=1   di return    def  main ():   # receive  files 得到bash   文件=sys.argv [1:]   # regex  compile  only 一次   regex=re.compile (“x (?), (?: [\ w -] +, |, [\ x80 - \ xff] {3},)“)   dict={}   # get  all  words 得到文件   for  f 拷贝文件:   话说=分裂(readfile (f),,正则表达式)   dict=update_dict (dict,字)   # sort  dictionary  by 价值   # dict  is 你a 列表。   dict=排序(dict.items(),,关键=itemgetter(1),反向=True)   # output 用标准输出   for 小姐:dict拷贝:   print 我[0],[1]   if  __name__==& # 39; __main__ # 39;:   main ()

提示
由于使用了=sys文件。argv[1:]来接收参数,因此。/计数器。py file1 file2……可以将参数指定的文件的词频累加计算输出。
可以自定义该程序,例如,
?使用

regex=re.compile (“x (?), (, (\ w -) + |, [\ x80 - \ xff] {3},)“),   话说=[w  for  w 拷贝regex.split(线),if  w)

这样得到的列表是包含分隔符在内的单词列表,方便于以后对全文分词再做操作。
?以行为单位处理文件,而不是将整个文件读入内存,在处理大文件时可以节约内存。
?可以使用这样的正则表达式先对整个文件预处理一下,去掉可能的html标签:内容=re.sub (r" & lt;[^祝辞)+“,““,内容),这样的结果对于某些文档更精确。

感谢你能够认真阅读完这篇文章,希望小编分享的“python如何实现统计汉字/英文单词数的正则表达式”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

python如何实现统计汉字/英文单词数的正则表达式