文本词频统计

词频统计

在很多情况下我们会遇到这样的问题·,给你一篇文章,让你统计其中多次出现的词语。这就是词频统计问题。当然不我们的文本可以是英文、可以是中文、也可以是其他国家的文字。首先我们来分析这个问题的IPO:
I(输入):从文件读取一段文本,或者从键盘输入文本,通常情况下是从文件中读取
P(处理过程):把每个词语及其出现次数当作一个键值对进行处理
O(输出):输出每个词及其出场频率。


英文文章的词频统计

首先我们来看文本为英文的情况:
统计一段英文文本中,单词出现次数,并输出出场次数前三的单词。
I(输入):从文件中读取一篇文章,考虑到有的单词出现在句首需为大写,事实上大写和小写应为一个单词,但是统计的时候会把大写和小写分开,因此把所有大写转化为小写。然后一段文本里面会出现各种各样的符号,这些符号会影响单词频率的排名,因此要把这些符号去掉,这里可以采用字符串的replace方法把其他符号替换为空格符。然后就是我们的单词每出现一次次数就要加1。清楚了这些以后我们整体的编程思路就有了:下面就是我们的代码展示环节

#读取文件
test=open("D:\pythonDemo\EnglishDemo.txt",'r')
#将文件内容全部变为小写存储在test中
test=(test.read()).lower()
#利用循环将其他字符替换为空格
for str in'.,%()-"—':test=test.replace(str," ")
#将单词以空格分隔开形成列表
words=test.split()
#创建一个空的字典counts
counts={}
for word in words:#将列表中的元素当作键,出现次数当作值,每出现一次值+1,第一次出现时值为0+1counts[word]=counts.get(word,0)+1
#将所有键值对提取出来并转化为列表类型
items=list(counts.items())
#列表类型的sort方法进行排序
items.sort(key=lambda x:x[1],reverse=True)
for i in range (3):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))
#注意,第20行的key系数可以写成:
'''
def f(x):return x[1]
#这里的x[1]表示使用列表的第二个元素来排序,我们的键值对中值(第二个元素)才是出场次数
'''

结果为:
在这里插入图片描述
由此我们得到了一个结论:
一篇文章中,冠词和介词出现的次数挺多的,就和我们写文章一定会出现而且出现次数较多的土也地和白勺的一样。[手动滑稽]

其中比较难懂的地方我做了注释大家可以康康,相信聪明的你们一定可以拿下的,积极开动你们的小脑袋瓜。
英语文本的话我当时用的是今年的高考英语一卷D篇阅读,文本文件我本来想导入的,但是导入完直接就自动生成新的一篇了,那我就把链接附上吧,大家可以当个例子练练手⸜(๑⃙⃘’ᵕ’๑⃙⃘)⸝⋆︎*。


中文文章的词频统计

说完了英语文章如何做词频统计下面我们来说一下中文文章的词频统计。
中文文章的词频统计和英文文章的统计代码大差不差,就是需要我们从中引入一个jieba库,如果需要可以使用结巴库的add_word()方法手动添加新词。
话不多说上代码让大家感受一下:

import jieba
def p(x):return x[1]
#打开文件并读取
test=open("D:\pythonDemo\YuwenDemo.txt",'r',encoding='UTF-8').read()
#用jieba库的lcut对文章进行精准分词,并得到一个列表类型
words=jieba.lcut(test)
#创建空字典
counts={}
for word in words:#若字符长度为1则不可能组成词语且可能会为标点符号,因此排除他们if len(word)==1:continue# 把分出的词当作键,出现次数为值,初次出现时为0+1,随后每出现一次次数+1else:counts[word]=counts.get(word,0)+1
#将counts中的所有键值对取出并制成列表类型
items=list(counts.items())
#将列表中元素排序
items.sort(key=p,reverse=True)
print("出现次数前十的词语为:")
for i in range(10):word,count=items[i]print("{0:<10}{1:>5}".format(word,count))

第一次敲代码的时候没有考虑单个字符的情况,因为我觉得中文分词库不会吧标点也算作一个字符,于是我就没有在第一个for循环中添加if else排除单个字符,得到的结果为:

