python呼叫Hanlp進行命名實體識別
阿新 • • 發佈:2019-01-22
1 python與jdk版本位數一致
2 pip install jpype1(python3.5)
3 類庫hanlp.jar包、模型data包、配置檔案hanlp.properties放在一個新建目錄
4 修改hanlp.properties中root根目錄,找到data
程式碼呼叫如下:
#coding:utf-8
'''
Created on 2017-11-21
@author: 劉帥
'''
from jpype import *
startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanlp\hanlp-1.3.4.jar;D:\hanlp" , "-Xms1g", "-Xmx1g") # 啟動JVM,Linux需替換分號;為冒號:
HanLP = JClass('com.hankcs.hanlp.HanLP')
# 中文分詞
print(HanLP.segment('你好,歡迎在Python中呼叫HanLP的API'))
testCases = [
"商品和服務",
"結婚的和尚未結婚的確實在干擾分詞啊",
"買水果然後來世博園最後去世博會",
"中國的首都是北京",
"歡迎新老師生前來就餐",
"工信處女幹事每月經過下屬科室都要親口交代24口交換機等技術性器件的安裝工作",
"隨著頁遊興起到現在的頁遊繁盛,依賴於存檔進行邏輯判斷的設計減少了,但這塊也不能完全忽略掉。" ]
for sentence in testCases: print(HanLP.segment(sentence))
# 命名實體識別與詞性標註
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('中國科學院計算技術研究所的宗成慶教授正在教授自然語言處理課程'))
# 關鍵詞提取
document = "水利部水資源司司長陳明忠9月29日在國務院新聞辦舉行的新聞釋出會上透露," \
"根據剛剛完成了水資源管理制度的考核,有部分省接近了紅線的指標," \
"有部分省超過紅線的指標。對一些超過紅線的地方,陳明忠表示,對一些取用水專案進行區域的限批," \
"嚴格地進行水資源論證和取水許可的批准。"
print(HanLP.extractKeyword(document, 2))
# 自動摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標。"))
shutdownJVM()
結果如下:
[你好/vl, ,/w, 歡迎/v, 在/p, Python/nx, 中/f, 呼叫/v, HanLP/nx, 的/ude1, API/nx]
[商品/n, 和/cc, 服務/vn]
[結婚/vi, 的/ude1, 和/cc, 尚未/d, 結婚/vi, 的/ude1, 確實/ad, 在/p, 干擾/vn, 分詞/n, 啊/y]
[買/v, 水果/n, 然後/c, 來/vf, 世博園/n, 最後/f, 去/vf, 世博會/n]
[中國/ns, 的/ude1, 首都/n, 是/vshi, 北京/ns]
[歡迎/v, 新/a, 老/a, 師生/n, 前來/vi, 就餐/vi]