5.4 文本处理

这里主要介绍常见分词和词云的制作方法。

无论是英文文本还是中文文本,都可以把它们看成是由很多词语组成的句子。通常处理文本的第一步就是需要进行分词,也就是从句子中拆分出各个词语。

对于英文文本,不同的词语一般空格分隔,因此分词比较简单:

strs = 'to be or not to be'
print(strs.split())

输出为:['to', 'be', 'or', 'not', 'to', 'be']

而对于中文文本,不同的词语之间没有天然的分隔符:

因此需要一些第三方的模块来处理,比如jieba模块。

首先需要导入jieba模块,可以在PyCharm中选择File-Settings,在项目解释器(Project Interpreter)中点击最右边的加号按钮:

然后在搜索框中输入jieba,即可点击左下角的安装包(Install Package)完成安装。

代码为:

import jieba
strs = '南京市长江大桥欢迎你'
print(jieba.lcut(strs))

输出为:['南京市', '长江大桥', '欢迎', '你']

这是jieba模块提供的lcut精确模式。它同时还有其他模式,如全模式:

import jieba
strs = '南京市长江大桥欢迎你'
print(jieba.lcut(strs, cut_all=True))

输出为:['南京', '南京市', '京市', '市长', '长江', '长江大桥', '大桥', '欢迎', '你']

还有折中模式:

import jieba
strs = '南京市长江大桥欢迎你'
print(jieba.lcut_for_search(strs))

输出为:['南京', '京市', '南京市', '长江', '大桥', '长江大桥', '欢迎', '你']

大家可以通过这些不同的输出观察各自的效果。这里没有哪种好哪种不好的说法,关键要根据分词后的处理要求来选择。


有了分词后,就可以完成词云制作。词云都很多制作方法,这里介绍wordcloud模块(安装过程同jieba):

import jieba
import wordcloud
strs = '南京市长江大桥欢迎你'
words = jieba.lcut(strs)
words = ' '.join(words)
wc = wordcloud.WordCloud(font_path="msyh.ttc")
wc.generate(words)
wc.to_file("img.png")

首先解释下代码:

1)第五行将第四行分词后的各个词语列表元素使用join方法拼接成了一个新的字符串,不妨来专门来看下这个方法的使用:

import jieba
strs = '南京市长江大桥欢迎你'
words = jieba.lcut(strs)
words = ' '.join(words)
print(words)

输出为:南京市 长江大桥 欢迎 你。

可以看出,join的意思就是将当前字符串空格作为连接符,去连接参数列表中的所有字符串元素,形成一个完整字符串。最后的效果类似于英文文本,也使用空格分隔了不同的词语。只有这样的文本,才能作为wordcloud模块制作词云的原始文本。因此,wordcloud其实原本就是为了适合英文词云处理的,为此中文文本才需要这样的空格连接处理。

2)第六行是设置词云,其中必须要指定中文字体(通过中文字体文件名称),否则会出现乱码。常见的中文字体文件为:

微软雅黑  msyh.ttc
宋体         simsun.ttc
楷体         simkai.ttf
黑体         simhei.ttf

3)最后两行是生成词云。请注意,生成的词云是一张图片,位于当前项目的文件夹中,因此你可以在PyCharm项目中看到这张图片:

双击即可查看:

默认的词云都是方形,因此可以设置不同的图片外观,形成多变的词云效果,比如有这个图片:

相应的代码修改为:

import jieba
import wordcloud
import matplotlib.pyplot as plt
strs = '南京市长江大桥欢迎你'
words = jieba.lcut(strs)
words = ' '.join(words)
img = plt.imread('heart.jpg')  # 加载图片
wc = wordcloud.WordCloud(background_color='white', font_path="msyh.ttc", mask=img)  # 设置生成图片的形状
wc.generate(words)
wc.to_file("img.png")

其中增加了新的加载图片的模块matplotlib,同时利用该模块的imread方法读取图片,并将读取的图片作为mask参数值设置了词云。效果为:

这里的词云效果似乎还很一般,一般词语越多,整体词云越接近所需要的形状。

同时,这些效果都是动态生成,每次运行结果可能都不一样。

配套学习资源、慕课视频:

Python大数据分析-李树青icon-default.png?t=M1L8https://www.njcie.com/python/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Delphi语音5.4是一个集成了语音识别和语音合成功能的软件库。它由Embarcadero Technologies公司开发,用于Delphi编程语言环境。 Delphi语音5.4具有强大的语音识别功能,可以将人类语音转化为计算机可以理解的文本。它支持不同的语言和方言,并能识别不同的语音风格和口音。这使得开发人员可以利用语音识别技术在各种应用程序中实现语音控制和指令。 除了语音识别功能,Delphi语音5.4还提供了语音合成功能,可以将计算机生成的文本转化为自然流畅的人类语音。它支持多种语音合成引擎和不同的语音音色选择,可以根据应用程序的需求来选择合适的声音风格。 Delphi语音5.4的使用非常简便,开发人员可以直接在Delphi集成开发环境中使用相应的组件和API进行开发。它提供了丰富的示例代码和文档,帮助开发人员快速上手并进行定制化的开发。开发人员可以编写代码来处理语音输入和输出,实现命令识别、文本转语音等功能。 Delphi语音5.4可以应用于各种领域,如语音助手、自动电话应答系统、语音控制设备等。它提供了强大而灵活的功能,使得开发人员可以轻松地为应用程序实现语音交互功能,提升用户体验和应用程序的实用性。 总之,Delphi语音5.4是一个功能强大的语音识别和语音合成软件库,为开发人员提供了便捷的开发工具和丰富的功能,可帮助他们在Delphi环境中实现语音交互功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

leeshuqing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值