jieba 库
1、jieba(“结巴”)是Python中一个重要的第三方中文分词函数库,能够将一段中文文本分割成中文词语的序列。
jieba()库安装指令:pip3 install jieba
2、jieba库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组。除了分词jieba还提供增加自定义中文单词的功能。
3、jieba库支持三种分词模式:
精确模式,将句子最精确地切开,适合文本分析;
全模式,把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义;
搜索引擎模式,在精确模式基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
jieba库常用分词函数
1、jieba.lcut(s)是最常用的中文分词函数,用于精准模式,即将字符串分割成等量的中文词组,返回结果是列表类型。
import jieba
a="银河系的猎户座螺旋臂"
ls = jieba.lcut(a)
print(ls)
2、jieba.lcut(s, cut_all = True)用于全模式,即将字符串的所有分词可能均列出来,返回结果是列表类型,冗余性最大。
import jieba
a="银河系的猎户座螺旋臂"
ls = jieba.lcut(a,cut_all=True)
print(ls)
3、jieba.lcut_for_search(s)返回搜索引擎模式,该模式首先执行精确模式,然后再对其中长词进一步切分获得最终结果。
import jieba
a="银河系的猎户座螺旋臂"
ls = jieba.lcut_for_search(a)
print(ls)
4、jieba.add_word()函数,用来向jieba词库增加新的单词。
import jieba
a="银河系的猎户座螺旋臂"
jieba.add_word("猎户座螺旋臂")
ls = jieba.lcut(a)
print(ls)
wordcloud库
1、wordcloud库是专门用于根据文本生成词云的Python第三方库
安装指令:pip3 install wordcloud
2、wordcloud库可以将字符串生成指定的词云图片并保存到本地.
在生成词云时,wordcloud默认会以空格或标点为分隔符对目标文本进行分词处理
import wordcloud
txt = 'he never saw a saw '
wd = wordcloud.WordCloud().generate(txt)
wd.to_file('test.png')
方法 | 功能 |
generate(text) | 由text文本生成词云 |
to_file(filename) | 将词云图输出为图像文件,.png或.jpg |
对于中文文本,分词处理需要由用户来完成。一般步骤是先将文本分词处理,然后以空格拼接,再调用wordcloud库函数。
font_path参数请查找自己电脑路径所对应的字体,如果没有设置,中文会乱码。
对于长篇文章符号多可以用正则表达式处理,不想保留的字符可以用stopwords处理
import wordcloud
import jieba
txt = '黑化肥发灰,灰化肥发黑。黑化肥发灰会挥发,灰化肥挥发会发黑'
ls = jieba.lcut(txt)
txts = ' '.join(ls)
wd = wordcloud.WordCloud(font_path='C:\Windows\Fonts\simkai.ttf',width=800,height=800).generate(txts)
wd.to_file('word.png')
其他常用wordcloud()对象参数
参数 | 功能 |
font_path | 指定字体的完整路径,默认None |
width | 生成图片宽度,默认400像素 |
height | 生成图片高度,默认200像素 |
mask | 词云形状,默认方形 |
min_font_size | 词云中最小的字体字号,默认4号 |
max_font_size | 词云中最大的字体字号。默认None,根据高度自动调节 |
font_step | 字号步进间隔,默认1 |
max_words | 词云图中最大词数,默认200 |
stopwords | 被排除此列表,不在词云中显示 |
background_color | 图片背景颜色,默认黑色 |