HanLP的Python接口,支持自動下載與升級HanLP,兼容py二、py3。python
安裝git
pip install pyhanlpgithub
使用命令hanlp來驗證安裝,如因網絡等緣由自動安裝失敗,可參考手動配置或Windows指南。安全
命令行服務器
中文分詞網絡
使用命令hanlp segment進入交互分詞模式,輸入一個句子並回車,HanLP會輸出分詞結果:多線程
$ hanlp segment工具
商品和服務測試
商品/n 和/cc 服務/vnspa
當下雨天地面積水分外嚴重
當/p 下雨天/n 地面/n 積水/n 分外/d 嚴重/a
龔學平等領導說,鄧穎超生前杜絕超生
龔學平/nr 等/udeng 領導/n 說/v ,/w 鄧穎超/nr 生前/t 杜絕/v 超生/vi
還能夠重定向輸入輸出到文件等:
$ hanlp segment <<< '歡迎新老師生前來就餐'
歡迎/v 新/a 老/a 師生/n 前來/vi 就餐/vi
依存句法分析
命令爲hanlp parse,一樣支持交互模式和重定向:
服務器
經過hanlp serve來啓動內置的http服務器,默認本地訪問地址爲:http://localhost:8765 ;也能夠訪問官網演示頁面:http://hanlp.hankcs.com/ 。
升級
經過hanlp update命令來將HanLP升級到最新版。該命令會獲取HanLP主項目最新版本並自動下載安裝。
歡迎經過hanlp --help查看最新幫助手冊。
API
經過工具類HanLP調用經常使用接口:
from pyhanlp import *
print(HanLP.segment('你好,歡迎在Python中調用HanLP的API'))
for term in HanLP.segment('下雨天地面積水'):
print('{}\t{}'.format(term.word, term.nature)) # 獲取單詞與詞性
testCases = [
"商品和服務",
"結婚的和還沒有結婚的確實在干擾分詞啊",
"買水果真後來世博園最後去世博會",
"中國的首都是北京",
"歡迎新老師生前來就餐",
"工信處女幹事每個月通過下屬科室都要親口交代24口交換機等技術性器件的安裝工做",
"隨着頁遊興起到如今的頁遊繁盛,依賴於存檔進行邏輯判斷的設計減小了,但這塊也不能徹底忽略掉。"]
for sentence in testCases: print(HanLP.segment(sentence))
# 關鍵詞提取
document = "水利部水資源司司長陳明忠9月29日在國務院新聞辦舉行的新聞發佈會上透露," \
"根據剛剛完成了水資源管理制度的考覈,有部分省接近了紅線的指標," \
"有部分省超過紅線的指標。對一些超過紅線的地方,陳明忠表示,對一些取用水項目進行區域的限批," \
"嚴格地進行水資源論證和取水許可的批准。"
print(HanLP.extractKeyword(document, 2))
# 自動摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生還具體幫助他肯定了把畫雄鷹、松鼠和麻雀做爲主攻目標。"))
更多功能
更多功能,包括但不限於:
請閱讀HanLP主項目文檔和demos目錄以瞭解更多。調用更底層的API須要參考Java語法用JClass引入更深的類路徑。以感知機詞法分析器爲例,這個類位於包名com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer下,因此先用JClass獲得類,而後就能夠調用了:
PerceptronLexicalAnalyzer = JClass('com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer')
analyzer = PerceptronLexicalAnalyzer()
print(analyzer.analyze("上海華安工業(集團)公司董事長譚旭光和祕書胡花蕊來到美國紐約現代藝術博物館參觀"))
輸出:
[上海/ns 華安/nz 工業/n (/w 集團/n )/w 公司/n]/nt 董事長/n 譚旭光/nr 和/c 祕書/n 胡花蕊/nr 來到/v [美國/ns 紐約/ns 現代/t 藝術/n 博物館/n]/ns 參觀/v
若是你須要多線程安全性,可以使用SafeJClass;若是你須要延遲加載,可以使用LazyLoadingJClass。若是你常常使用某個類,歡迎將其寫入pyhanlp/__init__.py中並提交pull request,謝謝!
與其餘項目共享data
HanLP具有高度可自定義的特色,全部模型和詞典均可以自由替換。若是你但願與別的項目共享同一套data,只需將該項目的配置文件hanlp.properties拷貝到pyhanlp的安裝目錄下便可。本機安裝目錄能夠經過hanlp --version獲取。
同時,還能夠經過--config臨時加載另外一個配置文件:
hanlp segment --config path/to/another/hanlp.properties
測試
git clone https://github.com/hankcs/pyhanlp.git
cd pyhanlp
pip install -e .
python tests/test_hanlp.py
文章轉載自github.com/hankcs/pyhanlp