目录

英文词频率统计

构建排除词库

对字典进行排序

中文词频率统计

jieba库

方法


英文词频率统计

统计英文词频的第一步是分解并提取英文文章的单词。同一个单词会存在大小写不同形式,但计数却不能区分大小写。

假设文本由变量txt表示

对txt文件的读取:

txt = open('你的文件名.txt','r').read()

可以通过txt.Iower()函数将字母变成小写,排除原文大小写差异对词频统计的干扰。
英文单词的分隔可以是空格、标点符号或者特殊符号。为统一分隔方式,可以将各种特殊字符和标点符号使用txt.replace()方法替换成空格,再提取单词

统计词频的第二步是对每个单词进行计数。

假设将单词保存在变量str中,使用一个字典类型d,统计单词出现的次数可采用如下代码:
d[s] = d[s] + 1

当遇到一个新词时,计数为1,但是单词没有出现在字典结构中,则需要在字典中新建键值对:
d[s] = 1
因此,无论词是否在字典中,加入字典coumns中的处理逻辑可以统一表示如下

str ='abcdeeee'
d = {}
for s in str:if s in d.keys():d[s] = d[s] + 1else:d[s] = 1
print(d)

也可以优化为

d[s] = d.get(s,0) + 1
构建排除词库

对于文本中大量出现的冠词,连接词,代词如The,and,but,he,she等并不能代表文章含义,需要进一步排除,可以构建一个排除数据结构

exlcude = ['a','an','the','he','him']

从而,进行处理

for s in exlcude:if s in d.keys():del d[s]
对字典进行排序

Python中有非常便捷的排序方法sort,但是它只能对列表进行排序

对字典使用sort需要先将字典转化为list类型

在强制转化为list后,其元素是由字典的键值对组成的一个元组列表

使用 lambda函数对排序规则进行修改 选中元组中的‘‘值’’

items = list(d.items())
items.sort(key=lambda x:x[1],reverse= True)

整体代码如下:

exlcude = ['a','an','the','he','him']
for s in str:d[s] = d.get(s,0) + 1
for s in exlcude:if s in d.keys():del d[s]
items = list(d.items())
items.sort(key=lambda x:x[1],reverse= True)
print(items)

中文词频率统计

jieba库

对于中文文本,其单词不像英文一样有空格分隔,而python的第三方jieba库很好的解决了这个问题

jieba库的安装这里不介绍

由于列表类型通用且灵活,jieba库推荐以下三种方法

jicbalIcut() 函数返回精确模式,输出的分词能够完整不多余地组成原始文本
jicba lcut(, cut_all = True) 函数返回全模式,输出原始文本中可能产生的所有问题,冗余性最大
jieba.lcut_for_search() 函数返回搜索引擎模式,该模式首先行执行精确模式,然后再对其中的长句子进一步切分获得结果。

对于无法识别的分词,也可以通过
jieba.add_word() 函数向分词库添加

方法

中文词与英文词的统计方法方法大同小异

这里只列出需要注意的地方

对于中文的近义词可能在统计的时候出现重复的情况,,如一些人名:孔明和诸葛

我们都知道他们是一个人但程序并不这样想

对于近义词 统一定义一个新变量,以这个变量为计数器,存放到字典中就可以了

如下

for word in s:if word == '诸葛亮' or '孔明曰':rword = '孔明'
d[rword] = d.get(rword,0) + 1

END

