溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

自然語言處理工具包HanLP的Python接口是怎么樣的

發(fā)布時間:2021-10-27 17:08:09 來源:億速云 閱讀:197 作者:柒染 欄目:關(guān)系型數(shù)據(jù)庫

今天就跟大家聊聊有關(guān)自然語言處理工具包HanLP的Python接口是怎么樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

pyhanlp: Python interfaces for HanLP

HanLP的Python接口,支持自動下載與升級HanLP,兼容py2、py3。

安裝

pip install pyhanlp

使用命令hanlp來驗(yàn)證安裝,如因網(wǎng)絡(luò)等原因自動安裝HanLP失敗,可參考 《手動配置》 。

命令行

中文分詞

使用命令hanlp segment進(jìn)入交互分詞模式,輸入一個句子并回車,HanLP會輸出分詞結(jié)果:

$ hanlp segment
商品和服務(wù)
商品/n 和/cc 服務(wù)/vn
當(dāng)下雨天地面積水分外嚴(yán)重
當(dāng)/p 下雨天/n 地面/n 積水/n 分外/d 嚴(yán)重/a
龔學(xué)平等領(lǐng)導(dǎo)說,鄧穎超生前杜絕超生
龔學(xué)平/nr 等/udeng 領(lǐng)導(dǎo)/n 說/v ,/w 鄧穎超/nr 生前/t 杜絕/v 超生/vi

還可以重定向輸入輸出到文件等:

$ hanlp segment <<< '歡迎新老師生前來就餐'               歡迎/v 新/a 老/a 師生/n 前來/vi 就餐/vi

依存句法分析

命令為hanlp parse,同樣支持交互模式和重定向:

$ hanlp parse <<< '徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標(biāo)。'         1	徐先生	徐先生	nh	nr	_	4	主謂關(guān)系	_	_2	還	還	d	d	_	4	狀中結(jié)構(gòu)	_	_3	具體	具體	a	a	_	4	狀中結(jié)構(gòu)	_	_4	幫助	幫助	v	v	_	0	核心關(guān)系	_	_5	他	他	r	rr	_	4	兼語	_	_6	確定	確定	v	v	_	4	動賓關(guān)系	_	_7	了	了	u	ule	_	6	右附加關(guān)系	_	_8	把	把	p	pba	_	15	狀中結(jié)構(gòu)	_	_9	畫	畫	v	v	_	8	介賓關(guān)系	_	_10	雄鷹	雄鷹	n	n	_	9	動賓關(guān)系	_	_11	、	、	wp	w	_	12	標(biāo)點(diǎn)符號	_	_12	松鼠	松鼠	n	n	_	10	并列關(guān)系	_	_13	和	和	c	cc	_	14	左附加關(guān)系	_	_14	麻雀	麻雀	n	n	_	10	并列關(guān)系	_	_15	作為	作為	p	p	_	6	動賓關(guān)系	_	_16	主攻	主攻	v	vn	_	17	定中關(guān)系	_	_17	目標(biāo)	目標(biāo)	n	n	_	15	動賓關(guān)系	_	_18	。	。	wp	w	_	4	標(biāo)點(diǎn)符號	_	_

服務(wù)器

通過hanlp serve來啟動內(nèi)置的http服務(wù)器,默認(rèn)本地訪問地址為: http://localhost:8765  ;也可以訪問官網(wǎng)演示頁面: http://hanlp.hankcs.com/  。

升級

通過hanlp update命令來將HanLP升級到最新版。該命令會獲取GitHub最新版本并自動下載安裝。

歡迎通過hanlp --help查看最新幫助手冊。

API

通過工具類HanLP調(diào)用常用接口:

from pyhanlp import *print(HanLP.segment('你好,歡迎在Python中調(diào)用HanLP的API'))
testCases = [    "商品和服務(wù)",    "結(jié)婚的和尚未結(jié)婚的確實(shí)在干擾分詞啊",    "買水果然后來世博園最后去世博會",    "中國的首都是北京",    "歡迎新老師生前來就餐",    "工信處女干事每月經(jīng)過下屬科室都要親口交代24口交換機(jī)等技術(shù)性器件的安裝工作",    "隨著頁游興起到現(xiàn)在的頁游繁盛,依賴于存檔進(jìn)行邏輯判斷的設(shè)計減少了,但這塊也不能完全忽略掉。"]for sentence in testCases: print(HanLP.segment(sentence))# 關(guān)鍵詞提取document = "水利部水資源司司長陳明忠9月29日在國務(wù)yuan新聞辦舉行的新聞發(fā)布會上透露," \           "根據(jù)剛剛完成了水資源管理制度的考核,有部分省接近了紅線的指標(biāo)," \           "有部分省超過紅線的指標(biāo)。對一些超過紅線的地方,陳明忠表示,對一些取用水項(xiàng)目進(jìn)行區(qū)域的限批," \           "嚴(yán)格地進(jìn)行水資源論證和取水許可的批準(zhǔn)。"print(HanLP.extractKeyword(document, 2))# 自動摘要print(HanLP.extractSummary(document, 3))# 依存句法分析print(HanLP.parseDependency("徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標(biāo)。"))

