作者:Allen
歡迎關(guān)注我們的公眾號:數(shù)據(jù)科學(xué)雜談
今天,我們正式開始《從零開始學(xué)自然語言處理》系列文章的更新鳄厌。內(nèi)容會涉及自然語言處理的各個方面知識內(nèi)容和具體操作:包括但不僅限于詞法分析荞胡,句法分析廊营,語義分析,文本聚類萝勤,文本分類露筒,情感分析,文本摘要生成敌卓,主題模型慎式,詞嵌入,文本語義相似度趟径,自然語言推理瘪吏,機器翻譯,語言模型蜗巧,信息抽取肪虎,關(guān)系預(yù)測,對話惧蛹,指代消解等等扇救。 從最基礎(chǔ)的內(nèi)容開始講起,歡迎持續(xù)關(guān)注學(xué)習(xí)香嗓。
(溫馨提示:文章中代碼部分左右滑動可查看全部)針對中文的自然語言處理迅腔,我們需要先將段落和句子切分為詞語,這是最基礎(chǔ)的一步操作靠娱,分詞屬于詞法分析的基礎(chǔ)部分沧烈。本文聊聊 jieba 這個工具包。jieba 是一款優(yōu)秀的中文分詞工具像云。如何安裝 jieba 呢锌雀?我們可以通過 Python 的 pip 直接安裝:
pip install jieba
jieba 采用的算法為:
- 基于前綴詞典實現(xiàn)高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構(gòu)成的有向無環(huán)圖 (DAG)
- 采用了動態(tài)規(guī)劃查找最大概率路徑, 找出基于詞頻的最大切分組合
- 對于未登錄詞迅诬,采用了基于漢字成詞能力的 HMM 模型腋逆,使用了 Viterbi 算法
jieba 有三種分詞模式:
- 精確模式,試圖將句子最精確地切開侈贷,適合文本分析惩歉;
- 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非城温快撑蚌,但是不能解決歧義;
- 搜索引擎模式搏屑,在精確模式的基礎(chǔ)上争涌,對長詞再次切分,提高召回率辣恋,適合用于搜索引擎分詞亮垫。
我們接下來開始具體操作首先我們使用全模式進行分詞:
import jieba
seg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=True)
print("Full Mode: " + "/ ".join(seg_list)) # 全模式
結(jié)果為:使用精確模式(默認的也是精確模式解幼,即去掉cut_all參數(shù)也是精確模式):
seg_list = jieba.cut("我來到北京清華大學(xué)", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精確模式
使用搜索引擎模式:
seg_list = jieba.cut_for_search("小明碩士畢業(yè)于中國科學(xué)院計算所,后在日本京都大學(xué)深造") # 搜索引擎模式
print(", ".join(seg_list))
但是當(dāng)我們遇到一些新詞的時候包警,jieba 可能并不能正確分詞撵摆,例如我們在對以下句子進行分詞時:
seg_list = jieba.cut("新研發(fā)的產(chǎn)品名為一網(wǎng)搜索。", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精確模式
那如何解決這個問題呢害晦?
我們只需要創(chuàng)建一個自定義詞典文件特铝,文件格式為 txt 詞典格式和 dict.txt
一樣,一個詞占一行壹瘟;每一行分三部分:詞語鲫剿、詞頻(可省略)、詞性(可省略)稻轨,用空格隔開灵莲,順序不可顛倒。file_name
若為路徑或二進制方式打開的文件殴俱,則文件必須為 UTF-8 編碼政冻。詞頻省略時使用自動計算的能保證分出該詞的詞頻。例如线欲,我在本地創(chuàng)建了一個名為 userdict.txt 的文件
用法:jieba.load_userdict(file_name)
file_name 為文件類對象或自定義詞典的路徑然后使用如下代碼即可完成正確分詞:
jieba.load_userdict(r'E:/jieba/userdict.txt')
seg_list = jieba.cut("新研發(fā)的產(chǎn)品名為一網(wǎng)搜索苦锨。", cut_all=False)
print("Default Mode: " + "/ ".join(seg_list)) # 精確模式
想對 jieba 分詞有更深入的了解可以傳送到 jieba 的 github:https://github.com/fxsjy/jieba對《從零開始學(xué)自然語言處理》系列文章有興趣的話,歡迎持續(xù)關(guān)注學(xué)習(xí)趴泌。歷史文章推薦閱讀:Python快速安裝庫的靠譜辦法
歡迎關(guān)注我們的公眾號:數(shù)據(jù)科學(xué)雜談 舟舒,每天分享原創(chuàng)干貨文章!