Python文本词频率统计---学习记录相关推荐

  1. python英文字符频率统计_Python中怎样统计英文文本中的字母频次?

    关于文本频次统计.先不要考虑如何用python实现的问题. 我捋一捋自己的思路. 频次统计有几种呢?有时我们关注个别字母和汉字的出现频率,也有时候我们更多会关注个别单词或词语的出现频率. 针对这两种常 ...

  2. python英文字符频率统计_python统计文本字符串里单词出现频率的方法

    本文实例讲述了python统计文本字符串里单词出现频率的方法.分享给大家供大家参考.具体实现方法如下: # word frequency in a text # tested with Python2 ...

  3. python 英文字符频率统计 采用降序方式输出_Python读取英文文件并记录每个单词出现次数后降序输出示例...

    本文实例讲述了Python读取英文文件并记录每个单词出现次数后降序输出.分享给大家供大家参考,具体如下: 对文中出现的句号,逗号和感叹号做了相应的处理 sorted排序函数用法: 按照value值降序 ...

  4. python 统计哈姆雷特词汇频率_Python练习15:文本单词频率统计:哈姆雷特,练习题,英文版...

    文本词频统计::一篇文章,出现了哪些词?哪些词出现的最多? ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬ ...

  5. python文本txt词频统计_python实例:三国演义TXT文本词频分析

    0x00 前言 找不到要写什么东西了!今天有个潭州大牛讲师  说了个  文本词频分析 我基本上就照抄了一遍 中间遇到一些小小的问题 自我百度 填坑补全了  如下 : 效果演示 0x01   准备环境及 ...

  6. python英文字符频率统计_Python统计字母出现的频率

    使用 Python 统计 26 个字母出现的频率:输入是一个很长的字符串,对其中的英文字母统计其出现的次数,其他字符忽略不处理,大写字母和小写字母当作一个字母来看. input_str = " ...

  7. python 多次匹配_Python学习记录14

    print("#") import re # s = "哈哈2" res = re.search("[0-9]",s) print(res) ...

  8. python中分组频率统计功能_python频数统计value_counts和groupby方法

    python频数统计和groupby方法 频数统计 先用字典类型的数据创建一个DataFrame,test_data import pandas as pd test_data = pd.DataFr ...

  9. python英文字符频率统计_python统计英文首字母出现的次数

    使用python解析有道词典导出的xml格式单词,统计各个首字母出现的次数,并按次数由多到少进行排序 相关实现 导出的xml格式如下 portion n. 部分:一份:命运vt. 分配:给-嫁妆 [' ...

最新文章

  1. 欢迎使用CSDN-markdown编辑器test
  2. 模板之家php mysql_PHP+APACHE+MYSQL安装方法
  3. python if __name__ == ' __main__'
  4. IE9 下 Flash 显示列表中没有对象后不再显示的Bug
  5. 峰值信噪比公式_关于 PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比的个人理解
  6. python笔记1——基础
  7. html行内设置样式,Js获取/设置行内样式和非行内样式
  8. 马云装神弄鬼拜见过被通缉的气功大师王林, 歪门邪道的人还办教育,用淘宝支付宝真的不放心
  9. 字符串中单词分别逆序
  10. 宴会泡泡机市场前景分析及研究报告
  11. 基于三维激光扫描技术的古建筑保护
  12. BUUCTF [FlareOn2]elfie
  13. AE内置效果Anglecontrol
  14. 快速启动以管理员身份运行命令行窗口命令
  15. 文津读书沙龙:吴军杨早数学之美-文明之光
  16. [I.MX6UL] U-Boot移植(六) 网络驱动修改 LAN8720A(对比原子和NXP官方测试板的网络芯片LAN8720A , KSZ8081 (也是飞凌)唯独复位引脚不同595芯片也涉及改动)
  17. Wireshark分析明文账号、密码登录
  18. 仿腾讯盒子游戏(新手练习)
  19. Wince下的手写输入法
  20. 中国社科发布十大调查研究咨询公司信息

热门文章

  1. 我国中小学生linux启蒙教育起步了吗?
  2. display:list-item
  3. 安卓机水滴屏iphoneX全面屏 适配 实践
  4. OPPO R6007线刷刷机包 救砖解锁 刷机教程
  5. jetson nano安装树莓派摄像头(v2)及调试的方法
  6. Proteus无法在您的库中找到系统文件PRODEFS.INT,LIBRARY文件夹路径错误。
  7. Python游戏-实现键盘控制功能
  8. html 弹框字体模糊,html - Chrome中的字体太模糊了 - 我该如何解决这个问题? - 堆栈内存溢出...
  9. Hyperlynx 仿真模型讲解
  10. 移动端的touch事件