pyhanlp:hanlp的python接口

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("徐先生還具體幫助他肯定了把畫雄鷹、松鼠和麻雀做爲主攻目標。"))

 

更多功能

更多功能,包括但不限於:

  1. 自定義詞典
  2. 極速詞典分詞
  3. 索引分詞
  4. CRF分詞
  5. 感知機詞法分析
  6. 臺灣正體、香港繁體
  7. 關鍵詞提取、自動摘要
  8. 文本分類、情感分析

請閱讀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

相關文章
相關標籤/搜索