在这里插入图片描述
我当时人都傻了我,涨姿势了,分词库原来还会把符号也作为一个词语分出来,那就老老实实排除单个字符吧,于是我就添加上了if-else结构去除单字符,得到的结果如下:
在这里插入图片描述
这结果不就很奈斯吗。
好了,聪明的你学废了吗
下面我把用到的两篇文章附在下面啦,大家自取吧ฅ(๑ ̀ㅅ ́๑)ฅ
我是例子,快点我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/52997.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【科学文献计量】中英文文献标题及摘要分词字数与频数统计与可视化

1 PubMed文献数据分析 1.1 数据读入与字段查看 新建一个ipynb文件,导入需要使用到的库(和上一个博客导入的是相同的库,这里不再进行列出),进行读取PubMed文献数据。 由于字段很多,可以利用Record对象中的getAltName()方法进行具体字段名称的获取,方便查找到预分析的字…

论文查重前应删掉哪些内容?

查重前一定要知道的事&#xff01; 写论文也是过五关斩六将的过程&#xff0c;到论文查重时&#xff0c;已经是我们的最后一关了&#xff0c;这一关也至关重要。在论文查重时&#xff0c;我们一定要知道&#xff0c;查重并不是查论文的全文的论文格式。有的内容需要删除&#…

超大文本文件单词频数统计

一、实验目的&#xff1a; 调用线程进行超大文本文件单词频数统计&#xff0c;测试并讨论不同线程数对代码耗时的影响 二、实验环境&#xff1a; &#xff08;1&#xff09;c/c&#xff0c;编辑器&#xff1a;Visual Studio与code&#xff1a;blocks&#xff1b;&#xff08…

关于微软输入法输入特殊符号的方法

偶尔看了一下julia编程语言的Documentation其中有一个整除符号“”和“⊻”这个异或符号&#xff0c;于是寻找这些特殊符号的键盘输出方法&#xff0c;找到了微软输入法输入特殊符号的一些方法&#xff0c;记录如下&#xff1a; 一、右键单击输入法栏&#xff1a; 二、选择设…

微软输入法和搜狗输入法中的双拼

双拼真是一个好东西。下面简单讲讲小鹤双拼在搜狗输入法和微软输入法里面的使用。 在搜狗输入法里面&#xff0c;启用小鹤双拼很方便&#xff0c;直接打开搜狗的属性设置&#xff0c;在 常用 选项卡里面的输入习惯中可选中双拼方案&#xff0c;点击双拼方案设定可指定特定的双…

解决wine tim/wechat不支持搜狗输入法

QQ:https://im.qq.com/linuxqq/download.html 参考https://blog.csdn.net/Victor_zero/article/details/80554060 查看桌面图标属性&#xff0c;找到命令&#xff0c;有一个run.sh的文件路径 加上下面三句 export XMODIFIERS"imfcitx" export GTK_IM_MODULE"…

微软内置输入法使用指南

这两个模式挺好用的 U模式输入(中文模式下输u) 之后你就可以用下图上的各种功能啦 笔画拆分笔画拆分混合符号 例如&#xff1a;ushuishuishui **V模式输入**(中文模式下输v) 之后你就可以用下图上的各种功能啦 ![v](https://img-blog.csdnimg.cn/20201101170502942.png#pic_…

输入法出现异常???输入英文字母分隔很大???你真的会使用输入法了吗???如何高效使用输入法???微软自带输入法切换

序言&#xff1a;相信很多小伙伴使用输入法时会遇到一些问题&#xff1a;输入字母的时候不知道按了什么键导致&#xff0c;输入字母的分隔很大&#xff0c;原本输入的是abc&#xff0c;现在是&#xff41;&#xff42;&#xff43;&#xff0c;还以为是系统故障。 原因&#x…

win10,win11微软输入法如何导入搜狗词库的方法-词库转换

很多人使用PC输入法越来越喜欢简洁好用的&#xff0c;搜狗、百度这种输入法的臃肿和广告弹窗越来越让我们感到烦闷&#xff0c;于是很多人开始选择使用Windows系统自带的微软拼音输入法。 微软拼音输入法其实在日常使用中已经足够用了&#xff0c;不过词库一直是被使用者诟病的…

Windows 输入法在注册表中的管理

Windows 输入法在注册表中的管理 查看语言栏的输入法法一法二 查看默认输入法找到默认输入法的 CLSID根据 CLSID 查找对应的输入法 WINDOWS下输入法中英文切换 切换输入法半角全角(打开关闭输入法) 输入法的注册、安装和卸载 Win10微软拼音输入法设置-注册表 Text Services Fra…

