推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python的《水浒传》中人物分析

更新时间:2019-12-20 22:46:42 大小:395K 上传用户:songhuahua查看TA发布的资源 标签:pythonjieba库文本挖掘 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

随着大数据技术的应用领域不断扩大,信息量也在日益膨胀,而有价值的信息是有限的,利用文本挖掘技术可以高效地获取长文本文献中的有价值信息,实现热点追踪。作为当前最流行的编程语言,Python能够快速而准确地进行词频统计、获取高频词,从而获得文献的主题思想。


部分文件列表

文件名 大小
基于Python的《水浒传》中人物分析.pdf 395K

【关注B站账户领20积分】

部分页面预览

(完整内容请下载后查看)
安全模型、算法与编程  
基于 Python 的《水浒传》中人物分析  
◆杨旭东  
(重庆安全技术职业学院网络与信息安全系 重庆 404020)  
摘要:随着大数据技术的应用领域不断扩大,信息量也在日益膨胀,而有价值的信息是有限的,利用文本挖掘技术可以高效地获取长  
文本文献中的有价值信息,实现热点追踪。作为当前最流行的编程语言,Python够快速而准确地进行词频统计、获取高频词,从而  
获得文献的主题思想。  
关键词:Python言;jieba;文本挖掘  
可维护性。  
0
引言  
伴随着计算机技术的发展朗语料库作为世界上第一个机  
(7)支持中文Python3.0释器采UTF-8码表达所有  
字符信息。UTF-8码可以表达英文、中文、韩文、法文等各类  
语言,因此,Python序在处理中文时更加灵活且高效。  
(8)模式多样Python3.0释器内部采用面向对象方  
式实现Python法层面却同时支持面向过程和面向对象两种  
编程方式,从而为使用者提供了灵活的编程模式。  
(9)类库丰富:Python 解释器提供了几百个内置类和函数  
界各地程序员通过开源社区贡献了十几万个第三方  
函数库乎覆盖计算机技术的各个领域Python序可以  
大量利用已有的内置或第三方代码,具有良好的编程生态。  
1.2国内专用语料库软件的对比  
读语料库于 1960 年诞生,语料库语言学在近些年得到迅速的发  
展和普及逐步趋于成熟料库语言学的研究对象是真实语  
言使用中的语言事实助计算机技术和统计学方法语言数  
据进行定性定量的描写和概括而全方位角度地揭示语言  
中的规律数据技术已经融入当今世界的各行各业工智能  
技术也得到了空前发展。自然语言处理( Natural Language  
Processing,NLP) 属于人工智能的一部分,其技术的发展将使人  
与计算机之间的交流更加有效和便捷将促进以全新的理念和  
技术进行研究。  
由于技术原因,使得我国对中文文本处理的研究起步较晚。  
英文单词是以空格作为分词标志中文的分词标志义分析  
存在较大差异文语料库语言学的技术不能被有效的借鉴这  
也是国内在该领域落后的一个原因。但是随着互联网技术的普  
及,在知识全球化的今天,中文文本分词技术已经日趋成熟,取  
得了很大的进步从最初的借助词典查阅方式如今利用语  
言模型对文本进行分词。  
Ant Conc、Tree Tagger作为国内语料库研究使用较为广泛的  
软件于这两个软件在设计时考虑不周至于存在一些功能  
上的缺陷,不能对中文文本的研究提供精确有效的支持。Python  
作为一种被广泛使用的高级通用脚本编程语言有丰富的第三  
方库,这为语料库语言学的研究提供了一种全新的选择。  
(1)功能性和灵活性强  
大部分语料库软件具有自己专门的应用范围和领域:BFSU  
Colligator应用于类联接分析领域CLAW S用于词性赋码领域;  
BFSU Collocator应用于搭配分析领域。以上软件在自己各自领域  
功能强大完成文本的收集注以及分析等特定功能,  
但是编程和使用过程繁琐大影响研究效率Python言借  
助于第三方库需几行代码就能实现文本的分词和统计免  
了因使用不同软件而造成的编程语言切换和数据不兼容的问题。  
(2)全面系统  
1
Python 语言的文本处理背景  
1.1Python言概述  
Python言的设计者是吉多· 范罗苏姆(GuidoVanRossum),  
第一个版本的发行时间是 1990 年,它是一种计算机高级程序设  
计语言、面向对象解释型。在上百种流行的编程语言中,Python  
语言具有以下多方面的优势:  
(1)语法简洁:实现相同功能,Python 语言的代码行数仅  
相当于其它语言1/10~1/15。  
(2)与平台无关:作为脚本语言,Python 程序可以在任何  
安装解释器的计算机环境中执行该语言编写的程序可以不经  
过修改实现跨平台运行。  
过去的语料库软件在设计时只考虑分词词的原则少  
延伸至整句、整篇的层次,存在断章取义的情况。Python言不  
仅可用于中文文本的分词、词语过滤、自增语料库,还可进行词  
频统计法分析章分析本分析结果可通Python言  
的第三Matplotlib 进行数据可视化处理,将分析结果以图表  
的形式呈现观明了则表达式检索Python言中也得到  
了很好的利用。  
(3)粘性扩展:Python 具有优异的扩展性,体现在它可以  
集成 CC++、Java 等语言编写的代码,通过接口和函数库等方  
式将它们“粘起来整合在一起此外,Python言本身提供  
了良好的语法和执行扩展接口,能够整合各类程序代码。  
(4)开源理念:对于高级程序员,Python 语言开源的解释  
器和函数库具有强大的吸引力重要的,Python言倡导的开  
源软件理念为该语言的发展奠定了坚实的群众基础。  
(5)通用灵活:Python 语言是一个通用的编程语言,可用  
于编写各领域的应用程序,这为该语言提供了广阔的应用空间。  
从科学计算、数据处理到人工智能、机器人,Python言都能够  
发挥重要作用。  
(3)支持多种语言  
国外的语料库语言学研究也在突飞猛进展迅速关语  
料库软件随之而面世而其它国家的语料库软件都是基于本土  
语言设计开发的能对中文文本进行处理Python言下的  
第三方库支持中文文本的处理效的解决了中文文本的研究问  
题。  
2
Python 语言在中文文本中的应用  
(6)强制可读:Python 语言通过强制缩进来体现语句间的  
逻辑关系著提高了程序的可读性而增加Python序的  
2.1据源和方法  
以网上下载的小说水浒传为数据源进行文本分析统  
42‖  
安全模型、算法与编程  
计出场最多的前十位人物。首先要将文本保存为 txt 格式,编码  
选择为“UTF-8要获取文本中的高频词,需对文本进行分词、  
词频统计后创建一个排除词汇库输出结果中排除这个词  
汇库中的内容统计结果进行优化终得到的结果能直观体  
现 各 人 物 的 地 位 。 编 译 器 选 择 Python3.7 版 本 , 在  
https://www.python.org/downloads/站上可以直接下载,并按提示  
完成安装,安装完成后需设置环境变量。  
words=jieba.lcut(txt)  
counts={}  
forwordinwords:  
iflen(word)==1:  
continue  
else:  
counts[word]=counts.get(word,0)+1  
forwordinexcludes:  
del(counts[word])  
items=list(counts.items())  
2.2jieba词和词频统计  
对于一段英文文本果希望提取其中的单词需要使用  
字符串处理split()法即可。然而,对于一段中文文本,例如,  
“中国是一个伟大的国家获得其中的单词(不是字符)十分  
困难为英文文本可以通过空格或标点符号分隔中文单词  
之间缺少分隔符,这是中文及类似语言独有的“分词”问题。  
jieba 是 Python 中一个重要的第三方中文分词函数库,由于  
其不Python装包自带的使用时需要通pip令安装pip  
installjieba,在程序中import命令来导入。jieba的分词原理  
是利用一个中文词库待分词的内容与分词词库进行比对通  
过图结构和动态规划方法找到最大概率的词组。除了分词,jieba  
还提供增加自定义中文单词的功能。  
items.sort(key=lambdax:x[1],reverse=True)  
foriinrange(10):  
word,count=items[i]  
print("{0:<10}{1:>5}".format(word,count))  
上述代码是输出出场最多的前 10 位人物,如需对更多的人  
物进行分析需修改代foriinrange(10)的数10可。  
统计结果如2示。  
表2 物词频统计表  
序号  
1
姓名  
宋江  
词频  
2372  
1082  
992  
625  
545  
513  
326  
315  
304  
293  
jieba3分词模式确模式句子最精确地切开,  
适合文本分析模式句子中所有可以成词的词语都扫描出  
来,速度非常快,但是不能消除歧义;搜索引擎模式,在精确模  
式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎  
分词。  
2
李逵  
3
武松  
4
吴用  
5
林冲  
表1 jieba常用的分词函数  
6
卢俊义  
柴进  
函数  
功能描述  
7
jieba.cut(s)  
精确模式,返回一个可迭代的数据类型  
8
呼延灼  
鲁智深  
戴宗  
jieba.cut(s,cut_all=True) 全模式,输出文s所有可能的单词  
9
搜索引擎模式合搜索引擎建立索引的  
10  
jieba.cut_for_search(s)  
分词结果  
2以看出,小说《水浒传》中宋江的出场次数最多,  
其次是李逵和武松,这和我们在电视剧中看到的剧情是相吻合  
的,利Pythonjieba可以帮助文学家对小说文本进行全方  
位地分析和研究。  
jieba.lcut(s)  
精确模式,返回一个列表类型  
全模式,返回一个列表类型  
搜索引擎模式,返回一个列表类型  
向分词词典中增加新w  
jieba.lcut(s,cut_all=True)  
jieba.lcut_for_search(s)  
jieba.add_word(w)  
3
结语  
Python言强大的库功能,利用其第三jieba对中  
2.3《水浒传》中人物出场统计  
《水浒传》是中国古典四大名著之一,作者是施耐庵。该书  
是第一部以描写古代农民起义为题材的长篇小说在塑造人物  
形象方面积累了丰富的艺术经验品能紧紧扣住人物的不同出  
身经历过人物自己的语言和行动去表现其性格品同时也  
能够很准确地把握住人物性格与身份会地位活阅历之间  
的相互作用。  
文文本进行分词、词频统计,准确快捷。经过词频统计,可以获  
得文本的主旨思想。Python源代码编写简单,易于维护,从而  
有利于在使用过程中对代码进行修改和优化,剔除冗余的数据。  
jieba为计算机技术在自然语言处理分析中提供了无限可能。  
《水浒传一本鸿篇巨著面出现108各具特色的  
主要人物次读这本经典作品都会想一个问题书这些人物  
谁出场最多呢?一起来Python决这个问题。  
人物出场统计涉及对词汇的统计文文章需要分词才能进  
行词频统计,分词统计需要用到第三方jieba。先将《水浒传》  
文本保存为“水浒传.txt编码选择为“UTF-8Python言实  
现代码如下:  
参考文献:  
[1]弘博传庆.M arkSummerfield.Python3序开发指  
[M ]. 2.民邮电出版社,2015.  
[2]建文.算机字符编码—Unicode 与 W indows[M ].科  
学出版社,2016.  
[3],,文浩.于 Python 的实时数据库设计[J].仪  
器仪表用户,2017.  
importjieba  
[4]丽杰.语语义依存分析研究[D],尔滨:尔滨工业  
大学,2010.  
excludes={"两个","一个","只见","如何","那里","哥哥","军马  
","头领","说道","众人","这里","兄弟","出来","小人"}  
txt=open("水浒传.txt","r",encoding='utf-8').read()  
[5].Python然语言处理工具包在语料库研究中  
的应用[J].明冶金高等专科学校学报,2015.  
43‖  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载