python中jieba庫詳解


函數 描述
jieba.cut(s) 精確模式,返回一個可迭代的數據類型
jieba.cut(s, cut_all = Ture) 全模式,輸出文本s中所有可能的單詞
jieba.cut_for_search(s) 搜索引擎模式,適合搜索引擎建立索引的分詞結果
jieba.lcut(s) 精確模型,返回一個列表模型,建議使用
jieba.lcut(s, cut_all=Ture) 全模型,返回一個列表模型,建議使用
jieba.lcut_for_search(s) 搜索引擎模型,返回一個列表類型,建議使用
jieba.add_word(w) 向分詞詞典中添加新詞w

分詞返回值類型:

  • cut 和 cut_for_search 返回值類型都是一個迭代器(可迭代對象, 使用for可以依次遍歷出來)
  • lcut 和 lcut_for_search 返回值類型都是一個列表

參數問題:

  • jieba.cut 和 jieba.lcut接受 3 個參數:

    • 需要分詞的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
    • cut_all 參數:是否使用全模式,默認值為 False
    • HMM 參數:用來控制是否使用 HMM 模型,默認值為 True
  • jieba.cut_for_search和jieba.lcut_for_search 接受 2 個參數:

    • 需要分詞的字符串(unicode 或 UTF-8 字符串、GBK 字符串)
    • HMM 參數:用來控制是否使用 HMM 模型,默認值為 True

模式問題:

  • 全模式和精確模式:

    # 全模式
    seg_list = jieba.cut("他來自河北地質大學", cut_all=True)
    print("【全模式】:" + "/ ".join(seg_list))
    
    # 【全模式】:他/ 來自/ 河北/ 北地/ 地質/ 大學
    
    
    # 精確模式
    seg_list = jieba.cut("他來自河北地質大學", cut_all=False)
    print("【精確模式】:" + "/ ".join(seg_list))
    
    #【精確模式】:他/ 來自/ 河北/ 地質/ 大學
    

    由上面可得:

    • 全模式是吧該文檔中所有可能組成的詞語划分出來
    • 精確模式就是單純的對句子進行划分
  • 搜索引擎模式:

    # 搜索引擎模式
    seg_list = jieba.cut_for_search("我朋友現就讀於河北地質大學軟件工程專業,現在正在自己搞機器學習,他說有點難")  
    print("【搜索引擎模式】:" + "|".join(seg_list))
    
    #【搜索引擎模式】:我|朋友|就讀|現就讀|於|河北|地質|大學|軟件|工程|軟件工程|專業|,|現在|正在|自己|搞|機器|學習|,|他|說|有點|難
    
    # 搜索引擎模式
    seg_list = jieba.lcut_for_search("我朋友現就讀於河北地質大學軟件工程專業,現在正在自己搞機器學習,他說有點難")  
    print(f"【搜索引擎模式】:{seg_list}")
    
    # 【搜索引擎模式】:['我', '朋友', '就讀', '現就讀', '於', '河北', '地質', '大學', '軟件', '工程', '軟件工程', '專業', ',', '現在', '正在', '自己', '搞', '機器', '學習', ',', '他', '說', '有點', '難']
    

    搜索引擎模式由上面可得,就是先把分詞寫在前面,然后把組合后的詞語放在后面,

  • HMM 模式

    # 未啟用 HMM
    seg_list = jieba.cut("這是奧運史上獨特的一次奧運會", HMM=False) #默認精確模式和啟用 HMM
    print("【未啟用 HMM】:" + "/ ".join(seg_list))  
    
    #【未啟用 HMM】:這/ 是/ 奧運/ 史/ 上/ 獨特/ 的/ 一次/ 奧運會
    
    
    # 啟用 HMM
    seg_list = jieba.cut("這是奧運史上獨特的一次奧運會") #默認精確模式和啟用 HMM
    print("【啟用 HMM】:" + "/ ".join(seg_list))  
    
    #【啟用 HMM】:這是/ 奧運/ 史上/ 獨特/ 的/ 一次/ 奧運會
    

    HMM模式可以將一些有關聯的詞語分成一個

詞性編碼 詞性名稱 注 解
Ag 形語素 形容詞性語素。形容詞代碼為 a,語素代碼g前面置以A。
a 形容詞 取英語形容詞 adjective的第1個字母。
ad 副形詞 直接作狀語的形容詞。形容詞代碼 a和副詞代碼d並在一起。
an 名形詞 具有名詞功能的形容詞。形容詞代碼 a和名詞代碼n並在一起。
b 區別詞 取漢字“別”的聲母。
c 連詞 取英語連詞 conjunction的第1個字母。
dg 副語素 副詞性語素。副詞代碼為 d,語素代碼g前面置以D。
d 副詞 取 adverb的第2個字母,因其第1個字母已用於形容詞。
e 嘆詞 取英語嘆詞 exclamation的第1個字母。
f 方位詞 取漢字“方”
g 語素 絕大多數語素都能作為合成詞的“詞根”,取漢字“根”的聲母。
h 前接成分 取英語 head的第1個字母。
i 成語 取英語成語 idiom的第1個字母。
j 簡稱略語 取漢字“簡”的聲母。
k 后接成分
l 習用語 習用語尚未成為成語,有點“臨時性”,取“臨”的聲母。
m 數詞 取英語 numeral的第3個字母,n,u已有他用。
Ng 名語素 名詞性語素。名詞代碼為 n,語素代碼g前面置以N。
n 名詞 取英語名詞 noun的第1個字母。
nr 人名 名詞代碼 n和“人(ren)”的聲母並在一起。
ns 地名 名詞代碼 n和處所詞代碼s並在一起
nt 機構團體 “團”的聲母為 t,名詞代碼n和t並在一起。
nz 其他專名 “專”的聲母的第 1個字母為z,名詞代碼n和z並在一起。
o 擬聲詞 取英語擬聲詞 onomatopoeia的第1個字母
p 介詞 取英語介詞 prepositional的第1個字母。
q 量詞 取英語 quantity的第1個字母。
r 代詞 取英語代詞 pronoun的第2個字母,因p已用於介詞。
s 處所詞 取英語 space的第1個字母。
tg 時語素 時間詞性語素。時間詞代碼為 t,在語素的代碼g前面置以T。
t 時間詞 取英語 time的第1個字母。
u 助詞 取英語助詞 auxiliary
vg 動語素 動詞性語素。動詞代碼為 v。在語素的代碼g前面置以V。
v 動詞 取英語動詞 verb的第一個字母。
vd 副動詞 直接作狀語的動詞。動詞和副詞的代碼並在一起。
vn 名動詞 指具有名詞功能的動詞。動詞和名詞的代碼並在一起。
w 標點符號
x 非語素字 非語素字只是一個符號,字母 x通常用於代表未知數、符號。
y 語氣詞 取漢字“語”的聲母。
z 狀態詞 取漢字“狀”的聲母的前一個字母。
un 未知詞 不可識別詞及用戶自定義詞組。取英文Unkonwn首兩個字母。(非北大標准,CSW分詞中定義)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM