中文分詞工具jieba分詞器的使用

技術交流QQ群:1027579432,歡迎你的加入!

1.常見的中文分詞工具

  • 中科院計算所的NLPIR
  • 哈工大LTP
  • 清華大學THULAC
  • 斯坦福分詞器
  • Hanlp分詞器
  • jieba分詞
  • IKAnalyzer

2.jieba分詞算法主要有以下三種:

  • 1.基于統(tǒng)計詞典,構造前綴詞典,基于前綴詞典對句子進行切分,得到所有切分可能,根據(jù)切分位置,構造一個有向無環(huán)圖(DAG)
  • 2.針對DAG圖,采用動態(tài)規(guī)劃計算最大概率路徑(最優(yōu)可能的分詞結果),根據(jù)最大概率路徑分詞
  • 3.對新詞(詞庫中沒有的詞),采用有漢字成詞能力的HMM模型進行切分。
import jieba
content = "現(xiàn)在,機器學習和深度學習帶動人工智能飛速的發(fā)展,并在圖像處理、語音識別領域取得巨大成功。"

3.精確分詞:精確模式試圖將句子最精確地切開,精確分詞也是默認的分詞方式

segs_1 = jieba.cut(content, cut_all=False)
print("/".join(segs_1))

4.全模式分詞:把句子中所有的可能是詞語的都掃描出來,速度非??欤荒芙鉀Q歧義。

segs_2 = jieba.cut(content, cut_all=True)
print("/".join(segs_2))

5.搜索引擎模式:在精確模式的基礎上,對長詞再次進行劃分,提高召回率Recall,適用于搜索引擎分詞。

segs_3 = jieba.cut_for_search(content)
print("/".join(segs_3))

6.用lcut生成list

  • jieba.cut和jieba.cut_for_search返回的結果都是一個可迭代的生成器,可以使用for循環(huán)來獲得分詞后得到的每個詞語(unicode編碼)。jieba.lcut對cut的結果進行了封裝,l代表list,即返回的結果是一個list集合。同樣的,用jieba.lcut_for_search()也直接返回list集合。
segs_4 = jieba.lcut(content)
print(segs_4)

7.獲取詞性

  • jieba可以很方便地獲取中文詞性,通過jieba.posseg模塊實現(xiàn)詞性標注
import jieba.posseg as psg

[(x.word, x.flag) for x in psg.lcut(content)]

8.并行分詞

  • 并行分詞原理是為文本按行分隔后,分配到多個python進程并進行分詞,最終歸并結果。
  • 并行分詞僅支持默認分詞器jieba.dt和jieba.posseg.dt,目前暫不支持windows系統(tǒng)。
jieba.enable_parallel(4)  # 開啟并行分詞模式,參數(shù)為并行進程數(shù)
jieba.disable_parallen()  # 關閉并行分詞模式

9.獲取分詞結果中詞列表的top N

from collections import Counter

top5 = Counter(segs_4).most_common(5)
top5

10.自定義添加詞和字典

  • 默認情況下,使用默認分詞,是識別不出來這句話中的“字節(jié)跳動”這個新詞,這里使用用戶字典提高分詞的準確性。
txt = "字節(jié)跳動是中國一家新興的互聯(lián)網(wǎng)公司。"
segs_5 = jieba.lcut(txt)
segs_5
  • 添加一個新詞到字典中,結果就不一樣了
jieba.add_word("字節(jié)跳動")
segs_6 = jieba.lcut(txt)
segs_6
  • 但是,如果要添加很多個詞語時,一個個添加效率就不高了。這時候可以定義一個文件,然后通過load_userdict()函數(shù),加載自定義詞典,如下所示:
txt1 = "火山小視頻是字節(jié)跳動公司開發(fā)的一款應用軟件。"
jieba.load_userdict("user_dict.txt")  # user_dict.txt是自己創(chuàng)建的一個自定義的新詞詞典
segs_7 = jieba.lcut(txt1)
segs_7

11.注意的地方

  • jieba.cut()方法接收三個輸入?yún)?shù):需要分詞的字符串、cut_all參數(shù)用來控制是否采用全模式、HMM參數(shù)用來控制是否使用HMM模型
  • jieba.cut_for_search()方法接收兩個參數(shù):需要分詞的字符串、是否使用HMM模型。該方法適用于搜索引擎構建倒排索引的分詞,細粒度較高。

12.相關說明

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • jieba分詞,學習,為了全面了解該模塊,,預設學習路線:官方文檔——優(yōu)秀博客文章——實踐學習 官方文檔部分 (文...
    竹林徒兒閱讀 4,474評論 1 12
  • 前言 從本文開始,我們進入實戰(zhàn)部分。首先,我們按照中文自然語言處理流程的第一步獲取語料,然后重點進行中文分詞的學習...
    Element靜婷閱讀 960評論 0 0
  • 前言 從本文開始,我們進入實戰(zhàn)部分。首先,我們按照中文自然語言處理流程的第一步獲取語料,然后重點進行中文分詞的學習...
    lanlantian123閱讀 5,415評論 0 2
  • 前言 從本文開始,我們進入實戰(zhàn)部分。首先,我們按照中文自然語言處理流程的第一步獲取語料,然后重點進行中文分詞的學習...
    米飯超人閱讀 25,970評論 1 24
  • 總是想著寫點什么來記錄這平平淡淡的生活,卻遲遲沒有行動。終于有個地方可以讓任由我胡說亂講了,日子里的喜悅哀愁,我要...
    文竹愛讀書閱讀 210評論 0 0

友情鏈接更多精彩內容