python调用hanlp进行命名实体识别

1,205 阅读2分钟

本文分享自 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\hanlp1.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]