本文分享自 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]
作者:6丁一的貓