基于Python 的词云生成技术分析
2021-08-23唐婷
唐婷*
(四川职业技术学院计算机科学系,四川 遂宁 629000)
Python 语言诞生于20 世纪90 年代初,它是一种计算机程序设计语言,Python 语言提供高效的高级数据结构,能进行面向对象编程,可以使用C 或C++扩展新的功能和数据类型。目前,Python已经成为最受欢迎的程序设计语言之一,广泛应用于web 开发、科学计算和统计、人工智能、软件开发、桌面界面开发等多个领域,Python 语言简洁易读,具有很强的可扩展性,深受编程人员喜爱,同时也成为大学程序设计课程之一。
Python 语言还有一项突出的优势,它具有功能强大的标准库和第三方库,支持Python 的第三方库已达数以万计,比如中文分词库jieba 和制作词云库WordCloud,它们提供了快速提取中文词语和制作具有艺术感的词云的功能。jieba 库是一款优秀的中文分词第三方库,它可以精准提取中文语句中出现的词语,通过统计每个词语出现的频率,可以获取有价值的信息,进行一些特定的数据分析。WordCloud 库是一款优秀的词云展示第三方库,词云主要以词语为基本单位,能更加直观和艺术的展示文本内容,文本中出现频率较高的词语会显著表现出来,能让人们快速有效的获取信息。下面通过详细介绍jieba 库和WordCloud 库的技术内容,让我们感受一下轻松制作词云的过程。
1 中文分词
分词是对文本处理的基础操作,中文的分词比英文分词要复杂得多,在Python 中可以使用第三方的jieba 库进行中文分词处理。jieba 库能够将一段中文文本分隔成中文词语序列。jieba 库分词原理是依靠中文词库,利用一个中文词库确定汉字之间的关联概率,汉字间概率大的组成词组形成分词结果。除了分词,用户也可以添加自定义词组。
jieba 库支持3 种分词模式:(1)精确模式:把文本精切的切分开,适合文本分析,不存在冗余单词。(2)全模式:把文本中所有可能的单词都扫描出来,速度快但是有冗余。(3)搜索引擎模式:在精确模式基础上对长词进行再次切分。精确模式和全模式都使用jieba.cut()函数,通过设置参数进行相应模式的选择,搜索引擎模式使用jieba.cut_for_search()函数。三种模式的常用格式如下:
(1)jieba.lcut(s)函数:精确模式返回一个列表类型的分词结果。
例如:import jieba
分词结果:['全国', '计算机', '等级', '考试', 'Python', '科目']
(2)jieba.lcut(s,cut_all=True)函数:全模式返回一个列表类型的分词结果,有冗余。
例如:import jieba
分词结果:['全国计算机', '等级', '考试', 'Python', '科目']
jieba 库中文分词实现从大量文本信息中提取关键词的功能,找到最能代表此文本的词并不是简单的事,关键词的提取一般用到两种算法:TF-IDF 算法和TextRank 算法。TF-IDF 算法是一种用于信息检索与数据挖掘的常用加权技术,它可以评估字词对于一个文件集的重要程度,字词的重要性随着出现次数的多少成正比增加。TextRank 算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元,构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的TextRank 值,最后抽取排名高的句子组合成文本摘要。
2 词云制作
词云是一种在互联网上对信息发布的新形式,词云图过滤掉大量的文本信息,对文本中出现频率较高的关键词突出显示,不同的关键词采用不同的颜色和字体大小,通过形成关键词渲染,使浏览者只要一眼扫过就可以领略文本的主旨。本文主要介绍在Python 环境下,使用第三方的WordCloud 库技术如何轻松制作形态各异的词云。
WordCloud 库是优秀的词云展示第三方库,词云以词语为基本单位,更加直观和艺术的展示文本。通常的操作步骤:首先把文本分词处理,然后用空格拼接,最后再调用WordCloud 库函数处理。WordCloud 库函数操作步骤:.
(2)加载词云文本,向WordCloud 对象w 中加载文本txt:w.generate(txt)
(3)输出词云文件,将词云输出为图像文件,.png 或.jpg:w.to_file(filename)
3 案例
3.1 对英文文本生成词云:《瓦尔登湖》是一部由美国作家梭罗所著的著名散文集,它记录了作者独居瓦尔登湖畔时的所见、所闻和所思。该散文集崇尚简朴生活,热爱大自然的风光,内容丰厚,语言生动,充满智慧。下面节选一段《瓦尔登湖》的文本制作成词云图片,使用imread()函数读取外部词云形状图像文件,使形成的词云图片更加美观(如图1 所示)。
图1《瓦尔登湖》词云
3.2 对中文文本生成词云:《面朝大海,春暖花开》是海子于1989 年所写的一首抒情诗。大海广阔浩荡,让人心旷神怡,这首诗朴素明朗,语言清新,表达出诗人的真诚善良,让人感受到一幅温暖而幸福的生活画面。制作中文文本的词云,首先用jieba 库对文本进行分词,然后用空格将词语连接在一起,再用WordCloud 库将词语文本制作成词云图片,使用imread()函数读取外部词云形状图像文件,使形成的词云图片更加美观(如图2 所示)。
图2《面朝大海,春暖花开》词云
4 结论
基于Python 的词云生成技术代码看上去简洁,其基本原理并不简单,需要一定的专业技术知识。首先需要设置好Python 的环境配置,安装第三方的jieba 库、WordCloud 库以及imageio 库,然后根据提供的函数实现分词以及生成词云图片,在编写代码中注意Python 的语法特征。基于Python 生成的词云图片效果很好,能体现词云的优点和价值,让读者过目不忘,在互联网传播过程中具体简洁、高效的作用。随着信息时代的不断发展,我们每天接收的信息量越来越多,词云可以帮助我们过滤掉大量不必要的信息,将关键词呈现在我们眼前,不仅美观、简洁也具有一定的艺术观赏性。