Python中文分词神器---jieba
Python中文分詞神器---jieba
- jieba簡介
- 安裝
- 特性
- 三種分詞模式
- 支持繁體分詞
- 支持自定義詞典
- 支持新詞識別
- 功能
- 分詞
- 精準模式與全模式
- 搜索引擎模式
- 細節
- 添加自定義詞典
- 分詞并返回詞語在原文的起始位置
- 并行分詞
- 延遲加載
- 官網鏈接
jieba簡介
相比英語等語言,用中文寫成的文章往往更難分詞。英語文章可以用空格來進行單次的區分,而中文詞組則連成一片。讓機器將中文詞組分離的難度遠大于在文言文分詞題掙扎的我們,而Python的第三方庫jieba就是用來處理這個問題的,讓機器也能分離中文詞組。
相比于其他免費中文分詞庫,jieba是更加成熟的。
安裝
pip install jieba特性
三種分詞模式
上述內容引用自jieba官網
支持繁體分詞
支持自定義詞典
支持新詞識別
像是公司名,地名,這類詞也能夠被jieba識別出來。
新詞的含義是指在訓練jieba時,沒有出現在數據集中的詞。新詞識別基于Viterbi算法。
功能
分詞
精準模式與全模式
jieba.cut(sentence, cut_all=False, HMM=True, use_paddle=False)
sentence: 需要進行分詞的語句
cut_all: 是否開啟全模式,取值為布爾值,默認為精準模式。
HMM與use_paddle可以先不理會,使用默認模式即可。
示例:
搜索引擎模式
jieba.cut_for_search(sentence, HMM=True)
sentence: 需要進行分詞的語句
細節
想對比三者的區別,還是用jupyter notebook更好觀察。
因為全模式與搜索引擎模式都是以精準模式為基礎設計的,所以我們主要比較全模式與精準模式以及搜索引擎模式與精準模式的不同。
比如:
月光明
精準模式: 月,光明
全模式: 月光,光明
而精準模式是將詞頻(由訓練的數據集決定,也可人為更改)更高的詞組展示出來,不會重復使用同一個字。
這首詩不能體現出搜索引擎與精準模式的區別,之所以展示出來,是想表明一件事,即,搜索引擎模式在大部分情況下與精準模式的結果是相同的。只有在某些特殊情況,會有部分文本與全模式類似。
可以將搜索引擎看成兩者的折中產物,既有精準模式的語義(精準模式的詞組個數更少,分出的詞也更符合文本的原意),又有全模式的更多可能(會對精準模式分出的長句再次切分)。所以本人更推薦使用搜索引擎模式及精準模式。
添加自定義詞典
開發者可以指定自己自定義的詞典,以便包含jieba詞庫里沒有的詞。雖然jieba有新詞識別能力,但是自行添加新詞可以保證更高的正確率。
用法: jieba.load_userdict(file_name) # file_name為自定義詞典的路徑
詞典格式和dict.txt一樣,一個詞占一行;每一行分三部分,一部分為詞語,另一部分為詞頻,最后為詞性(可省略),用空格隔開。
上述內容引用自jieba官網
分詞并返回詞語在原文的起始位置
例如:
注:
使用jieba.tokenize()時,使用的分詞模式為精準模式。
并行分詞
原理:將目標文本按行分隔后,把各行文本分配到多個python進程并行分詞,然后歸并結果,從而獲得分詞速度的可觀提升
基于python自帶的multiprocessing模塊,目前暫>不支持windows
用法:
jieba.enable_parallel(4) # 開啟并行分詞模式,參數為并行進程數
jieba.disable_parallel() # 關閉并行分詞模式
上述內容引用自jieba官網
延遲加載
jieba采用延遲加載,"import jieba"不會立即觸發詞典的加載,一旦有必要才開始加載詞典構建trie。如果你想手工初始jieba,也可以手動初始化。
import jieba
jieba.initialize() # 手動初始化(可選)
延遲加載機制僅在jieba的0.28版本及后續版本中生效。
上述內容整理自jieba官網
官網鏈接
jieba的常用功能已講解完畢,如果想對jieba有更多的了解,可以訪問其官網。
碼云:https://gitee.com/fxsjy/jieba
Github: https://github.com/joelost/jieba
總結
以上是生活随笔為你收集整理的Python中文分词神器---jieba的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令行 java文本编辑工具 重
- 下一篇: websocket python爬虫_p