1 第三方庫的安裝與簡介
1.1 Python第三方庫 jieba(中文分詞)
1. 特點
(1)支持三種分詞模式:
- 精確模式,試圖將句子最精確地切開,適合文本分析;
- 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
- 搜索引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜索引擎分詞。
(2)支持繁體分詞
(2)支持自定義詞典
(3)MIT 授權協議
2. 安裝和使用說明
pip install jieba / pip3 install jieba
通過 import jieba 進行引用
3. 主要功能
這里主要涉及到的是分詞功能,詳述如下:
(1)jieba.cut 方法接受三個輸入參數:
- 需要分詞的字符串;
- cut_all 參數用來控制是否采用全模式;
- HMM 參數用來控制是否使用 HMM 模型。
(2)jieba.cut_for_search 方法接受兩個參數:
- 需要分詞的字符串;
- 是否使用 HMM 模型。
該方法適合用於搜索引擎構建倒排索引的分詞,粒度比較細。
1. 待分詞的字符串可以是 unicode 或 UTF-8 字符串、GBK 字符串。
2. 不建議直接輸入 GBK 字符串,可能無法預料地錯誤解碼成 UTF-8。
3. jieba.cut 以及 jieba.cut_for_search 返回的結構都是一個可迭代的 generator,可以使用 for 循環來獲得分詞后得到的每一個詞語(unicode),或者用jieba.lcut 以及jieba.lcut_for_search 直接返回 list。
(3)jieba.Tokenizer(dictionary=DEFAULT_DICT) 新建自定義分詞器,可用於同時使用不同詞典。jieba.dt 為默認分詞器,所有全局分詞相關函數都是該分詞器的映射。
4. 示例代碼
(1)實現代碼:
1 # coding=utf-8 2 import jieba 3 4 text = "輕輕地我走了正如我輕輕地來" 5 6 seg_list = jieba.cut(text, cut_all=False) 7 print("Default Mode: " + "/ ".join(seg_list)) # 精確模式 8 9 seg_list = jieba.cut(text, cut_all=True) 10 print("Full Mode: " + "/ ".join(seg_list)) # 全模式 11 12 seg_list = jieba.cut_for_search(text) 13 print("Search Mode: " + "/ ".join(seg_list)) # 搜索引擎模式
(2)運行結果:
1.2 Python第三方庫wordcloud(詞雲)
1. 安裝和使用說明
pip install wordcloud / pip3 install wordcloud
通過 import wordcloud 進行引用
2. 主要功能
wordcloud把詞雲當作一個對象,它可以將文本中詞語出現的頻率作為一個參數繪制詞雲,而詞雲的大小、顏色、形狀等都是可以設定的。
生成詞雲的步驟如下:
(1)配置對象參數
(2)加載詞雲文本
(3)輸出詞雲文件 (如果不加說明默認的圖片大小為400 * 200)
3. 常見的參數列表
2 制作生成詞雲
2.1 生成《新冠病毒無症狀感染者管理規范》的詞雲
(1)實現代碼:
1 # coding=utf-8 2 import matplotlib.pyplot as plt 3 import jieba 4 from wordcloud import WordCloud 5 6 # 1.讀入txt文本數據 7 with open("test.txt", 'r') as f: 8 text=f.read() 9 10 # 2.分詞 11 cut_text = " ".join(jieba.cut(text)) 12 13 # 3.生成詞雲 14 wc = WordCloud( 15 font_path=r'.\simhei.ttf', 16 background_color = 'white', 17 width = 1000, 18 height = 880, 19 ).generate(cut_text) 20 21 # 4.顯示詞雲圖片 22 plt.imshow(wc, interpolation="bilinear") 23 plt.axis('off') 24 plt.show()
(2)運行結果:
2.2 生成《關於做好高校畢業生就業創業工作的通知》的詞雲
(1)實現代碼:
1 # coding=utf-8 2 import PIL.Image as image 3 import numpy as np 4 import matplotlib.pyplot as plt 5 import jieba 6 from wordcloud import WordCloud, ImageColorGenerator 7 8 def GetWordCloud(): 9 path_txt = "test.txt" 10 path_img = "test.jpg" 11 # 1.讀入txt文本數據 12 with open(path_txt, 'r') as f: 13 text=f.read() 14 background_image = np.array(image.open(path_img)) 15 16 # 2.分詞 17 cut_text = " ".join(jieba.cut(text)) 18 19 # 3.生成詞雲 20 wc = WordCloud( 21 font_path=r'.\simhei.ttf', 22 background_color = 'white', 23 mask=background_image 24 ).generate(cut_text) 25 26 # 生成顏色值 27 image_colors = ImageColorGenerator(background_image) 28 29 # 4.顯示詞雲圖片 30 plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear") 31 plt.axis('off') 32 plt.show() 33 34 35 if __name__ == "__main__": 36 GetWordCloud()
(2)運行結果:
Python第三方庫jieba(中文分詞)