python調用Hanlp進行命名實體識別

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]
發佈了79 篇原創文章 · 獲贊 23 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章