1. 程式人生 > >jieba(結巴)—— Python 中文分詞

jieba(結巴)—— Python 中文分詞

學術界著名的分詞器:

  • 中科院的 ICTCLAS,程式碼並不十分好讀
  • 哈工大的 ltp,
  • 東北大學的 NIU Parser,

另外,中文 NLP 和英文 NLP 不太一致的地方還在於,中文首先需要分詞,針對中文的分詞問題,有兩種基本的解決思路:

  • 啟發式(Heuristic):查字典
  • 機器學習/統計方法:HMM、CRF

jieba 分詞是python寫成的一個算是工業界的分詞開源庫,其 github 地址為:<a href=“https://github.com/fxsjy/jieba”, target="_blank">https://github.com/fxsjy/jieba

jieba 分詞雖然效果上不如 ICTCLAS 和 ltp,但是勝在 python 編寫,程式碼清晰,擴充套件性好,對 jieba 有改進的想法可以很容易的自己寫程式碼進行魔改。

<a href=“https://segmentfault.com/a/1190000004061791”, target="_blank">jieba分詞學習筆記(一)

0. install

有兩種方式:

  • 進入 cmd:pip install jiebe
  • 在 <a href=“https://pypi.python.org/pypi/jieba/”, target="_blank">https://pypi.python.org/pypi/jieba/,下載 jieba-0.38.zip
    • 解壓後,執行 python setup.py install

1. jieba 的特色

  • 支援三種分詞模式,對於 sentence = '我來到了陝西西安'

    • 精確模式(也是預設模式),試圖將句子最精確地切開,適合文字分析;
    >> '/'.join(jieba.cut(sentence))
    我/來到/了/陝西/西安
    >> '/'.join(jieba.cut(sentence, cut_all=False))
    我/來到/了/陝西/西安
    
    • 全模式,把句子中所有的可以成詞的詞語都掃描出來, 速度非常快,但是不能解決歧義;
    >> '/'.join(jieba.cut(sentence, cut_all=True))
    '我/來到/了/陝西/西西/西安'
    
    • 搜尋引擎模式,在精確模式的基礎上,對長詞再次切分,提高召回率,適合用於搜尋引擎分詞。
    >> '/'.join(jieba.cut_for_search("⼩小明碩⼠士畢業於中國科學院計算所,後在⽇日本京都⼤大學深造"))
    '⼩/小明碩/⼠/士/畢業/於/中國/科學/學院/科學院/中國科學院/計算/計算所/,/後/在/⽇/日本/京都/⼤/大學/深造'
    
  • 支援繁體分詞

  • 支援自定義詞典

  • MIT 授權協議