NLP 之 jieba (結(jié)巴)制作詞云
一 、jieba的導(dǎo)入
%pip install jieba
二、 jieba 結(jié)巴分詞的幾種模式及使用
-
精確模式
- 精確劃分,視圖將句子最精確地切分,適合文本分析
jieba.lcut(text,cul_all=False)
-
全局模式
-
全模式 把句子中所有的可以成詞的詞語都掃描出來,速度非???,但是不能解決歧義
jieba.lcut(text,cul_all=True)
-
-
搜索引擎模式
-
搜索引擎模式,是在精確劃分的基礎(chǔ)上,再進(jìn)行全模式劃分,,提高召喚率,適合用于搜索引擎分詞。
-
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))) """ 精確搜索 落霞與孤鶩齊飛/,/秋水共長天一色 全模式 落霞/落霞與孤鶩齊飛/,/秋水/秋水共長天一色/長天/天一/一色 搜索引擎模式 落霞/落霞與孤鶩齊飛/,/秋水/長天/天一/一色/秋水共長天一色 """
如果有一些網(wǎng)絡(luò)熱詞,能夠被識別出來,不要被切分開,就要進(jìn)行自定義一個(gè)詞典,這個(gè)詞典本身是txt文檔,然后先試用jieba.load_userdict(‘文檔地址’),再根據(jù)需求,使用jieba中任意一個(gè)模式進(jìn)行切分。文章來源:http://www.zghlxwxcb.cn/news/detail-405445.html
text3 = '我是來自媽媽省的藍(lán)色妖姬唱著只因你太美而來'
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)))
"""
精確模式 我/是/來自/媽媽/省/的/藍(lán)色妖姬/唱/著/只/因/你/太美而來
全模式 我/是/來自/媽媽/省/的/藍(lán)色/藍(lán)色妖姬/妖姬/唱/著/只因/你/太美/而來
搜索引擎模式 我/是/來自/媽媽/省/的/藍(lán)色/妖姬/藍(lán)色妖姬/唱/著/只/因/你/太美/而來/太美而來
"""
三、詞云的過程
第一步:數(shù)據(jù)導(dǎo)入
- 數(shù)據(jù)準(zhǔn)備,制作詞云的數(shù)據(jù)導(dǎo)入
- 停用詞導(dǎo)入及自定義停用詞詞典:網(wǎng)上找的停用詞及自定義停用詞
第二步:數(shù)據(jù)清洗
- 去掉數(shù)據(jù)中的特殊符號或者說只保留中文,如去掉emoj符號,等一些特殊的對分析無用的符號。 方法是用正則方法。
- 判斷詞云數(shù)據(jù)是否是字符串類型,是的話對數(shù)據(jù)進(jìn)行切分,把所有的數(shù)據(jù)保留成一個(gè)長的字符串,用空格連接
第三步:準(zhǔn)備好產(chǎn)生詞云圖的文本數(shù)據(jù)
- 對清洗后的長字符串進(jìn)行切分,對其值進(jìn)行統(tǒng)計(jì)得到繪制詞云的最終數(shù)據(jù)import_words.
第四步:制作詞云圖 這里需要導(dǎo)入worldcolud ,和從PTL導(dǎo)入Tmage
- 使用PTL里面的 Imag 讀取nd array的圖片,這一步是通過讀取圖片的數(shù)據(jù),保存成nd array.
- 使用詞云提取圖片顏色生成器 ,worldcolund.Imagecolorgenerator( bgim)
- 設(shè)置詞云的背景顏色,詞云顯示的詞數(shù)及最大最小字體等一些參數(shù),然后將import_words傳進(jìn)來,plt.show就可以完成詞云的繪制。、
- 代碼顯示
import jieba
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
# 從列表中處理 拿到抖音數(shù)據(jù)里面的個(gè)性簽名內(nèi)容,使用結(jié)巴對語句進(jìn)行切分
dou_yin_data = pd.read_csv('./douyin.csv')
# 哈工大、四川大學(xué)、百度等都有發(fā)布的停用詞文件 可以在網(wǎng)上自行獲取
# 讀取停用詞
stop_words_list = pd.read_csv('./stopwords.txt',encoding='gbk',header=None)
for statement in dou_yin_data.signature:
print(statement)
# 只保留中文數(shù)據(jù)
good_words = dou_yin_data.signature.str.replace(r'[^\u4e00-\u9f5a]','')
# 產(chǎn)生字符串
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 + ' '
## 字符串切分,產(chǎn)生最終繪制詞云的數(shù)據(jù)
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',# 設(shè)置字體
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')
文章來源地址http://www.zghlxwxcb.cn/news/detail-405445.html
到了這里,關(guān)于NLP 之 jieba (結(jié)巴)制作詞云的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!