NLP 之 jieba (结巴)制作词云
一 、jieba的导入
%pip install jieba
二、 jieba 结巴分词的几种模式及使用
-
精确模式
- 精确划分,视图将句子最精确地切分,适合文本分析
jieba.lcut(text,cul_all=False)
-
全局模式
-
全模式 把句子中所有的可以成词的词语都扫描出来,速度非常快,但是不能解决歧义
jieba.lcut(text,cul_all=True)
-
-
搜索引擎模式
-
搜索引擎模式,是在精确划分的基础上,再进行全模式划分,,提高召唤率,适合用于搜索引擎分词。
-
jieba.lcut_for_search(text)
-
-
展示三种模式
text2 = '落霞与孤鹜齐飞,秋水共长天一色' print('精确搜索','/'.join(jieba.lcut(text2,cut_all=False))) print('全模式','/'.join(jieba.lcut(text2,cut_all=True))) print('搜索引擎模式','/'.join(jieba.lcut_for_search(text2))) """ 精确搜索 落霞与孤鹜齐飞/,/秋水共长天一色 全模式 落霞/落霞与孤鹜齐飞/,/秋水/秋水共长天一色/长天/天一/一色 搜索引擎模式 落霞/落霞与孤鹜齐飞/,/秋水/长天/天一/一色/秋水共长天一色 """
如果有一些网络热词,能够被识别出来,不要被切分开,就要进行自定义一个词典,这个词典本身是txt文档,然后先试用jieba.load_userdict(‘文档地址’),再根据需求,使用jieba中任意一个模式进行切分。文章来源:https://www.toymoban.com/news/detail-405445.html
text3 = '我是来自妈妈省的蓝色妖姬唱着只因你太美而来'
jieba.load_userdict('dict.txt')
print('精确模式','/'.join(jieba.lcut(text3,cut_all=False)))
print('全模式','/'.join(jieba.lcut(text3,cut_all=True)))
print('搜索引擎模式','/'.join(jieba.lcut_for_search(text3)))
"""
精确模式 我/是/来自/妈妈/省/的/蓝色妖姬/唱/着/只/因/你/太美而来
全模式 我/是/来自/妈妈/省/的/蓝色/蓝色妖姬/妖姬/唱/着/只因/你/太美/而来
搜索引擎模式 我/是/来自/妈妈/省/的/蓝色/妖姬/蓝色妖姬/唱/着/只/因/你/太美/而来/太美而来
"""
三、词云的过程
第一步:数据导入
- 数据准备,制作词云的数据导入
- 停用词导入及自定义停用词词典:网上找的停用词及自定义停用词
第二步:数据清洗
- 去掉数据中的特殊符号或者说只保留中文,如去掉emoj符号,等一些特殊的对分析无用的符号。 方法是用正则方法。
- 判断词云数据是否是字符串类型,是的话对数据进行切分,把所有的数据保留成一个长的字符串,用空格连接
第三步:准备好产生词云图的文本数据
- 对清洗后的长字符串进行切分,对其值进行统计得到绘制词云的最终数据import_words.
第四步:制作词云图 这里需要导入worldcolud ,和从PTL导入Tmage
- 使用PTL里面的 Imag 读取nd array的图片,这一步是通过读取图片的数据,保存成nd array.
- 使用词云提取图片颜色生成器 ,worldcolund.Imagecolorgenerator( bgim)
- 设置词云的背景颜色,词云显示的词数及最大最小字体等一些参数,然后将import_words传进来,plt.show就可以完成词云的绘制。、
- 代码显示
import jieba
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
# 从列表中处理 拿到抖音数据里面的个性签名内容,使用结巴对语句进行切分
dou_yin_data = pd.read_csv('./douyin.csv')
# 哈工大、四川大学、百度等都有发布的停用词文件 可以在网上自行获取
# 读取停用词
stop_words_list = pd.read_csv('./stopwords.txt',encoding='gbk',header=None)
for statement in dou_yin_data.signature:
print(statement)
# 只保留中文数据
good_words = dou_yin_data.signature.str.replace(r'[^\u4e00-\u9f5a]','')
# 产生字符串
content = ''
for statement in good_words :
if type(statement) != str:
continue
words = jieba.lcut(statement,cut_all=False)
for word in words:
if word not in stop_words:
if word not in stop_words_list:
content += word + ' '
## 字符串切分,产生最终绘制词云的数据
import_words = Series(content.split(' ')).value_counts()[10:310]
# 绘制词云
from PIL import Image
import wordcloud
# 制作抖音大V签名的词云图
# 舆论分析 评论分析 反馈分析 建议分析
# 读取nd array 的图片
bgimg = np.array(Image.open('./bgimg.png'))
# 词云提取图片颜色生成器
genclr = wordcloud.ImageColorGenerator(bgimg)
wc = wordcloud.WordCloud(font_path='./FZZJ-LongYTJW.TTF',# 设置字体
background_color='#D4F6CC', # 背景颜色
max_words=200,
max_font_size=300,
min_font_size=5,
random_state=42,
mask=bgimg,
color_func=genclr)
# 渲染词云的文体
wc.generate_from_frequencies(import_words)
plt.figure(figsize=(18,18))
plt.imshow(wc)
plt.axis('off')
文章来源地址https://www.toymoban.com/news/detail-405445.html
到了这里,关于NLP 之 jieba (结巴)制作词云的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!