WIN11自带微软输入法设置问题 自带键盘版本仍为win10问题、显示繁体问题解决

&#x1f6a9; 看了win11的自带系统键盘 十分简约方便 感觉挺好用 虽然更新到了win11但是默认系统键盘还是win10 在系统设置里不断寻找终于找到了解决方法 解决方法 设置》时间和语言》语言和区域》点击中文&#xff08;简体&#xff0c;中国&#xff09;右边三个点》点击语…

windows 11 使用 之 关闭Windows自带输入法简繁切换(Ctrl+Shift+F)

windows 下使用 IDEA 时&#xff0c;全局查找快捷键与windows下的简繁切换冲突&#xff0c;照成在中文输入发下&#xff0c;CtrlShiftF 为简繁切换&#xff0c;而英文状态下为全局查找。所以需要关闭Windows自带输入法繁体简体切换&#xff08;CtrlShiftF&#xff09;的热键来达…

微软输入法设置小鹤双拼

微软默认自带的双拼只有三种&#xff0c;其中没有小鹤双拼&#xff0c;可以通过以下三步来加入小鹤双拼&#xff0c;不需要自己一个个的修改按键。 1.winR 输入 regedit&#xff0c;打开注册表 2 找到 HKEY_CURRENT_USER\Software\Microsoft\InputMethod\Settings\CHS 3 新建…

WindowsServer域用户下微软输入法不能键入简体 (中文)

Windows Server 2016关于域用户下微软中文输入法不能键入简体 (中文) 前言 系统中添加了微软中文输入法后&#xff0c;键入中文拼音&#xff0c;不显示候选汉字栏&#xff0c;按空格键直接变成拼音英文。 经过了一番尝试和查阅资料终于找到了解决方案&#xff0c;分享并保存…

微软拼音 输入法 个人 偏好设置

如何设置微软拼音?答:设置->时间和语言->语言->首选语言->点击"中文(中华人民共和国)"->选项->键盘->添加键盘 如何设置快速输入当前时间? 答:用户自定义短语: 添加->sj 格式%yyyy%-%MM%-%dd% %HH%:%mm%:%ss% 其他设置备忘: 1.关闭繁体…

微软输入法怎么打开软键盘?

在使用电脑的过程中&#xff0c;难免会遇到外接键盘设备失灵&#xff0c;打不了字的情况&#xff0c;这时候可以开启软键盘来应急。那么微软输入法如何调出软键盘呢&#xff1f;下面就来看看详细的步骤。 具体方法&#xff1a; 第一步&#xff0c;我们在左下角的“微软视窗”按…

美团大佬创业,要做中国的OpenAI!顶级VC认购2.3亿美元,75%股份用来招募人才...

来源丨新智元 编辑丨Aeneas 点击进入—>3D视觉工坊学习交流群 【导读】美团大佬王慧文今日又发英雄榜&#xff0c;表示新公司已得VC认购2.3亿美元&#xff0c;其中75%股份&#xff0c;用于招募AI顶级人才。 这两天&#xff0c;大家的社交网络都被「美团大佬自掏5000万美元入…

黑马程序员c++讲义课件笔记

黑马程序员c讲义课件笔记 基础https://blog.csdn.net/ClaireSy/article/details/108422945 &#xff08;或https://blog.csdn.net/m0_37882192/article/details/109103335) 核心https://blog.csdn.net/ClaireSy/article/details/108423047 提高https://blog.csdn.net/ClaireSy/…

腾讯新版 Windows QQ 首个公测版发布,采用全新 QQ NT 架构

3 月 24 日消息&#xff0c;按照此前的公告&#xff0c;腾讯新版 Windows QQ 首个公测版于今日正式发布&#xff0c;面向报名公测的用户开放下载。 全新 Windows QQ 基于 QQ NT 架构开发&#xff0c;首个公测版的版本号为 9.8.0.11111&#xff0c;默认采用扫码登录方式&#xf…

想创业不知道做什么好?尝试从这几个方面入手试试

很多人想创业&#xff0c;但不知道自己能干什么&#xff0c;应该怎么去创业&#xff1f;创业并不是心血来潮的事情&#xff0c;而是经过长时间的沉淀和经验的累积才找到属于自己的道路&#xff0c;每个人都想多挣钱&#xff0c;都想靠自己的努力去拼搏&#xff0c;这里小编就给…