hanlp可以使用python调用吗
罗萌萌是谁的媳妇儿~
2024-05-27 09:15:21
最佳回答
安装jdkjpype并没有像ikvm那样实现自己的jvm,而是以pipe方式调用原生jvm。所以我们需要一个jvm,比如:oracle jdkopenjdk安装jdk非常简单,分清楚32位和64位即可,必须与os和python的位数一致,具体安装过程不再赘述。唯一需要注意的是,必须设置环境变量j**a_home到jdk的根目录,jdk的安装程序不一定会帮你做这一步。安装编译工具链python的package一般是以源码形式发布的,其中一些c代码必须在用户机器上编译,所以需要安装编译工具链。当然你也可以跳过这步,直接下载binary。windows安装免费的v**ual c++ express 2010。debian/ubuntusudo apt-get install g++red hat/fedorasu -c 'yum install gcc-c++'安装jpype本文读者应该都是python程序员,所以略过了安装python这一步。不过必须注意的是,jpype版本与python的对应兼容关系:python2.x:jpypepython3.x:jpype1-py3使用setup.py安装下载源码后解压,在目录下运行:*nixsudo python3 setup.py installwindowspython setup.py install直接下载binary当然你也可以选择下载binary,比如jpype1-py3主页上的binary列表。在pycharm中安装如果你正在使用pycharm这款ide的话,那么事情就简单多了。首先在project interpreter里面点击加号:搜索jpype,选择你需要的版本安装:稍等片刻就安装成功了:测试安装结果终于又到了写代码的开心时间了,可以通过如下代码测试是否安装成功:from jpype import *startjvm(getdefaultjvmpath())j**a.lang.system.out.println("hello world")shutdownjvm()输出如下结果表示安装成功:hello worldjvm activity report :classes loaded : 31jvm has been shutdown调用hanlp关于hanlphanlp是一个致力于向生产环境普及nlp技术的开源j**a工具包,支持中文分词(n-最短路分词、crf分词、索引分词、用户自定义词典、词性标注),命名实体识别(**人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(maxent依存句法分析、神经网络依存句法分析)。下载hanlp你可以直接下载portable版的jar,零配置。也可以使用自定义的hanlp——hanlp由3部分组成:类库hanlp.jar包、模型data包、配置文件hanlp.properties,请前往项目主页下载最新版:。对于非portable版,下载后,你需要编辑配置文件第一行的root指向data的父目录,详见文档。这里,假设新建了一个目录(假定为c:\hanlp),把hanlp.jar和hanlp.properties(portable版的话,仅需一个hanlp-portable.jar)放进去:python调用下面是一份python3的调用示例: # -*- coding:utf-8 -*- # filename: main.py # author:hankcs # date: 2015/11/26 14:16 from jpype import * startjvm(getdefaultjvmpath(), "-dj**a.class.path=c:\hanlp\hanlp-1.2.8.jar;c:\hanlp", "-xms1g", "-xmx1g") 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() 20210311