python呼叫hanlp進行命名實體識別

adnb34g發表於2019-07-15


 

本文分享自  6 丁一的貓 的部落格,主要是 python 呼叫 hanlp 進行命名實體識別的方法介紹。以下為分享的全文。

1 python jdk 版本位數一致

2 pip install jpype1 python3.5

3 、類庫 hanlp.jar 包、模型 data 包、配置檔案 hanlp.properties 放在一個新建目錄

4 、修改 hanlp.properties root 根目錄,找到 data

 

 

程式碼呼叫如下:

 

1| #coding:utf-8

2| '''

3| Created on 2017-11-21

4|

5| @author: 劉帥

6| '''

7|

8|

9| from jpype import *

10|

11| startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanlp\hanlp-1.3.4.jar;D:\hanlp", "-Xms1g", "-Xmx1g") # 啟動 JVM Linux 需替換分號 ; 為冒號 :

12| HanLP = JClass('com.hankcs.hanlp.HanLP')

13| # 中文分詞

14| print(HanLP.segment(' 你好,歡迎在 Python 中呼叫 HanLP API'))

testCases = [

15|     " 商品和服務 ",

16|     " 結婚的和尚未結婚的確實在干擾分詞啊 ",

17|     " 買水果然後來世博園最後去世博會 ",

18|     " 中國的首都是北京 ",

19|     " 歡迎新老師生前來就餐 ",

20|     " 工信處女幹事每月經過下屬科室都要親口,交代 24 口,交換機等技術性器件的安裝工作 ",

21|     " 隨著頁遊興起到現在的頁遊繁盛,依賴於存檔進行邏輯判斷的設計減少了,但這塊也不能完全忽略掉。 "]

22| for sentence in testCases: print(HanLP.segment(sentence))

23| # 命名實體識別與詞性標註

24| NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')

25| print(NLPTokenizer.segment(' 中國科學院計算技術研究所的宗成慶教授正在教授自然語言處理課程 '))

26| # 關鍵詞提取

27| document = " 水利部水資源司司長陳明忠 9 29 日在新聞辦舉行的新聞釋出會上透露, " \

28|            " 根據剛剛完成了水資源管理制度的考核,有部分省接近了紅線的指標, " \

29|            " 有部分省超過紅線的指標。對一些超過紅線的地方,陳明忠表示,對一些取用水專案進行區域的限批, " \

30|            " 嚴格地進行水資源論證和取水許可的批准。 "

31| print(HanLP.extractKeyword(document, 2))

32| # 自動摘要

33| print(HanLP.extractSummary(document, 3))

34| # 依存句法分析

35| print(HanLP.parseDependency(" 徐先生還具體幫助他確定了把畫雄.鷹、松鼠和麻雀作為主攻目標。 "))

36| shutdownJVM()

 

結果如下:

 

1| [ 你好 /vl, /w, 歡迎 /v, /p, Python/nx, /f, 呼叫 /v, HanLP/nx, /ude1, API/nx]

2| [ 商品 /n, /cc, 服務 /vn]

3| [ 結婚 /vi, /ude1, /cc, 尚未 /d, 結婚 /vi, /ude1, 確實 /ad, /p, 干擾 /vn, 分詞 /n, /y]

4| [ /v, 水果 /n, 然後 /c, /vf, 世博園 /n, 最後 /f, /vf, 世博會 /n]

5| [ 中國 /ns, /ude1, 首都 /n, /vshi, 北京 /ns]

6| [ 歡迎 /v, /a, /a, 師生 /n, 前來 /vi, 就餐 /vi]


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31524777/viewspace-2650503/,如需轉載,請註明出處,否則將追究法律責任。

相關文章