python使用nltk进行中文语料库的词频分布统计

article/2025/10/13 12:03:58

文章目录

  • 问题描述
  • 构建语料库
  • 统计字数
  • 统计词频分布

问题描述

根据给定的语料库,统计其中共包含多少字、平均每个词使用了多少次以及常用词的分布以及累计分布情况。
本文就以大秦帝国第一部小说为例进行实验


本文可以使用在毕业设计中,如果有帮助采用请点赞关注下呗,欢迎大家交流技术,也可以私聊毕设题目交流解决方法

构建语料库

因为我们要处理的语言是中文,部分方法 NLTK 是针对英文语料的,中文
语料不通用(典型的就是分词)。这个问题的解决方法很多,诸如通过插件等在NLTK 工具包内完成对中文的支持。另外也可以在 NLTK 中利用Standford NLP 工具包完成对自己语料的操作。
可以对汉字字体以及字号进行设置,然后通过PlaintextCorpusReader函数创建语料库

from nltk.corpus import PlaintextCorpusReader
worlists = PlaintextCorpusReader(corpus_root, '.*')

统计字数

在创建完语料库后,我们可以打开语料库中的每个文件,然后统计每个文件中的字符数以及字数,统计字数时需要使用words函数

str1 = f.read()                              # 读取文件的所有字符
len_str = len(str1)
print(text + '文本的字符数为:' + str(len_str)) # 输出文件的字符数 
len_word = len(worlists.words(text))
print(text + '文本的字数为:' + str(len_word))  # 输出文件的字数                        

之后可以统计每个文件的指定字符出现的次数,使用的是字符串的count函数

str1.count("周")

查看文本中的出现次数最多的字,这里使用的是FreqDist包Construct a new frequency distribution,然后使用pformat函数得到a string representation of this FreqDist,也就是返回按照字数出现频率的一个字符串,然后再使用max函数Return the sample with the greatest number of outcomes in this frequency distribution,也就是返回出现次数最多的字符

from nltk import FreqDist

最后得到的结果如下
在这里插入图片描述

统计词频分布

使用plot函数绘制词频出现的次数,通过下图可以分析出每个文件中词频的大致分布,大部分词频分布在那个曲线的出现弧度的部分,横坐标表示词的序列,纵坐标表示词频

在这里插入图片描述

下图显示文本中所有字符相加之后的分布,也就是累积分布,可以根据这个图像看出大致的高频词汇占总共字符的一个比例
在这里插入图片描述
下面两张图像显示前1000个高频词汇的分布情况,图像显示前1000个能大致包含绝大多数文本内容。首先要获取前1000个高频词汇,这里使用的是字符串的更替函数,因为前面介绍的pformat函数可以返回一个代表文本词频分布的一个字符串,这个字符串很像字典形式,所以可以根据字符串的操作,转化为字典形式的字符串,然后再将其转化为字典,然后再进行显示,可以得到前1000个高频词汇的分布

在这里插入图片描述
在这里插入图片描述

下面两张图像显示前100个高频词汇的分布情况,前100个高频词汇个数有一万六千多,q1文本的总字数为三万多,所以前100个高频词汇能大致包含50%文本内容

在这里插入图片描述

在这里插入图片描述


http://chatgpt.dhexx.cn/article/hT3jwoZ8.shtml

相关文章

中文分词多领域语料库

中文分词多领域语料库 数据处理 各位NLPer,大家好! 如果你还在从事中文分词领域的相关研究,你一定会发现,随着时间推移,中文分词的研究越来越少,BERT出现后,以字为粒度的方法盛行,有…

python训练自己中文语料库_自然语言处理——NLTK中文语料库语料库

Python NLTK库中包含着大量的语料库,但是大部分都是英文,不过有一个Sinica(中央研究院)提供的繁体中文语料库,值得我们注意。 在使用这个语料库之前,我们首先要检查一下是否已经安装了这个语料库。 >>>import nltk >>>nltk.download() 检查箭头所指…

python 提取sogou中文语料库

sogou中文语料库下载地址是:https://download.csdn.net/download/kinas2u/1277550 下载下来的文件包含了很多子文件夹,每个子文件夹下又包含了很多txt语料文件,我想把他们都整合到一个txt中(./SogouC_mini_20061102/Sample&#x…

python训练自己中文语料库_中文语料库构建过程详细教程

简介 今天我想简单记录一下自己构建语料库的过程, 方便自己查看和方便协作. 在工作中我们经常遇到一个问题就是每个研究者都有自己的语料库, 存储格式不同, 有用mysql这种结构化数据库的, 也有mogodb这种文档型数据库, 还有更多的是使用文本文件, 不管哪种形式, 都会导致数据交…

15个国内常用语料库

