python分詞工具哪家強
大家好,歡迎來到 Crossin的編程教室 !
分詞是自然語言處理中非常常見的應用場景,比如從一篇文章中自動提取關(guān)鍵詞就需要用到分詞工具,中文搜索領(lǐng)域同樣離不開分詞。python中,有很多開源的分詞工具。今天就來給大家介紹以下比較常用的幾款。
1. jieba 分詞
“結(jié)巴”分詞,GitHub最受歡迎的分詞工具,立志做最好的 Python 中文分詞組件,支持多種分詞模式,支持自定義詞典。
github star:26k
代碼示例
import?jieba
strs=["我來到北京清華大學","乒乓球拍賣完了","中國科學技術(shù)大學"]
for?str?in?strs:
????seg_list?=?jieba.cut(str,use_paddle=True)?#?使用paddle模式
????print("Paddle?Mode:?"?+?'/'.join(list(seg_list)))
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("他來到了網(wǎng)易杭研大廈")??#?默認是精確模式
print("新詞識別:",?",".join(seg_list))
seg_list?=?jieba.cut_for_search("小明碩士畢業(yè)于中國科學院計算所,后在日本京都大學深造")??#?搜索引擎模式
print("搜索引擎模式:",?".join(seg_list))
輸出:
【全模式】:?我/?來到/?北京/?清華/?清華大學/?華大/?大學
【精確模式】:?我/?來到/?北京/?清華大學
【新詞識別】:他, 來到, 了, 網(wǎng)易, 杭研, 大廈????(此處,“杭研”并沒有在詞典中,但是也被Viterbi算法識別出來了)
【搜索引擎模式】:?小明, 碩士, 畢業(yè), 于, 中國, 科學, 學院, 科學院, 中國科學院, 計算, 計算所, 后, 在, 日本, 京都, 大學, 日本京都大學, 深造
github地址:
https://github.com/fxsjy/jieba
2. pkuseg 分詞
pkuseg 是北大語言計算與機器學習研究組開源的一款分詞工具,它的特點是支持多領(lǐng)域分詞,目前支持新聞領(lǐng)域,網(wǎng)絡(luò)領(lǐng)域,醫(yī)藥領(lǐng)域,旅游領(lǐng)域,以及混合領(lǐng)域的分詞預訓練模型,用戶可以自由地選擇不同的模型。相比通用分詞工具,它的分詞準確率更高 。
github star:5.4k
代碼示例
import?pkuseg
seg?=?pkuseg.pkuseg()???????????#?以默認配置加載模型
text?=?seg.cut('python是一門很棒的語言')??#?進行分詞
print(text)
輸出
['python',?'是',?'一',?'門',?'很',?'棒',?'的',?'語言']
github地址:
https://github.com/lancopku/pkuseg-python
3. FoolNLTK 分詞
基于BiLSTM模型訓練而成,據(jù)說可能是最準的開源中文分詞,同樣支持用戶自定義詞典。
GitHub ?star: 1.6k
代碼示例
import?fool
text?=?"一個傻子在北京"
print(fool.cut(text))
#?['一個',?'傻子',?'在',?'北京']
github地址:
https://github.com/rockyzhengwu/FoolNLTK
4. THULAC
THULAC由清華大學自然語言處理與社會人文計算實驗室研制推出的一套中文詞法分析工具包。具有詞性標注功能,能分析出某個詞是名詞還是動詞或者形容詞。
github star:1.5k
?代碼示例1
??代碼示例1
?import?thulac??
?thu1?=?thulac.thulac()??#默認模式
?text?=?thu1.cut("我愛北京天安門",?text=True)??#進行一句話分詞
?print(text)?#?我_r?愛_v?北京_ns?天安門_ns
?代碼示例2
?thu1?=?thulac.thulac(seg_only=True)??#只進行分詞,不進行詞性標注
?thu1.cut_f("input.txt",?"output.txt")??#對input.txt文件內(nèi)容進行分詞,輸出到output.txt
github地址:
https://github.com/thunlp/THULAC-Python
目前我在用的還是結(jié)巴分詞,配合用戶自定義詞典,解決常見的網(wǎng)絡(luò)詞語,基本上就能滿足我在項目中的需求。
你在用什么分詞工具?歡迎留言討論。
感謝轉(zhuǎn)發(fā)和點贊的各位~
作者:劉志軍
來源:Python之禪_往期文章推薦_
【編程課堂】jieba-中文分詞利器