汉字字频统计实验
实验内容
针对不同语料统计汉字的字频,并进行比较。
实验要求和目的
给出前 100 个汉字高频字的频率统计结果;
分别给出前 1、20、100、600、2000、3000、6000 汉字的字频总和;
计算汉字的熵值;
针对不同规模语料重复上述实验;
以图表的形式表示上述结果;
提交实验报告,给出详细实验过程和结果;提交源代码和可执行程序。
实验环境
操作系统 macOS Sierra
内存 16G
开发语言 Python
程序主要算法
统计字频,利用 Python 内置的逐行读取和行内逐字读取功能进行字频统计,建立一个 dict 类型的变量用于记录每个字对应的个数,如果读取的字在 dict 中出现过,则 value 值加一,如果读取到的字在 dict 中未出现过,则在 key 值中添加新读取的字。核心代码如下:
c++
with open(filepath, 'r') as txt_file:
for line in txt_file:
ustr = line.decode(encoding)
for uchar in ustr:
if is_chinese(uchar):
account += 1
if _dict.has_key(uchar):
_dict[uchar] = _dict[uchar] + 1
else:
_dict[uchar] = 1
实验过程
首先进行语料的收集,我收集到有“人民日报 800 万字语料库”、“搜狗新闻库”,并在网上找了一些金庸的小说 TXT 版本。
然后进行代码的编写,先确定了核心算法,就是第四步中提及的代码,然后编写了如下函数完成实验指导中的要求:
给出前 100 个汉字高频字的频率统计结果,对应函数为:def cal_chinese_word_top100(_dict,_account):
分别给出前 1、20、100、600、2000、3000、6000 汉字的字频总和。对应代码为:def cal_chinese_word_7(_dict,_account):
计算汉字的熵值。对应代码为:def cal_entropy(_list):
实验结果
针对人民日报(800 万级语料)和金庸的小说《倚天屠龙记》(30 万级语料),进行字频分析,对比如下:
人民日报语料:
前 1、20、100、600、2000、3000、6000 汉字的字频总和: 0.035573727683 0.169908955911 0.403422616933 0.834240279379 0.988090484587 0.998732545555 0.998732545555
《倚天屠龙记》
前 1、20、100、600、2000、3000、6000 汉字的字频总和: 0.018951611838 0.213809263413 0.472524917909 0.837447793249 0.983958229316 0.997836441303 0.997836441303
实验结论和体会
实验结论:
通过对字频的统计。我发现了汉语的以下几个特征:
常用字大概为 2000 个左右,剩下的字可被看作是不常用字
汉字是一种熵值很大的文字,换句话说,汉字是一种文字意义丰富的文字。
参考文献
- 面向程序设计领域的新词检测算法研究与应用(东华大学·刘梦)
- 视频处理平台的设计与实现(北京交通大学·时月月)
- 基于J2EE架构的汉语学习游戏系统的设计与实现(电子科技大学·张银满)
- 基于深度学习的汉字书法风格识别方法研究(哈尔滨理工大学·陈国栋)
- 基于J2EE架构的汉语学习游戏系统的设计与实现(电子科技大学·张银满)
- 深度学习在社交网络文本分类中的应用研究(大连交通大学·方金朋)
- 中文文本自动校对系统设计与实现(西南交通大学·张涛)
- 成语电子词典系统的设计与实现(电子科技大学·刘健)
- 基于文本识别的手写汉字识别平台的设计与实现(中国科学院大学(中国科学院沈阳计算技术研究所)·董春生)
- 网络流量统计分析系统(吉林大学·石景龙)
- 网络信息采集技术及中文未登录词算法研究(北京邮电大学·陈浩)
- 基于深度学习的验证码识别技术(大连交通大学·慕亚东)
- 基于J2EE的分布式信息检索查询平台的研究(北京化工大学·高峰)
- 用户兴趣自适应的个性化推荐系统的设计与实现(北京交通大学·李妮燕)
- 音视频数据获取与同源性分析关键技术研究(电子科技大学·范清宇)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:代码导航 ,原文地址:https://bishedaima.com/yuanma/36094.html