Jieba分詞作業記錄

2021-10-10 17:34:11 字數 2908 閱讀 5754

該文的project請看支援三種分詞模式:

精確模式,試圖將句子最精確地切開,適合文字分析;

全模式,把句子中所有的可以成詞的詞語都掃瞄出來, 速度非常快,但是不能解決歧義;

搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。

支援繁體分詞

支援自定義詞典

mit 授權協議

**對 python 2/3 均相容

全自動安裝:easy_install jieba 或者 pip install jieba / pip3 install jieba

手動安裝:將 jieba 目錄放置於當前目錄或者 site-packages 目錄

通過 import jieba 來引用

基於字首詞典實現高效的詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 (dag)

採用了動態規劃查詢最大概率路徑, 找出基於詞頻的最大切分組合

對於未登入詞,採用了基於漢字成詞能力的 hmm 模型,使用了 viterbi 演算法

import re

import jieba

import jieba.analyse as analyse

#cut函式,接受三個引數:需要採用的字串,是否全模式,是否使用hmm模型

#全模式

s="小明碩士畢業於中國科學院計算所,後在日本京都大學深造"

a=jieba.cut(s,cut_all=

true

,hmm=

false);

print

("全模式: "

+"/"

.join(a)

)#搜尋引擎模式

a=jieba.cut(s,cut_all=

false

,hmm=

true

)print

("搜尋引擎模式: "

+"/"

.join(a)

)#精確模式

a=jieba.cut(s,cut_all=

false

,hmm=

false

)print

("精確模式: "

+"/"

.join(a)

)#cut_for_search()函式,僅接受兩個引數,第乙個為待分詞的句子,第二個為是否實驗hmm模式

s="小明碩士畢業於中國科學院計算所,後在日本京都大學深造"

a=jieba.cut_for_search(s,hmm=

true

)print

("hmm模式:"

+"/"

.join(a)

)a=jieba.cut_for_search(s,hmm=

false

)print

("普通模式:"

+"/"

.join(a)

)def

jiebacleartext

(text)

: mywordlist =

stopwords=

seg_list = jieba.cut(text)

liststr=

"/ "

.join(seg_list)

with

open

(stopwords_path,

'r', encoding=

'utf-8'

)as f_stop:

#讀入停用詞表

for line in f_stop:

iflen

(line)

>0:

))for myword in liststr.split(

'/')

:#去停用詞

if(myword.strip(

)not

in stopwords)

:return

''.join(mywordlist)

stopwords_path=

'stopwords.txt'

f=open

("test2.txt"

,"rb"

)text = f.read(

)f.close();

text=text.decode(

'utf-8'

)text = re.sub(

'曰',

'', text)

text1 = jiebacleartext(text)

f=open

('result1.txt'

,"w")i=

1for key in analyse.extract_tags(text1,

50, withweight=

true):

#輸出結果

key=

str(key)

f.write(

"no."

+str

(i)+

": "

+key+

'\n'

) i=i+

1f.close(

)###對msr資料集進行分詞

text=

f=open

("msr_test.txt"

,'r'

, encoding=

'gbk'

)t=f.readline(

)while t:

t=f.readline(

)f.close();

f=open

('result2.txt'

,"w");

for word in text:

#輸出結果

word=jieba.cut(word)

f.write(

"/".join(word)

)f.close(

)

jieba分詞使用記錄

jieba分詞核心分詞由兩部分組成。對於在詞典裡的字詞建立字典樹 trie 在搜尋的時候必須從根節點搜尋到葉子節點才算乙個詞 對於不在字典裡的字詞使用hmm模型根據最大可能性進行分詞 每次執行jieba分詞時程式會先檢查是否存在jieba.cache這個檔案。如果存在直接使用這個檔案中的資訊,否則重...

jieba 利用jieba分詞

目錄 三種分詞模式 新增自定義詞典進行分詞 jieba提供了三種分詞模式,分別是全模式,精確模式和搜尋引擎模式。全模式下會將所有可能的詞語都進行分詞,精確模式下會盡可能的將句子精確切開,搜尋引擎模式實在精確模式的基礎上,對長詞再進行劃分,提高分詞的召回率。使用cut和cut for search即可...

jieba分詞原理

關於jieba分詞的原理,在平時做文字方面的演算法時沒有仔細研究過,昨晚在網上看了一篇部落格,寫的很全面很詳細,其中有些深入的部分還並沒有完全看懂。jieba分詞系統介紹 涉及演算法 基於字首詞典實現詞圖掃瞄,生成句子中漢字所有可能成詞情況所構成的有向無環圖 dag 採用動態規劃查詢最大概率路徑,找...