美圖欣賞:
一.jieba介紹
「結巴」中文分詞:做最好的python中文分詞元件「 jieba」(中文為「 to stutter」)中文文字分割:內建為最好的python中文單詞分割模組。二.jieba特徵支援典型分詞模式:
精確模式,試圖將句子最精確地切開,適合文字分析;
全模式,把句子中所有的可以成詞的短語都掃瞄出來,速度非常快,但是不能解決歧義;
搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
paddle模式,利用paddlepaddle深度學習框架,訓練序列標註(雙向gru)網路模型實現分詞。同時支援詞性標註。paddle模式使用需安裝paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。
支援繁體分詞
支援自定義詞典jieba的github:
jieba的官網:
三.jieba安裝命令:
import install jieba
四.**實現
import jieba
import jieba.analyse as jackson #取乙個別名
#1 分詞全模式
#全模式:把句子中所有可能的詞都掃瞄切分,速度非常快,不能解決歧義;
text =
"我熱愛學習nlp,熱愛學習人工智慧"
#cut_all=true表示開啟全模式,
#print
("[1. 全模式]"
+"/"
.join
(jieba.
cut(text,cut_all=true)))
full_mode_list = jieba.
cut(text,cut_all=true)
# list =
# for full_mode in full_mode_list:
# list.
(full_mode)
# print
(list)
#join連線任意數量的字串。以"/"作為分割符
print
("[1. 全模式]"
+"=="
.join
(full_mode_list)
)#2.精確模式 用的較多(試圖將句子最精確的切開,適合文字分析。)
#cut_all=false 寫不寫,精確模式預設為false
full_mode_list = jieba.
cut(text,cut_all=false)
print
("[2. 精確模式]"
+" "
.join
(full_mode_list)
)#3.jieba 搜尋引擎模式 在精確模式的基礎上,適用於搜尋引擎,對長詞再次切分
sousuo_list = jieba.
lcut_for_search
(text)
print
("[3. 搜尋引擎模式 ]"
+"--"
.join
(sousuo_list)
)#4.繁體分詞
text =
"香港和台灣是中國的壹部分"
fanti_list = jieba.
cut(text,cut_all=false)
print
("[4. 繁體分詞 ]"
+" ** "
.join
(fanti_list)
)#5. 自定義使用者詞典,jieba內部有自己的詞典,可以有自己識別新詞的能力
jieba.
load_userdict
("userdict.txt"
)zidingyi_list = jieba.
cut(text,cut_all=false)
#jieba可以動態增加詞,缺點:只在當前程式起作用
jieba.
add_word
("高富帥"
)jieba.
add_word
("理想主義者"
)jieba.
add_word
("現實主義者"
)jieba.
add_word
("有錢人"
)jieba.
add_word
("無錢人"
)print
("[5. 自定義使用者詞典之後,繁體分詞 ]"
+" -- "
.join
(zidingyi_list)
)t =
"馬雲是國家的驕傲,是民族的脊梁,是一匹駿馬永不停歇," \
"在創新的浪潮中,永立潮頭!有人說以後的傳奇只有西方的美國比爾蓋茨,東方的中國馬雲。" \
"而這一次上海的進博會,馬雲再度譜寫傳奇,他的智慧型,他的見識,讓我們驚羨。" \
"今天分享的是馬雲經典勵志語錄25句,不是你沒能力,而是別人太強,早就走在你前面,想要更強," \
"只有不斷的學習"
#topk是選中6個,withweight表示權重值
keyword_list = jackson.
extract_tags
(t,topk=
6,withweight=true) #返回的是list
#輸出for keyword,weight in keyword_list:
#%s是一種格式,裡面放著內容
print
("%s %s"
%(keyword,weight)
)print
("textrank"
)#pagerank對網頁做排名
#textrank對詞排名,更深一步
keywords = jackson.
textrank
(t,topk=
6,withweight=true)
print
(keywords)
執行結果:
building prefix dict from the default dictionary ...
loading model cost 0.672 seconds.
[1. 全模式]我==熱愛==學習==nlp==
,==熱愛==學習==人工==人工智慧==智慧型
prefix dict has been built successfully.
[2. 精確模式]我 熱愛 學習 nlp , 熱愛 學習 人工智慧
[3. 搜尋引擎模式 ]我--熱愛--學習--nlp--
,--熱愛--學習--人工--智慧型--人工智慧
[4. 繁體分詞 ]香港 *
* 和 *
* 台灣 *
* 是 *
* 中國 *
* 的 *
* 壹 *
* 部分
[5. 自定義使用者詞典之後,繁體分詞 ]香港和台灣 -- 是 -- 中國 -- 的 -- 壹部分
馬雲 0.701547733282264
傳奇 0.29555668165018867
永立 0.24919868813962265
比爾蓋茨 0.23612043945094338
250.2255616509981132
驚羨 0.22304219076037735
textrank[(
'經典'
,1.0),
('博會'
,0.8880339361970131),
('傳奇'
,0.8880255842287333),
('譜寫'
,0.8667851011701004),
('浪潮'
,0.8572273633619661),
('脊梁'
,0.8464178235019462)]
process finished with exit code 0
————保持飢餓,保持學習
jackson_mvp
自然語言處理 中文分詞原理
1.1中文分詞概述 中文分詞 將乙個漢字序列分成乙個乙個的單獨的詞。分詞 將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2中文分詞方法 一般有以下三類 基於詞典匹配的分詞方法 基於理解的分詞方法和基於統計的分詞方法。1.2.1 基於詞典 字串匹配 機械分詞法 匹配的分詞方法 按照一定的策略...
自然語言處理入門 中文分詞原理
1.中文分詞原理介紹 1.1 中文分詞概述 中文分詞 chinese word segmentation 指的是將乙個漢字序列切分成乙個乙個單獨的詞。分詞就是將連續的字序列按照一定的規範重新組合成詞序列的過程。1.2 中文分詞方法介紹 現有的分詞方法可分為三大類 基於字串匹配的分詞方法 基於理解的分...
自然語言處理之中文分詞工具彙總
import jieba jieba.load userdict txt 載入自定義詞 deffunc jieba posseg ret jieba.posseg.cut 這衣服都起球了,給我退了吧 list jieba i for i in posseg ret print list jieba ...