通用单语语料库 01. 国家语委现代汉语通用平衡语料库 http://www.aihanyu.org/cncorpus/index.aspx 该语料库是由国家语言文字工作委员会主持,面向语言文字信息处理、语言文字规范和标准的制定、语言文字的学术研究、语文教育以及语言文字的社会应用,…

latex中文简历,硕博士找工作实习用,顶级简约简历

*转载请注明出处,谢谢! *latex自制简历演示,前言本篇文章介绍一下如何利用,制作一份简单的个人简历。文章目的并不是给大家提供模板,而是希望大家通过本篇文章的介绍,对制作个人简历的过程有个简单的了解,有所启发。代…

分享一个Latex一页纸简历模板(中英文)

分享一个Latex一页纸简历模板(中英文) 近期鉴于需要想找一份中文版的latex简历模板。tex模板支持中文一直是新手的心头痛,笔者希望能找到一份无痛支持中文的模板,最终在GitHub上找到了billryan制作的模板,链接在全文的…

硕士博士简历latex模板

找工作找实习,技术类的,简洁版,简历模板 模板下载地址:https://download.csdn.net/download/qq_25379821/10799422 使用注意事项: 我使用的编辑器是 Texworks 注意把环境改成system,否则中文显示乱码

一个LaTeX论文模板

文章目录 $\LaTeX$源码模板效果图 LaTeX \LaTeX LATE​X源码 % -*- coding: UTF-8 -*- \documentclass[UTF8]{ctexart} \usepackage{multicol} %数学包,这里没用到 %\usepackage{amsmath} \usepackage{indentfirst} %添加作者信息 \usepackage{authblk} \usepackag…

安装R包的几种方法(汇总)

以下载ggplot包为例 1. 在R studio界面中直接输入函数: install.packages("ggplot") #直接输入R包的名字即可。 2. 找不到无法下载的包,可以上Github官网搜索,上面会提供下载方法: 3. 将包下载到本地后,进行…

R: R package安装的几种方式

R包安装方式 一、CRAN安装二、Bioconductor安装三、Github安装四、手动安装 一、CRAN安装 对于大多数R包或可以在R官网上查询到的包,都可以直接进行安装。 直接利用代码安装 install packages("R包的名称") 从R—packages界面搜索安装 在第3步中输入R包…

R安装与卸载、RStudio安装

R及RStudio安装、R卸载 R下载R安装Rstudio下载RStudio安装R卸载 RStudio只是辅助使用R进行编辑的工具,所以RStudio的正常使用需以R程序为基础,安装过R的可以跳过前两步 R下载 官网 点击download R。 点击选择清华大学的镜像地址 R安装 任意选择一个&…

RStudio的安装

安装RStudio教程 (如果下面的博客没有能解决你的问题或者你还有其他关于计算机方面的问题需要咨询可以加博主QQ:1732501467) 安装RStudio,总共分为三步: 一、安装R安装包 二、安装RStudio 三、测试RStudio是否安装…

R与RStudio的详细安装教程(有每一步的详细教程!!!!)

R与RStudio的详细安装教程 R是RStudio的前提,首先安装R,才能安装RStudio。 安装R教程总共分为三步: 一、下载R安装包 二、安装R 三、打开R 安装RStudio,总共分为两步: 一、安装RStudio 二、测试RStudio是否安装…

什么是mysql锁表

为何会锁表 首先我们了解一下数据库查询机制,首先我们用工具进行连接查询时,会创建一个connection,此时数据库会将查询语句解析成一棵“树”,各个引擎底层的结构不一样,mysql的话在innodb用的是b-tree,俗称…

MySQL-锁表和解锁

介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。 加锁是消耗资源的,锁的各种操作,包括获…

MySQL锁表了怎么办?

发生表锁的一些原因 1、锁表发生在insert update 、delete 中 2、锁表的原理是 数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户 3、锁表的原因 第一、 A程序执行了对 tab…

MySQL的表锁

目录 共享锁与排它锁(读锁和写锁) 1、锁定读 2、写操作 1、表锁 表级别的读锁和写锁 意向锁(IS、Ik) 自增锁(TUTO-INC锁) 元数据锁(MDL锁) 共享锁与排它锁(读锁和写…

连接器插针插孔接触不良该如何检测呢?

随着科学技术的发展,电子设备越来越复杂,性能要求越来越高,对其所应用的电子元器件的要求也越来越严。而连接器的性能、可靠性则直接影响到电子设备的性能及可靠性。这就使得电连接器的结构设计、制造工艺、装配等过程环节技术难度加大,不可靠因素增多,且变得更加复杂。因此,对…

IPX 、 IPEX 、 UFL连接器

I-PEX原先是个做连接器的公司,后被第一精工合并。 IPX 、IPEX 、 UFL、HSC应该都是同一种连接器,一般叫为IPEX或IPX,不过不同的厂商有自己系列和名称,如第一精工DAI-ICHI SHIKO叫为IPEX,广濑机电HIROSE的UFL和WFL&…