Python读取文件后进行词频统计 |
您所在的位置:网站首页 › python词频分析出的结果好看 › Python读取文件后进行词频统计 |
1引言 本文解决由粉丝提出的问题。 2 问题 我们在使用python函数获取文件后,有时需要对该文件进行词频统计。 本文将通过对英文文件的读取和中文文件的读取进行讲解。 3 方法 一.统计英文文档中的词频 统计英文词频的第一步是分解并提取英文文章的单词,同一个单词会存在大小写不同形式,但计数却不能区分大小写,可通过lower()将字母变为小写。 文中具有多种标点符合,可通过replace()将特殊字符和标点符号变为空格,再提取单词。 定义字典统计单词及其出现次数。 将字典转换为列表,并进行排序。 出现次数从高到低进行排序并且打印输出。 完整代码: 代码清单 1 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: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 使用jieba分词之后,词频统计方法与英文词频统计方法类似,下面展示完整代码。代码清单 2 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:5}".format(word,count)) 运行效果: 3 结语 本文对利用python读取文件后进行词频统计方法做了讲解,通过读取文件,对jieba库也做了详细的介绍,在与文档类的工作时,jieba库是一个非常好用的第三方库,更多用法可以自行探索学习。 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |