基于python的词云生成技术分析

基于python的词云生成技术分析

中文分词

在Python中可以使用第三方的jieba库进行中文分词处理。jieba库能够将一段中文文本分隔成中文词语序列。jieba库分词原理是依靠中文词库,利用一个中文词库确定汉字之间的关联概率,汉字间概率大的组成词组形成分词结果。
jieba库支持3种分词模式

1. 精确模式

把文本精切的切分开,适合文本分析,不存在冗余单词。
jieba.lcut(s)函数:精确模式返回一个列表类型的分词结果。

# 导入所需要的包
import jieba
ls = jieba.lcut("读好书的时间越多你的阅读效率越高这是赢在了起跑线上可能还需要点运气")
print("分词结果:" + str(ls))

展示结果:

Building prefix dict from the default dictionary ...
# 可以看出它从远程仓库下载到本地的缓存中
Loading model from cache /var/folders/1s/z59qntvd6m17qg5w18_b9bd80000gn/T/jieba.cache 
分词结果:['读', '好书', '的', '时间', '越多', '你', '的', '阅读', '效率', '越高', '这', '是', '赢', '在', '了', '起跑线', '上', '可能', '还', '需要', '点', '运气']
Loading model cost 1.021 seconds.
Prefix dict has been built successfully.

2.全模式

把文本中所有可能的单词都扫描出来,速度快但是有冗余
jieba.lcut(s,cut_all=True)函数:全模式返回一个列表类型的分词结果,有冗余。

# 导入所需要的包
import jieba
ls = jieba.lcut("读好书的时间越多你的阅读效率越高这是赢在了起跑线上可能还需要点运气",cut_all=True)
print("分词结果:" + str(ls))

结果:

Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/1s/z59qntvd6m17qg5w18_b9bd80000gn/T/jieba.cache
Loading model cost 1.018 seconds.
Prefix dict has been built successfully.
分词结果:['读', '好书', '的', '时间', '越多', '你', '的', '阅读', '效率', '越', '高', '这', '是', '赢', '在', '了', '起跑', '起跑线', '上', '可能', '还', '需要', '要点', '运气']

3.搜索引擎模式

在精确模式基础上对长词进行再次切分。精确模式和全模式都使用jieba.cut()函数,通过设置参数进行相应模式的选择,搜索引擎模式使用jieba.cut_for_search()函数。

import jieba
ls = jieba.lcut_for_search("读好书的时间越多你的阅读效率越高这是赢在了起跑线上可能还需要点运气")
print("分词结果:" + str(ls))

结果:

Building prefix dict from the default dictionary ...
Loading model from cache /var/folders/1s/z59qntvd6m17qg5w18_b9bd80000gn/T/jieba.cache
分词结果:['读', '好书', '的', '时间', '越多', '你', '的', '阅读', '效率', '越高', '这', '是', '赢', '在', '了', '起跑', '起跑线', '上', '可能', '还', '需要', '点', '运气']
Loading model cost 1.076 seconds.
Prefix dict has been built successfully.

jieba库中文分词实现从大量文本信息中提取关键词的功能,找到最能代表此文本的词并不是简单的事,关键词的提取一般用到两种算法:TF-IDF算法Text Rank算法。TF-IDF算法是一种用于信息检索与数据挖掘的常用加权技术,它可以评估字词对于一个文件集的重要程度,字词的重要性随着出现次数的多少成正比增加。Text Rank算法是一种用于文本的基于图的排序算法,通过把文本分割成若干组成单元,构建节点连接图,用句子之间的相似度作为边的权重,通过循环迭代计算句子的Text Rank值,最后抽取排名高的句子组合成文本摘要。

词云制作

Word Cloud库是优秀的词云展示第三方库,词云以词语为基本单位,更加直观和艺术的展示文本。通常的操作步骤:首先把文本分词处理,然后用空格拼接,最后再调用Word Cloud库函数处理。

# 导入所需要的包
import jieba
import wordcloud
import imageio

file_name = "file.txt"
with open(file_name, "r") as fp:
    txt = fp.read().strip()
words = jieba.lcut(txt)
print(words)
new_txt=' '.join(words)
print(new_txt)
mk = imageio.imread("picture.jpg")  # 使用picture作为蒙版
# 这点十分重要,如果只出现框框,没有出现中文,说明你的字体不支持中文,一定要选用一个支持中文的字体
w = wordcloud.WordCloud(repeat=False,background_color="white",font_path="Songti.ttc",mask=mk)
w.generate(new_txt)
w.to_file("result.png")

结果如图
基于python的词云生成技术分析_第1张图片

总结

基于Python的词云生成技术代码看上去简洁,其基本原理并不简单,需要一定的专业技术知识。首先需要设置好Python的环境配置,安装第三方的jieba库、Word Cloud库以及imageio库,然后根据提供的函数实现分词以及生成词云图片,在编写代码中注意Python的语法特征。基于Python生成的词云图片效果很好,能体现词云的优点和价值,让读者过目不忘,在互联网传播过程中具体简洁、高效的作用。随着信息时代的不断发展,我们每天接收的信息量越来越多,词云可以帮助我们过滤掉大量不必要的信息,将关键词呈现在我们眼前,不仅美观、简洁也具有一定的艺术观赏性。(字体这里的问题一样要尤为注意,不要再次踩坑

你可能感兴趣的:(python,论文研究,python)