更多功能

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

  • 自定義詞典

  • 極速詞典分詞

  • 索引分詞

  • CRF分詞

  • 感知機(jī)詞法分析

  • 臺灣正體、香港繁體

  • 關(guān)鍵詞提取、自動摘要

  • 文本分類、情感分析

請閱讀 HanLP主項(xiàng)目文檔 以了解更多。調(diào)用更底層的API需要參考Java語法用JClass引入更深的類路徑。以感知機(jī)詞法分析器為例,這個類位于包名com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer下,所以先用JClass得到類,然后就可以調(diào)用了:

PerceptronLexicalAnalyzer = JClass('com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer')
analyzer = PerceptronLexicalAnalyzer()print(analyzer.analyze("上海華安工業(yè)(集團(tuán))公司董事長譚旭光和秘書胡花蕊來到美國紐約現(xiàn)代藝術(shù)博物館參觀"))

輸出:

[上海/ns 華安/nz 工業(yè)/n (/w 集團(tuán)/n )/w 公司/n]/nt 董事長/n 譚旭光/nr 和/c 秘書/n 胡花蕊/nr 來到/v [美國/ns 紐約/ns 現(xiàn)代/t 藝術(shù)/n 博物館/n]/ns 參觀/v

如果你經(jīng)常使用某個類,歡迎將其寫入pyhanlp/__init__.py中并提交pull request,謝謝!

與其他項(xiàng)目共享data

HanLP具備高度可自定義的特點(diǎn),所有模型和詞典都可以自由替換。如果你希望與別的項(xiàng)目共享同一套data,只需將該項(xiàng)目的配置文件hanlp.properties拷貝到pyhanlp的安裝目錄下即可。本機(jī)安裝目錄可以通過hanlp --version獲取。

同時,還可以通過--config臨時加載另一個配置文件:

hanlp segment --config path/to/another/hanlp.properties

配置

自動配置

默認(rèn)在首次調(diào)用HanLP時自動下載jar包和數(shù)據(jù)包,并自動完成配置。

手動配置

如因網(wǎng)絡(luò)等原因自動配置失敗,可以通過設(shè)置環(huán)境變量來自定義HanLP版本和數(shù)據(jù)位置。

變量名默認(rèn)值備注
HANLP_STATIC_ROOTpyhanlp所在安裝路徑的static文件夾配置文件hanlp.properties所在的目錄
HANLP_JAR_PATHpyhanlp所在安裝路徑的static文件夾HanLP jar 包位置
HANLP_JVM_XMS1gJava 虛擬機(jī) 初始申請內(nèi)存大小
HANLP_JVM_XMX1gJava 虛擬機(jī) 可占用的最大內(nèi)存
HANLP_GOOGLE_UAUA-XXXXX-XGoogle Analytics 網(wǎng)站 id
HANLP_VERBOSE
調(diào)試日志開關(guān)

注意:

  1. 使用pip初次安裝 pyhanlp 后,不設(shè)置上述變量,程序會自動下載所需依賴到默認(rèn)位置。如果是設(shè)置了上述變量,則不進(jìn)行下載。因?yàn)槲募容^大,網(wǎng)絡(luò)下載穩(wěn)定性等原因,建議提前準(zhǔn)備好 jar 包, 配置文件 和 data ,并使用環(huán)境變量進(jìn)行配置。

  2. 保證 hanlp.properties 中的 root 是指向正確的data路徑。

比如:

export HANLP_JAR_PATH=/hanlp/hanlp-portable-1.6.0.jarexport HANLP_STATIC_ROOT=/hanlp

就需要保證有如下的目錄結(jié)構(gòu):

hanlp├── data│   ├── README.url│   ├── dictionary│   └── model├── hanlp.properties└── hanlp-portable-1.6.0.jar

測試

git clone https://github.com/hankcs/pyhanlp.gitcd pyhanlp
pip install -r requirements.txt # 安裝依賴export HANLP_JAR_PATH=          # 配置環(huán)境變量export HANLP_STATIC_ROOT=       # 配置環(huán)境變量python tests/test_hanlp.py      # 執(zhí)行測試

授權(quán)協(xié)議

Apache License 2.0

看完上述內(nèi)容,你們對自然語言處理工具包HanLP的Python接口是怎么樣的有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI