一、使用jieba進(jìn)行分詞
1. 中文分詞(Chinese Word Segmentation)
指將一個(gè)漢字序列切分成一個(gè)一個(gè)單獨(dú)的詞陕靠。分詞就是將連續(xù)的字序列按照一定的規(guī)范重新組合成詞序列的過程。
2. jieba分詞的特點(diǎn)
(1)支持三種分詞模式:
全模式:把句子中所有的可以成詞的詞語都掃描出來, 速度非尘嘲快津畸,但是不能解決歧義;
精確模式:試圖將句子最精確地切開堤结,適合文本分析唆迁;
搜索引擎模式:在精確模式的基礎(chǔ)上,對長詞再次切分竞穷,提高召回率唐责,適合用于搜索引擎分詞。
(2)支持繁體分詞
(3)支持自定義詞典
(4)MIT 授權(quán)協(xié)議
3. 安裝jieba
在mac系統(tǒng)中打開終端瘾带,輸入命令 sudo easy_install pip 安裝pip
4. 不同模式下進(jìn)行分詞
本次分詞練習(xí)所使用的語段如下:
汽車進(jìn)口關(guān)稅的下調(diào)鼠哥,掀起了中國進(jìn)口車市的降價(jià)熱潮,更點(diǎn)燃了中國消費(fèi)者的購買熱情看政。5月22日朴恳,國家財(cái)政部發(fā)布公告,自2018年7月1日起允蚣,降低汽車整車及零部件進(jìn)口關(guān)稅于颖。消息一出,各大車企紛紛表態(tài)嚷兔,啟動價(jià)格評估進(jìn)而作出降價(jià)調(diào)整森渐,但由于需要具體計(jì)算并不是所有車企都給出了明確的價(jià)格調(diào)整方案。
步驟如下:
在jieba文件夾下建立zrq2.py文件谴垫,四種模式分詞代碼分別如下圖所示:
在命令行中進(jìn)入到j(luò)ieba目錄下章母,輸入 python zrq2.py
得到四種模式下的分詞結(jié)果,分別如下圖所示:
5. 添加自定義詞典
a.開發(fā)者可以指定自己自定義的詞典,以便包含 jieba 詞庫里沒有的詞恕出。雖然 jieba 有新詞識別能力询枚,但是自行添加新詞可以保證更高的正確率
b.用法: jieba.load_userdict(file_name) # file_name 為文件類對象或自定義詞典的路徑
c.詞典格式和 dict.txt 一樣,一個(gè)詞占一行浙巫;每一行分三部分:詞語金蜀、詞頻(可省略)刷后、詞性(可省略),用空格隔開渊抄,順序不可顛倒尝胆。file_name 若為路徑或二進(jìn)制方式打開的文件,則文件必須為 UTF-8 編碼护桦。
d.詞頻省略時(shí)使用自動計(jì)算的能保證分出該詞的詞頻
步驟如下:
(1)在jieba文件夾下新建userdict.text,設(shè)置自定義的詞含衔,一個(gè)詞占一行,以utf-8形式保存
(2)在jieba文件夾下新建zrq3.py文件二庵,代碼如下:
6. 調(diào)整詞典
使用 add_word(word, freq=None, tag=None) 和 del_word(word) 可在程序中動態(tài)修改詞典。
添加一個(gè)自定義詞“進(jìn)口車市”兰迫,對zrq3.py文件中的代碼進(jìn)行修改信殊,如下圖所示:
在命令行中進(jìn)入到j(luò)ieba目錄下,輸入 python zrq3.py汁果,得到結(jié)果如下:
7. 基于 TF-IDF 算法的關(guān)鍵詞抽取
引入關(guān)鍵詞提染莸隆:import jieba.analyse
A. jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
a.sentence 為待提取的文本
b.topK 為返回幾個(gè) TF/IDF 權(quán)重最大的關(guān)鍵詞鳄乏,默認(rèn)值為 20
c.withWeight 為是否一并返回關(guān)鍵詞權(quán)重值,默認(rèn)值為 False
d.allowPOS 僅包括指定詞性的詞棘利,默認(rèn)值為空橱野,即不篩選
B. jieba.analyse.TFIDF(idf_path=None) 新建 TFIDF 實(shí)例,idf_path 為 IDF 頻率文件
步驟如下:
在jieba文件夾下新建zrq4.py文件善玫,代碼如下:
在命令行中進(jìn)入到j(luò)ieba目錄下水援,輸入 python zrq4.py,得到結(jié)果如下:
8. 基于 TextRank 算法的關(guān)鍵詞抽取
基于TextRank算法抽取關(guān)鍵詞的主調(diào)函數(shù)是TextRank.textrank函數(shù)茅郎,主要是在jieba/analyse/textrank.py中實(shí)現(xiàn)蜗元。其中,TextRank是為TextRank算法抽取關(guān)鍵詞所定義的類系冗。類在初始化時(shí)奕扣,默認(rèn)加載了分詞函數(shù)和詞性標(biāo)注函數(shù)
基本思想:
a.將待抽取關(guān)鍵詞的文本進(jìn)行分詞
b.以固定窗口大小(默認(rèn)為5,通過span屬性調(diào)整)掌敬,詞之間的共現(xiàn)關(guān)系惯豆,構(gòu)建圖
c.計(jì)算圖中節(jié)點(diǎn)的PageRank池磁,注意是無向帶權(quán)圖
步驟如下:
在jieba文件夾下新建zrq5.py,代碼如下:
9.制作詞云
下載停用詞表stop.txt,創(chuàng)建cloud.py文件提取關(guān)鍵詞拄养,代碼如下:
在命令行中進(jìn)入到j(luò)ieba目錄下,輸入 python cloud.py银舱,得到結(jié)果如下:
打開TAGUL瘪匿,開始制作詞云
(1)import words:將運(yùn)行結(jié)果粘貼,如下圖所示:
(2)選擇形狀(shapes) (3)先下載微軟雅黑字體寻馏,通過“Add font”添加棋弥,如下圖所示:
二顽染、在線分詞工具
1. GooSeeker集搜客
步驟如下:
(1)新建任務(wù)并導(dǎo)入數(shù)據(jù),以word形式導(dǎo)入轰绵,如圖:
(2)進(jìn)行詞語篩選粉寞,系統(tǒng)自動匹配原文本,如圖:
(3)查看&下載結(jié)果左腔,分詞結(jié)果如圖:
個(gè)人感受:
該分詞工具導(dǎo)入數(shù)據(jù)的方式并非粘貼唧垦,而是支持導(dǎo)入不超過10M的excel、word液样、txt振亮、pdf文檔,分詞結(jié)果可供下載鞭莽。
2. K Analyzer在線分詞工具
個(gè)人感受:
如圖結(jié)果所示坊秸,該分詞工具統(tǒng)計(jì)了詞組總數(shù)量,將所有能拆分的詞語都進(jìn)行了拆分澎怒,句子短小褒搔,但過于細(xì)碎,有些地方幾乎讀不通順丹拯,用戶體驗(yàn)不佳站超,這種分詞意義不大。
3. 站長工具
個(gè)人感受:
該在線分詞工具雖然網(wǎng)站設(shè)計(jì)較為簡陋乖酬,但分詞效果優(yōu)于K Analyzer在線分詞工具死相,分詞準(zhǔn)確度較高,而非機(jī)械地對所有可拆分項(xiàng)進(jìn)行拆解咬像。