1. 程式人生 > >Python呼叫PYNIPIR(ICTCLAS)進行中文分詞

Python呼叫PYNIPIR(ICTCLAS)進行中文分詞

NLPIR漢語分詞系統,主要功能包括中文分詞;詞性標註;命名實體識別;使用者詞典功能;支援GBK編碼、UTF8編碼、BIG5編碼。新增微博分詞、新詞發現與關鍵詞提取;張華平博士先後傾力打造十餘年,核心升級10次。(http://ictclas.nlpir.org/

NLPIR系統提供了豐富的程式設計介面,包括JAVA、C、C#,當然還有Python。其中利用Python呼叫分詞功能,需要安裝PYNLPIR的包。
GIT專案的地址:https://github.com/tsroten/pynlpir
(神奇的是由一個美國人來維護的)

安裝了pip工具的可以直接使用pip命令安裝:

pip install
pynlpir

安裝好之後,趕緊來試試基本操作:

分詞環境初始化操作:

import pynlpir  # 引入依賴包
pynlpir.open()  # 開啟分詞器
s = 'NLPIR分詞系統前身為2000年釋出的ICTCLAS詞法分析系統,從2009年開始,為了和以前工作進行大的區隔,並推廣NLPIR自然語言處理與資訊檢索共享平臺,調整命名為NLPIR分詞系統。'  # 實驗文字

基本分詞操作:

pynlpir.segment(s)  # 預設開啟分詞和詞性標註功能
# 樣本輸出: [('NLPIR', 'noun'), ('分詞', 'verb'), ('系統', 'noun'
), ('前身', 'noun'), ('為', 'preposition'), ('2000年', 'time word'), ('釋出', 'verb'), . . . ]

當有時候我們只想要分詞結果,而不要詞性標註結果的時候,可以通過設定pos_tagging關閉,當需要詞性標註結果為中文時候可以通過pos_english設定。

pynlpir.segment(s, pos_english=False)   # 把詞性標註語言變更為漢語
pynlpir.segment(s, pos_tagging=False)   # 使用pos_tagging來關閉詞性標註

新增自定義詞語:
很多時候,我們需要在基礎詞典上新增自定義的詞彙,適應特定的分詞任務,這時候可以用以下方法:

from ctypes import c_char_p
pynlpir.nlpir.AddUserWord(c_char_p("自定義詞彙".encode()))

使用結束後釋放記憶體:

pynlpir.close()