• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 sys
    import re
    from operator import itemgetter

    def readfile(f):
    with file(f,"r") as pFile:
    return pFile.read()

    def divide(c, regex):
    #the regex below is only valid for utf8 coding
    return regex.findall(c)


    def update_dict(di,li):
    for i in li:
    if di.has_key(i):
    di[i]+=1
    else:
    di[i]=1
    return di

    def main():

    #receive files from bash
    files=sys.argv[1:]

    #regex compile only once
    regex=re.compile("(?x) (?: [\w-]+ | [\x80-\xff]{3} )")

    dict={}

    #get all words from files
    for 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-output
    for 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实现统计英文单词个数及字符串分割代码
    • 布同 统计英文单词的个数的python代码
    • Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】
    • Python3实现统计单词表中每个字母出现频率的方法示例
    • python 文本单词提取和词频统计的实例
    • python实现字符串中字符分类及个数统计
    • python 统计数组中元素出现次数并进行排序的实例
    • python统计字母、空格、数字等字符个数的实例
    • Python实现统计英文文章词频的方法分析
    上一篇:正则表达式学习问答
    下一篇:巧解 JavaScript 中的嵌套替换(强大正则)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

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