pyhanlp: Python interfaces for HanLP HanLP的Python接口,支持自動下載與升級HanLP,兼容py二、py3。python
安裝 pip install pyhanlp 使用命令hanlp來驗證安裝,如因網絡等緣由自動安裝HanLP失敗,可參考《手動配置》。git
命令行 中文分詞 使用命令hanlp segment進入交互分詞模式,輸入一個句子並回車,HanLP會輸出分詞結果:github
$ hanlp segment 商品和服務 商品/n 和/cc 服務/vn 當下雨天地面積水分外嚴重 當/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 parse <<< '徐先生還具體幫助他肯定了把畫雄鷹、松鼠和麻雀做爲主攻目標。'
1 徐先生 徐先生 nh nr _ 4 主謂關係 _ _ 2 還 還 d d _ 4 狀中結構 _ _ 3 具體 具體 a a _ 4 狀中結構 _ _ 4 幫助 幫助 v v _ 0 核心關係 _ _ 5 他 他 r rr _ 4 兼語 _ _ 6 肯定 肯定 v v _ 4 動賓關係 _ _ 7 了 了 u ule _ 6 右附加關係 _ _ 8 把 把 p pba _ 15 狀中結構 _ _ 9 畫 畫 v v _ 8 介賓關係 _ _ 10 雄鷹 雄鷹 n n _ 9 動賓關係 _ _ 11 、 、 wp w _ 12 標點符號 _ _ 12 松鼠 松鼠 n n _ 10 並列關係 _ _ 13 和 和 c cc _ 14 左附加關係 _ _ 14 麻雀 麻雀 n n _ 10 並列關係 _ _ 15 做爲 做爲 p p _ 6 動賓關係 _ _ 16 主攻 主攻 v vn _ 17 定中關係 _ _ 17 目標 目標 n n _ 15 動賓關係 _ _ 18 。 。 wp w _ 4 標點符號 _ _ 服務器 經過hanlp serve來啓動內置的http服務器,默認本地訪問地址爲:http://localhost:8765 ;也能夠訪問官網演示頁面:hanlp.hankcs.com/ 。工具
升級 經過hanlp update命令來將HanLP升級到最新版。該命令會獲取GitHub最新版本並自動下載安裝。測試
歡迎經過hanlp --help查看最新幫助手冊。網站
API 經過工具類HanLP調用經常使用接口:ui
from pyhanlp import *url
print(HanLP.segment('你好,歡迎在Python中調用HanLP的API')) 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("徐先生還具體幫助他肯定了把畫雄鷹、松鼠和麻雀做爲主攻目標。")) 更多功能 更多功能,包括但不限於:
自定義詞典 極速詞典分詞 索引分詞 CRF分詞 感知機詞法分析 臺灣正體、香港繁體 關鍵詞提取、自動摘要 文本分類、情感分析 請閱讀HanLP主項目文檔以瞭解更多。調用更底層的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 若是你常常使用某個類,歡迎將其寫入pyhanlp/init.py中並提交pull request,謝謝!
與其餘項目共享data HanLP具有高度可自定義的特色,全部模型和詞典均可以自由替換。若是你但願與別的項目共享同一套data,只需將該項目的配置文件hanlp.properties拷貝到pyhanlp的安裝目錄下便可。本機安裝目錄能夠經過hanlp --version獲取。
同時,還能夠經過--config臨時加載另外一個配置文件:
hanlp segment --config path/to/another/hanlp.properties 配置 自動配置 默認在首次調用HanLP時自動下載jar包和數據包,並自動完成配置。
手動配置 如因網絡等緣由自動配置失敗,能夠經過設置環境變量來自定義HanLP版本和數據位置。
變量名 默認值 備註 HANLP_STATIC_ROOT pyhanlp所在安裝路徑的static文件夾 配置文件hanlp.properties所在的目錄 HANLP_JAR_PATH pyhanlp所在安裝路徑的static文件夾 HanLP jar 包位置 HANLP_JVM_XMS 1g Java 虛擬機 初始申請內存大小 HANLP_JVM_XMX 1g Java 虛擬機 可佔用的最大內存 HANLP_GOOGLE_UA UA-XXXXX-X Google Analytics 網站 id HANLP_VERBOSE 0 調試日誌開關 注意:
使用pip初次安裝 pyhanlp 後,不設置上述變量,程序會自動下載所需依賴到默認位置。若是是設置了上述變量,則不進行下載。由於文件比較大,網絡下載穩定性等緣由,建議提早準備好jar包,配置文件和data,並使用環境變量進行配置。
保證 hanlp.properties 中的 root 是指向正確的data路徑。
好比:
export HANLP_JAR_PATH=/hanlp/hanlp-portable-1.6.0.jar export HANLP_STATIC_ROOT=/hanlp 就須要保證有以下的目錄結構:
hanlp ├── data │ ├── README.url │ ├── dictionary │ └── model ├── hanlp.properties └── hanlp-portable-1.6.0.jar 測試 git clone github.com/hankcs/pyha… cd pyhanlp pip install -r requirements.txt # 安裝依賴 export HANLP_JAR_PATH= # 配置環境變量 export HANLP_STATIC_ROOT= # 配置環境變量 python tests/test_hanlp.py # 執行測試 受權協議 Apache License 2.0