近日,小米NLP團隊開源了其分詞工具minlp-tokenizer,該分詞工具支持細粒度和粗粒度分詞,且能夠添加用戶自定義詞典。
項目地址:https://github.com/XiaoMi/MiNLP
1. 工具介紹MiNLP-Tokenizer是小米AI實驗室NLP團隊自研的中文分詞工具,基於深度學習序列標註模型實現,在公開測試集上取得了SOTA效果。其具備以下特點:
分詞效果好:基於深度學習模型在大規模語料上進行訓練,粗、細粒度在SIGHAN 2005 PKU測試集上的F1分別達到95.7%和96.3%[注1]
輕量級模型:精簡模型參數和結構,模型僅有20MB
詞典可定製:靈活、方便的幹預機制,根據用戶詞典對模型結果進行幹預
多粒度切分:提供粗、細粒度兩種分詞規範,滿足各種場景需要
調用更便捷:一鍵快速安裝,API簡單易用
注1:我們結合公司應用場景,制定了粗、細粒度分詞規範,並按照規範對PKU測試集重新進行了標註(由於測試集版權限制,未包含在本項目中)。
pip全自動安裝:
pip install minlp-tokenizer
適用環境:Python 3.5~3.7,TensorFlow>=1.15,<2
from minlptokenizer.tokenizer import MiNLPTokenizer
tokenizer = MiNLPTokenizer(granularity='fine') # fine:細粒度,coarse:粗粒度,默認為細粒度
print(tokenizer.cut('今天天氣怎麼樣?'))
from minlptokenizer.tokenizer import MiNLPTokenizer
tokenizer = MiNLPTokenizer(['word1', 'word2'], granularity='fine') #用戶自定義幹預詞典傳入
from minlptokenizer.tokenizer import MiNLPTokenizer
tokenizer = MiNLPTokenizer('/path/to/your/lexicon/file', granularity='coarse') # 構造函數的參數為用戶詞典路徑
MiNLP是小米AI實驗室NLP團隊開發的小米自然語言處理平臺,目前已經具備詞法、句法、語義等數十個功能模塊,在公司業務中得到了廣泛應用。第一階段我們開源了MiNLP的中文分詞功能,後續我們將陸續開源詞性標註、命名實體識別、句法分析等功能,和開發者一起打造功能強大、效果領先的NLP工具集。