繼續中文分詞在線PK之旅,上文《五款中文分詞工具在線PK: Jieba, SnowNLP, PkuSeg, THULAC, HanLP》我們選擇了5個中文分詞開源工具,這次再追加3個,分別是FoolNLTK、哈工大LTP(pyltp, ltp的python封裝)、斯坦福大學的CoreNLP(stanfordcorenlp is a Python wrapper for Stanford CoreNLP),現在可以在AINLP公眾號測試一下:中文分詞 我愛自然語言處理
以下是在Python3.x & Ubuntu16.04 的環境下測試及安裝這些中文分詞器:
6)FoolNLTK:https:// github.com/rockyzhengwu /FoolNLTK
特點
可能不是最快的開源中文分詞,但很可能是最準的開源中文分詞 基於BiLSTM模型訓練而成 包含分詞,詞性標註,實體識別, 都有比較高的準確率 用戶自定義詞典 可訓練自己的模型 批量處理 定製自己的模型 get clone https:// github.com/rockyzhengwu /FoolNLTK.git
cd FoolNLTK/train
詳細訓練步驟可參考文檔
僅在linux Python3 環境測試通過
安裝,依賴TensorFlow, 會自動安裝:
pip install foolnltk中文分詞示例:
7) LTP: https:// github.com/HIT-SCIR/ltp
pyltp: https:// github.com/HIT-SCIR/pyl tp
pyltp 是 語言技術平台(Language Technology Platform, LTP) 的 Python 封裝。
安裝 pyltp
註:由於新版本增加了新的第三方依賴如dynet等,不再支持 windows 下 python2 環境。 使用 pip 安裝 使用 pip 安裝前,請確保您已安裝了 pip $ pip install pyltp 接下來,需要下載 LTP 模型文件。 下載地址 - `模型下載 http:// ltp.ai/download.html `_ 當前模型版本 - 3.4.0
注意在windows下 3.4.0 版本的 語義角色標註模塊 模型需要單獨下載,具體查看下載地址鏈接中的說明。
請確保下載的模型版本與當前版本的 pyltp 對應,否則會導致程序無法正確載入模型。 從源碼安裝 您也可以選擇從源代碼編譯安裝 $ git clone https:// github.com/HIT-SCIR/pyl tp $ git submodule init $ git submodule update $ python setup.py install 安裝完畢後,也需要下載相應版本的 LTP 模型文件。
這裡使用"pip install pyltp"安裝,安裝完畢後在LTP模型頁面下載模型數據:http:// ltp.ai/download.html ,我下載的是 ltp_data_v3.4.0.zip ,壓縮文件有600多M,解壓後1.2G,裡面有不同NLP任務的模型。
中文分詞示例:
8) Stanford CoreNLP: https:// stanfordnlp.github.io/C oreNLP/
stanfordcorenlp: https:// github.com/Lynten/stanf ord-corenlp 這裡用的是斯坦福大學CoreNLP的python封裝:stanfordcorenlp
stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.
安裝很簡單,pip即可:
pip install stanfordcorenlp
但是要使用中文NLP模塊需要下載兩個包,在CoreNLP的下載頁面下載模型數據及jar文件,目前官方是3.9.1版本:
https:// nlp.stanford.edu/softwa re/corenlp-backup-download.html
第一個是:stanford-corenlp-full-2018-02-27.zip
第二個是:stanford-chinese-corenlp-2018-02-27-models.jar前者解壓後把後者也要放進去,否則指定中文的時候會報錯。
中文分詞使用示例:
最後再說一下,原本計劃加上對NLPIR中文分詞器的支持,但是發現它的license需要定期更新,對於長久放server端測試不太方便就放棄了;另外之所以選擇python,因為我用了Flask restful api框架,也歡迎推薦其他的中文分詞開源框架,如果它們有很好的Python封裝的話,這裡可以繼續添加。
推薦閱讀: