皮皮网

【网页裁剪头像源码】【原生h5源码】【搜索结果页面展示源码】hanlp 源码分析

2024-12-26 00:59:08 来源:补单软件源码

1.hanlp可以使用python调用吗

hanlp 源码分析

hanlp可以使用python调用吗

       å®‰è£…JDK

       JPype并没有像IKVM那样实现自己的JVM,而是以pipe方式调用原生JVM。所以我们需要一个JVM,比如:

       Oracle JDK

       OpenJDK

       å®‰è£…JDK非常简单,分清楚位和位即可,必须与OS和Python的位数一致,具体安装过程不再赘述。

       å”¯ä¸€éœ€è¦æ³¨æ„çš„是,必须设置环境变量JAVA_HOME到JDK的根目录,JDK的安装程序不一定会帮你做这一步。

       å®‰è£…编译工具链

       Python的package一般是以源码形式发布的,其中一些C代码必须在用户机器上编译,所以需要安装编译工具链。当然你也可以跳过这步,直接下载binary。

       Windows

       å®‰è£…免费的Visual C++ Express 。

       Debian/Ubuntu

       sudo apt-get install g++

       Red Hat/Fedora

       su -c 'yum install gcc-c++'

       å®‰è£…JPype

       æœ¬æ–‡è¯»è€…应该都是Python程序员,所以略过了安装Python这一步。不过必须注意的是,JPype版本与Python的对应兼容关系:

       Python2.x:JPype

       Python3.x:JPype1-py3

       ä½¿ç”¨setup.py安装

       ä¸‹è½½æºç åŽè§£åŽ‹ï¼Œåœ¨ç›®å½•ä¸‹è¿è¡Œï¼š

       *nix

       sudo python3 setup.py install

       Windows

       python setup.py install

       ç›´æŽ¥ä¸‹è½½binary

       å½“然你也可以选择下载binary,比如JPype1-py3主页上的binary列表。

       åœ¨Pycharm中安装

       å¦‚果你正在使用Pycharm这款IDE的话,那么事情就简单多了。

       é¦–先在Project Interpreter里面点击加号:

       æœç´¢JPype,选择你需要的版本安装:

       ç¨ç­‰ç‰‡åˆ»å°±å®‰è£…成功了:

       æµ‹è¯•å®‰è£…结果

       ç»ˆäºŽåˆåˆ°äº†å†™ä»£ç çš„开心时间了,可以通过如下代码测试是否安装成功:

       from jpype import *startJVM(getDefaultJVMPath())java.lang.System.out.println("hello world")shutdownJVM()

       è¾“出如下结果表示安装成功:

       hello worldJVM activity report : classes loaded : JVM has been shutdown

       è°ƒç”¨HanLP

       å…³äºŽHanLP

       HanLP是

       ä¸€ä¸ªè‡´åŠ›äºŽå‘生产环境普及NLP技术的开源Java工具包,支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体

       è¯†åˆ«ï¼ˆä¸­å›½äººåã€éŸ³è¯‘人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析

       ï¼ˆMaxEnt依存句法分析、神经网络依存句法分析)。

       ä¸‹è½½HanLP

       ä½ å¯ä»¥ç›´æŽ¥ä¸‹è½½Portable版的jar,零配置。

       ä¹Ÿå¯ä»¥ä½¿ç”¨è‡ªå®šä¹‰çš„HanLP——HanLP由3部分组成:类库hanlp.jar包、模型data包、配置文件hanlp.properties,请前往项目主页下载最新版:/hankcs/HanLP/releases。对于非portable版,下载后,你需要编辑配置文件第一行的root指向data的父目录,详见文档。

       è¿™é‡Œï¼Œå‡è®¾æ–°å»ºäº†ä¸€ä¸ªç›®å½•ï¼ˆå‡å®šä¸ºC:\hanlp),把hanlp.jar和hanlp.properties(portable版的话,仅需一个hanlp-portable.jar)放进去:

       Python调用

       ä¸‹é¢æ˜¯ä¸€ä»½Python3的调用示例:

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

        # Filename: main.py

        # Author:hankcs

        # Date: // :

        from jpype import

*

        startJVM(getDefaultJVMPath(),码分网页裁剪头像源码 "-Djava.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 = [

        "商品和服务",

        "结婚的和尚未结婚的确实在干扰分词啊",

        "买水果然后来世博园最后去世博会",

        "中国的首都是北京",

        "欢迎新老师生前来就餐",

        "工信处女干事每月经过下属科室都要亲口交代口交换机等技术性器件的安装工作",

        "随着页游兴起到现在的页游繁盛,依赖于存档进行逻辑判断的设计减少了,但这块也不能完全忽略掉。"]

        for sentence in testCases: print(HanLP.segment(sentence))

        # 命名实体识别与词性标注

        NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')

        print(NLPTokenizer.segment('中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程'))

        # 关键词提取

        document = "水利部水资源司司长陈明忠9月日在国务院新闻办举行的新闻发布会上透露," \

        "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \

        "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \

        "严格地进行水资源论证和取水许可的批准。"

        print(HanLP.extractKeyword(document, 2))

        # 自动摘要

        print(HanLP.extractSummary(document, 3))

        # 依存句法分析

        print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))

        shutdownJVM()