本文分享自 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]
更多文章、技术交流、商务合作、联系博主
微信扫码或搜索:z360901061
微信扫一扫加我为好友
QQ号联系: 360901061
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。
【本文对您有帮助就好】元