以jieba为首的主流分词工具总结
工具篇
下面列了幾個較為主流的分詞工具(排名不分先后,大家自行試用),相關的paper請在訂閱號「夕小瑤的賣萌屋」后臺回復【中文分詞】領取。
1 Jieba
說到分詞工具第一個想到的肯定是家喻戶曉的“結巴”中文分詞,主要算法是前面講到的基于統計的最短路徑詞圖切分,近期還內置了百度飛槳的預訓練模型+大規模蒸餾的前沿分詞模型。
github項目地址:https://github.com/fxsjy/jieba
?
2 THULAC(THU Lexical Analyzer for Chinese)
由清華大學自然語言處理與社會人文計算實驗室研制推出的一套中文詞法分析工具包,具有中文分詞和詞性標注功能。該工具所采用的分詞模型為結構化感知機。更多算法細節請參考github項目和閱讀論文原文。
github項目地址:https://github.com/thunlp/THULAC
論文鏈接:https://www.mitpressjournals.org/doi/pdf/10.1162/coli.2009.35.4.35403
使用示例:
#THULAC #pip install thulac import thulacsentence = "不會講課的程序員不是一名好的算法工程師" thu1 = thulac.thulac(seg_only=True) #只分詞 text = thu1.cut(sentence, text=True) #進行一句話分詞 print("THULAC: " + text)#output #Model loaded succeed #THULAC: 不 會 講課 的 程序員 不 是 一 名 好 的 算法 工程師?
3 NLPIR-ICTCLAS漢語分詞系統
北京理工大學海量語言信息處理與云計算工程研究中心大數據搜索與挖掘實驗室( Big Data Search and Mining Lab.BDSM@BIT)發布。是基于層次HMM的分詞庫,將分詞、POS、NER等都納入到了一個層次HMM的框架之下聯合訓練得到。
主頁:http://ictclas.nlpir.org/github
項目地址:https://github.com/tsroten/pynlpir
使用示例:
#NLPIR-ICTCLAS #pip install pynlpir import pynlpirsentence = "不會講課的程序員不是一名好的算法工程師" pynlpir.open() tokens = [x[0] for x in pynlpir.segment(sentence)] print("NLPIR-TCTCLAS: " + " ".join(tokens)) pynlpir.close()#output #NLPIR-TCTCLAS: 不 會 講課 的 程序員 不 是 一 名 好 的 算法 工程?
4 LTP
哈工大出品,同THULAC一樣,LTP也是基于結構化感知器(Structured Perceptron, SP),以最大熵準則學習的分詞模型。
項目主頁:https://www.ltp-cloud.com/github
項目地址:https://github.com/HIT-SCIR/ltp
論文鏈接:http://jcip.cipsc.org.cn/CN/abstract/abstract1579.shtml
使用示例:使用前需下載分詞模型(http://ltp.ai/download.html)
5 HanLP
HanLP是隨《自然語言處理入門》配套開源的一系列NLP算法庫。除了經典的1.x版本在不斷迭代更新以外,今年還全新推出了2.0版本。1.x版本有有基于詞典的分詞工具和基于CRF的切詞模型。2.0版本開源了基于深度學習算法的分詞工具。
1.x版本
github項目地址:https://github.com/hankcs/pyhanlp
2.0版本
github地址:https://github.com/hankcs/HanLP/tree/doc-zh
使用示例:要求Python 3.6以上使用
#HanLP #v2.0 #pip install hanlp import hanlpsentence = "不會講課的程序員不是一名好的算法工程師" tokenizer = hanlp.load('PKU_NAME_MERGED_SIX_MONTHS_CONVSEG') tokens = tokenizer(sentence) print("hanlp 2.0: " + " ".join(tokens)) #output #hanlp 2.0: 不 會 講課 的 程序員 不 是 一 名 好 的 算法 工程?
6 Stanford CoreNLP
斯坦福推出的切詞工具,可以支持多種語言。算法核心是基于CRF模型。
github項目地址:https://github.com/Lynten/stanford-corenlp
論文鏈接:https://nlp.stanford.edu/pubs/sighan2005.pdf
使用示例:需要先從stanford官網下載中文切詞模型(https://stanfordnlp.github.io/CoreNLP/)
###stanford CoreNLP #pip install stanfordcorenlp from stanfordcorenlp import StanfordCoreNLPsentence = "不會講課的程序員不是一名好的算法工程師" with StanfordCoreNLP(r'stanford-chinese-corenlp-2018-10-05-models', lang='zh') as nlp:print("stanford: " + " ".join(nlp.word_tokenize(sentence)))總結
以上是生活随笔為你收集整理的以jieba为首的主流分词工具总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卖萌屋原创专辑首发,算法镇魂三部曲!
- 下一篇: 分类问题后处理技巧CAN,近乎零成本获取