本文作者:botoo
背景:python3.6 32位 + jre 32位 + windows64位
首先环境搭建:
安装jpype,安装的时候输入 pip install jpype1 (后面要加一个1)
*一定要注意 jre和python的位数一定要一样的
安装jre 根据你的python版本选择对应位数的jre文件http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html
我下载的是:jre-8u151-windows-i586.tar.gz 下载后直接解压到本地d盘
需要的是这个路径下的这个文件:
import jpype
# jvmPath = jpype.getDefaultJVMPath() jvmPath = ur'D:\jre-8u151-windows-i586\jre1.8.0_151\bin\client\jvm.dll'jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
jpype.shutdownJVM()
执行不报错就成功。
下载完jar包,然后写py文件:
# -*- coding:utf-8 -*-
# Filename: main.py
# Author:hankcs
from jpype import *
import jpype
a=u'D:\\jre-8u151-windows-i586\\jre1.8.0_151\\bin\\client\\jvm.dll' #jvm.dll启动成功
jpype.startJVM(a, "-Djava.class.path=C:\\hanlp\\hanlp-portable-1.5.2.jar")
HanLP = JClass('com.hankcs.hanlp.HanLP')
# 中文分词
print(HanLP.segment('你好,欢迎在Python中调用HanLP的API'))
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()
运行结果如下: