当前位置: 首页 > Python编程 > Python编程实战技能 > Python编程基础入门 > python如何统计词频

python如何统计词频

发布时间:2020年09月27日 07:51:39 来源: 点击量:380

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

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

如何用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)

分享到: 编辑:wangmin

就业培训申请领取
您的姓名
您的电话
意向课程
点击领取

环球青藤

官方QQ

扫描上方二维码或点击一键加群,免费领取大礼包,加群暗号:青藤。 一键加群

绑定手机号

应《中华人民共和国网络安全法》加强实名认证机制要求,同时为更加全面的体验产品服务,烦请您绑定手机号.

预约成功

本直播为付费学员的直播课节

请您购买课程后再预约

环球青藤移动课堂APP 直播、听课。职达未来!

安卓版

下载

iPhone版

下载
环球青藤官方微信服务平台

刷题看课 APP下载

免费直播 一键购课

代报名等人工服务

课程咨询 学员服务 公众号

扫描关注微信公众号

APP

扫描下载APP

返回顶部