文章目錄
-
- 1.前言
- 2.簡單上手
-
- 1)安裝jieba
- 2)jieba的常用函數
-
- 示例
- 3)解決paddlepaddle-tiny==1.6.1的安裝
-
- 示例繼續
- 3.jieba背後的“黑科技”算法原理
1.前言
項目Github的位址:
https://github.com/fxsjy/jieba
jieba是一個開源的中文分詞庫。
廣泛用于文本分析、詞雲繪制、關鍵詞提取、自然語言處理等領域。
并且容易上手,還支援繁體中文分詞,支援使用者自定義詞。
如果你隻想解決paddlepaddle-tiny==1.6.1的安裝和使用問題,直接點選目錄跳轉。但是如果你是python3.7以上的版本,就不要嘗試了,不支援超過python3.7的版本。
2.簡單上手
1)安裝jieba
pip install jieba
2)jieba的常用函數
精确模式:把最有可能組成詞語的詞切開,沒有備援單詞。試圖将句子最精确地切開,适合文本分析。
全模式:把所有可能組成詞語的詞切開,有備援單詞。把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義。
搜尋引擎模式:在精确模式的基礎上,對分詞再次切分,提高召回率,适合用于搜尋引擎分詞。
paddle模式,利用PaddlePaddle深度學習架構,訓練序列标注(雙向GRU)網絡模型實作分詞。同時支援詞性标注。
https://www.paddlepaddle.org.cn/#PaddlePaddle官網
示例
import jieba
jieba.lcut('安徽理工大學的大學生')
#精确模式: ['安徽', '理工大學', '的', '大學生']
jieba.lcut('安徽理工大學的大學生',cut_all=True)
#全模式: ['安徽', '安徽理工', '理工', '理工大', '理工大學', '工大', '大學', '的', '大學', '大學生', '學生']
jieba.lcut_for_search('安徽理工大學的大學生')
#搜尋引擎模式: ['安徽', '理工', '工大', '大學', '理工大', '理工大學', '的', '大學', '學生', '大學生']
# 啟動paddle模式,如果沒有安裝paddle會自動開始安裝。注意!!!你可能無法安裝,解決方法在下面。
#必須是python3.7版本
jieba.enable_paddle()
3)解決paddlepaddle-tiny==1.6.1的安裝
藍奏雲:https://wws.lanzous.com/iGtqpn6ebrg
密碼:9ji7
可能不能自動安裝,甚至不可以在pip下載下傳,可以選擇半自動安裝。
把上面的檔案拖到(python安裝目錄/Lib/site-packages)下
然後
pip install paddle#這個是可以正常下載下傳的
pip install paddlepaddle-tiny==1.6.1
這個時候就安裝成功了,但是還是不能用下面方法來直接打開paddle模式
jieba.enable_paddle() #現在不可以正常啟動paddle模式
原因如下
是以我們需要這樣,就可以啟用
paddle.enable_static()
#In PaddlePaddle 2.x, we turn on dynamic graph mode by default, and 'data()' is only supported in static graph mode. So if you want to use this api, please call 'paddle.enable_static()' before this api to enter static graph mode.
jieba.enable_paddle()
示例繼續
import jieba
import paddle
paddle.enable_static()
jieba.enable_paddle()# 啟動paddle模式
jieba.lcut('安徽理工大學的大學生',use_paddle=True)
但是到這裡我還是沒辦法繼續執行下去
我查詢了資料發現,paddle這個模式必須要在python3.7的環境下執行
對于我們普通使用者,使用精确模式即可。
3.jieba背後的“黑科技”算法原理
基于字首詞典實作高效的詞圖掃描,生成句子中所有可能成詞情況所構成的有向無環圖(DAG)。
采用了動态規劃查找最大機率路徑,找出基于詞頻的最大切分組合。
對于未登陸詞,采用了基于漢字成詞能力的HMM模型,使用Viterbi算法。
使用隐馬爾可夫、動态規劃等機率模型,計算字元之間的關聯機率,字元間概論大就認為是一個詞。
可能成詞情況所構成的有向無環圖(DAG)。
采用了動态規劃查找最大機率路徑,找出基于詞頻的最大切分組合。
對于未登陸詞,采用了基于漢字成詞能力的HMM模型,使用Viterbi算法。
使用隐馬爾可夫、動态規劃等機率模型,計算字元之間的關聯機率,字元間概論大就認為是一個詞。
使用者不需要知道背後的算法原理,隻需要會調用接口就可以了。
未完續待…