最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • python如何统计词频

    正文概述    2020-05-08   434

    python利用defaultdict(类字典类型)对文本中的词频进行统计和保存。方法是:1、利用open函数读取文本文件;2、利用相关分割符(如:空格)切分单词;3、利用defaultdict类型统计词频。

    python如何统计词频

    如何用python统计一个纯文本文件中的词频?这是我每次面试的时候都会问的一个问题。对于有些经验的程序员来说,这是一个很简单的问题。但实际情况是,很多面试者都不能很好甚至不能解决这个问题。

    对文本做词频统计在爬虫抓取了数据后对数据做分类、去重等都有应用,算是一个数据处理的基本功能。

    这里我们以英文内容为例来解决这个问题,而中文还涉及到文本的编码和分词。

    读取文本文件

    python读取文本很简单:

    #读取整个文件的内容:
    text = open('file.txt').read()
    #按行读取文本,并返回一个list,每一行是list的一个item
    lines = open('file.txt').readlines()

    切分单词

    英文行文以空格和标点符合来分隔单词,我们切分单词也以空格和标点符号来且分。但大多之考虑到空格而忽略了标点符号。英文中标点符合是直接挨着单词的,只以空格分割,会把表达符号也分到单词里面去。如下文本:

    Google introduced its TPU at Google I/O 2016. Distinguished hardware engineer – and top MIPS CPU architect – Norm Jouppi in a blog post said Google had been running TPUs in its data centers since 2015 and that the specialized silicon delivered “an order of magnitude better-optimized performance per watt for machine learning.”

    # 仅仅以空格切分:
    words = text.split(' ')
    #切分更准确的话就要使用正则表达式模块re
    import re
    # 下面的正则表达式的含义是,
    # 切分符包括空白符号(空格、换行符\n, Tab符\t等看不见的符号)、
    # 英文逗号、英文句号.、英文问号?、感叹号!、英文冒号:
    # 中括号[]扩起来表示任意匹配这些符号其一即可
    # 最后的加号+表示如果这些符号是连续挨着的则当成一个分割符切分
    pattern = r'[\s,\.?!:"]+'
    words = re.split(pattern, text)

    统计词频

    上面切分得到的words是一个list,里面有重复和不重复的单词。
    使用dict这个key-value数据结构来进行统计和保存统计结果。
    key就是单词,value就是单词的个数。

    result = {}
    for w in words:
        if w in result:
            result[w] += 1
        else:
            result[2] = 1
    #或者用defaultdict
    from collections import defaultdict
    result = defaultdict(int)
    for w in words:
        result[w] += 1

    defaultdict比dict少了一个if w in result的判断,这正是defaultdict的特点:当key不存在时默认其value为零。
    把以上程序片段写出一个.py文件就是一个比较完整的统计词频的程序。可以当作是Python入门小练习。
    完啦

    推荐课程:Python教程(Programming with Mosh)


    起源地下载网 » python如何统计词频

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元