自然語言中最好中文分詞 jieba

2021-10-04 19:34:57 字數 4575 閱讀 5700

美圖欣賞:

一.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 ...