前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python读取文件后进行词频统计

Python读取文件后进行词频统计

作者头像
算法与编程之美
发布2021-12-01 21:19:56
2.8K0
发布2021-12-01 21:19:56
举报
文章被收录于专栏:算法与编程之美

1引言

本文解决由粉丝提出的问题。

2 问题

我们在使用python函数获取文件后,有时需要对该文件进行词频统计。

本文将通过对英文文件的读取和中文文件的读取进行讲解。

3 方法

一.统计英文文档中的词频

  1. 统计英文词频的第一步是分解并提取英文文章的单词,同一个单词会存在大小写不同形式,但计数却不能区分大小写,可通过lower()将字母变为小写。
  2. 文中具有多种标点符合,可通过replace()将特殊字符和标点符号变为空格,再提取单词。
  1. 定义字典统计单词及其出现次数。
  2. 将字典转换为列表,并进行排序。
  1. 出现次数从高到低进行排序并且打印输出。

完整代码:

代码清单 1

代码语言:javascript
复制
def getText():
   txt = open("C:\\Users\\61483\\Desktop\\EnglishTest.txt","r",encoding='utf-8').read()
   txt = txt.lower()    #排除单词大小写影响
for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_`{1}~':
       txt = txt.replace(ch," ")    #排除特殊字符及标点符号的影响
return txt
EnglishTxt = getText()
# print(EnglishTxt)
words = EnglishTxt.split()
counts = {}          #统计单词出现次数
for word in words:
   counts[word] = counts.get(word,0) + 1
items = list(counts.items())             #将字典转换为记录列表
items.sort(key=lambda x:x[1],reverse=True)   #进行排序
for i in range(10):
   word,count = items[i]
print("{0:<10}{1:>5}".format(word,count))    #从高到低输出出现次数多的前十个单词

二.对中文文档进行词频统计

1.安装python第三方库(pip install jieba)

1.1 jieba库的使用

jieba库简介:

Jieba库分词原理是利用一个中文词库,将待分词内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词,jieba库还提供增加自定义中文单词的功能。

函数

描述

jieba.cut(s)

精确模式,返回一个可迭代的数据类型

jieba.cut(s,cut_all=True)

全模式,输出文本s中所有可能的单词

jieba.cut_for_search(s)

搜索引擎模式,适合搜索引擎建立索引

jieba.lcut(s)

精确模式,返回一个列表类型

jieba.lcut(s,cut_all=True)

全模式,返回一个列表类型

jieba.lcut_for_search(s)

搜索引擎模式,返回一个列表类型

jieba.add_word(w)

向分词词典中增加新词w

  1. 使用jieba分词之后,词频统计方法与英文词频统计方法类似,下面展示完整代码。

代码清单 2

代码语言:javascript
复制
import jieba
txt = open("C:\\Users\\61483\\Desktop\\电脑快捷键.txt","r",encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}
for word in words:
if len(word) == 1:
continue
   else:
       counts[word] = counts.get(word,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(15):
   word,count = items[i]
print("{0:<10}{1:>5}".format(word,count))

运行效果:

3 结语

本文对利用python读取文件后进行词频统计方法做了讲解,通过读取文件,对jieba库也做了详细的介绍,在与文档类的工作时,jieba库是一个非常好用的第三方库,更多用法可以自行探索学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档