Python-调用Java的jar包

来源:互联网 发布:手机淘宝客服点不开 编辑:程序博客网 时间:2024/04/27 17:29

时间:2017年5月
出处:http://blog.csdn.net/csearch/article/details/71430217
声明:版权所有,转载请联系作者并注明出

在实际工作中,有许多算法包是基于Java写的,而习惯了Python进行挖掘的同学会对Java比较犯怵,另一个原因就是在进行工程整合的时候,多语言在同一个工程下面管理起来也不是很方便。因此,考虑在Python环境下调用Java的jar包。

1.安装

# 安装JPype1pip install JPype1
>>> from jpype import *>>> startJVM(getDefaultJVMPath())>>> java.lang.System.out.println("hello world")hello world>>> shutdownJVM()JVM activity report     :    classes loaded       : 31JVM has been shutdown>>>

2.HanLP调用示例

我们下载Portable版本的jar包,不需要进行任何配置。
假定,我们的hanlp-portable-1.3.3.jar放置到/Users/xxx/tools/hanlp/hanlp-portable-1.3.3.jar

import sysreload(sys)sys.setdefaultencoding('utf8')from jpype import *startJVM(getDefaultJVMPath(), "-Djava.class.path=/Users/xxx/tools/hanlp/hanlp-portable-1.3.3.jar", "-Xms1g", "-Xmx1g") # 启动JVMHanLP = JClass('com.hankcs.hanlp.HanLP')# 中文分词print(HanLP.segment(u'你好,欢迎在Python中调用HanLP的API'))testCases = [    u"商品和服务",    u"结婚的和尚未结婚的确实在干扰分词啊",    u"买水果然后来世博园最后去世博会",    u"中国的首都是北京",    u"欢迎新老师生前来就餐",    u"工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作",    u"随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。"]for sentence in testCases: print(HanLP.segment(sentence))# 命名实体识别与词性标注NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')print(NLPTokenizer.segment(u'中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程'))# 关键词提取document = u"水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \           u"根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \           u"有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \           u"严格地进行水资源论证和取水许可的批准。"print(HanLP.extractKeyword(document, 2))# 自动摘要print(HanLP.extractSummary(document, 3))# 依存句法分析print(HanLP.parseDependency(u"徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))shutdownJVM()

参考文档
* Python调用自然语言处理包HanLP

0 0
原创粉丝点击