python调用HanLP

1.首先安装jpype

首先各种坑,jdk和python 版本位数必须一致,我用的是JPype1-py3 版本号0.5.5.2 、1.6jdk和Python3.5,win7 64位下亲测没问题。

否则死翘翘,有可能虚拟机都无法启动:

# -*- coding:utf-8 -*-

import jpype

from jpype import *

jvmPath = jpype.getDefaultJVMPath()

print(jvmPath)

jpype.startJVM(jvmPath)

jpype.java.lang.System.out.println("hello world!")

java.lang.System.out.println("hello world")

jpype.shutdownJVM()

出错调试,原因已说;测试成功会有输出。

下面启动虚拟机跑hanlp

2.下载各种安装包

使用自定义的HanLP——HanLP由3部分组成:类库hanlp.jar包、模型data包、配置文件hanlp.properties,请前往项目主页下载最新版:https://github.com/hankcs/HanLP/releases。对于非portable版,下载后,你需要编辑配置文件第一行的root指向data的父目录,详见文档。

# -*- coding:utf-8 -*-

import os

from jpype import *

[python] view plain copy

<code class="language-python">#老版本  

startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanLP\hanlp-1.3.2.jar;"  

                              "D:\hanLP", "-Xms1g","-Xmx1g")  # 启动JVM,Linux需替换分号;为冒号:  

#新版本,出现警告。垃圾的1.5会出现警告,而且数据也出问题。  

# startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanLP\hanlp-1.5.2.jar;"  

#                               "D:\hanLP", "-Xms1g","-Xmx1g")  # 启动JVM,Linux需替换分号;为冒号:</code>  

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

#中文分词

print(HanLP.segment("你好,欢迎在Python中调用HanLP的API").toString())

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]

[工信处/n, 女干事/n, 每月/r, 经过/p, 下属/v, 科室/n, 都/d, 要/v, 亲口/d, 交代/v, 24/m, 口/n, 交换机/n, 等/udeng, 技术性/n, 器件/n, 的/ude1, 安装/v, 工作/vn]

[随着/p, 页游/nz, 兴起/v, 到/v, 现在/t, 的/ude1, 页游/nz, 繁盛/a, ,/w, 依赖于/v, 存档/vi, 进行/vn, 逻辑/n, 判断/v, 的/ude1, 设计/vn, 减少/v, 了/ule, ,/w, 但/c, 这/rzv, 块/q, 也/d, 不能/v, 完全/ad, 忽略/v, 掉/v, 。/w]

[中国科学院计算技术研究所/nt, 的/ude1, 宗成庆/nr, 教授/nnt, 正在/d, 教授/v, 自然语言处理/nz, 课程/n]

[水资源, 陈明忠]

[严格地进行水资源论证和取水许可的批准, 水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露, 有部分省超过红线的指标]

1 徐先生 徐先生 nh nr _ 4 主谓关系 _ _

2 还 还 d d _ 4 状中结构 _ _

3 具体 具体 a a _ 4 状中结构 _ _

4 帮助 帮助 v v _ 0 核心关系 _ _

5 他 他 r rr _ 4 兼语 _ _

6 确定 确定 v v _ 4 动宾关系 _ _

7 了 了 u ule _ 6 右附加关系 _ _

8 把 把 p pba _ 15 状中结构 _ _

9 画 画 v v _ 8 介宾关系 _ _

10 雄鹰 雄鹰 n n _ 9 动宾关系 _ _

11 、 、 wp w _ 12 标点符号 _ _

12 松鼠 松鼠 n n _ 10 并列关系 _ _

13 和 和 c cc _ 14 左附加关系 _ _

14 麻雀 麻雀 n n _ 10 并列关系 _ _

15 作为 作为 p p _ 6 动宾关系 _ _

16 主攻 主攻 v vn _ 17 定中关系 _ _

17 目标 目标 n n _ 15 动宾关系 _ _

18 。 。 wp w _ 4 标点符号 _ _

JVM activity report :

classes loaded : 32

JVM has been shutdown

这里有可能JClass("

com.hankcs.hanlp.HanLP")时,报错出现找不到类的问题,仔细查看配置文件和jar路径是否对;如果还出错,

查看data里面的文件是否全。

文章来源于逍遥自在017的博客

原文链接:https://blog.csdn.net/lanlantian123456/article/details/83344289

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

极客DIY:教你做一个简单的“太阳能”移动电源

在这篇分享中,我将向大家一步一步的展示如何手工制作一个简单的太阳能移动电源。同时因为我个人的喜好,漂亮且艺术感十足的木质外在的制作过程也会包含其中。 类似的分享...

1999
来自专栏贾老师の博客

【笔记】读 JeffDean 分布式系统

1423
来自专栏智能大石头

MF前传——探索者一号简介

    MF让我们这些C#程序员能够把手伸到嵌入式行业,大大增强我们在各种项目中的竞争能力。无奈国内研究MF的人少之又少,为了加速MF技术的研究,我们团队采用少...

1999
来自专栏小俊博客

[测评]云端互联德国芬兰建站型NAT机器测评

1673
来自专栏ml

学编程,学单词.....在学习中积累自己的单词(不断更新__ing)

可以去肆意大话天下,可以去小民一般的言语,但是一定要清楚,知识的积累,至于心中,即便你说这粗俗的话,你的个性,气质依旧在那,比如北大的那啥教师(心中的典范),也...

2965
来自专栏量子位

FPGA开发板剁手,学生狗省钱大法丨吐血资源

博主Joel Williams在他的主页中分享了一篇购买便宜的FPGA开发板的攻略,量子位编译本文。

1280
来自专栏腾讯社交用户体验设计

ISUX 2018 Calendar 获奖名单

731
来自专栏Netkiller

EOS 智能合约中数据表的操作方法

中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

2679
来自专栏静晴轩

Sublime Text 最新注册码分享

SublimeText,她作为强大而小巧,性感且快捷的编辑器,长时间以来,受众人青睐;对于个人来说,也是最常用代码编辑器,且没有之一(目前同时也会用 VsCod...

3683
来自专栏企鹅号快讯

Brocade为何认为FC是NVMe over Fabric中最好的Fabric?

Brocade最近发表了对NVMe over Fabric理解和观点,认为FC Fabric相比以太网具有很多优势,并且FC聚焦数据中心数据传输和交换,具有更好...

2399

扫码关注云+社区