• ubuntu下pycharm调用Hanlp实践分享


     

    前几天看了大快的举办的大数据论坛峰会的现场直播,惊喜的是hanlp2.0版本发布。Hanlp2.0版本将会支持任意多的语种,感觉还是挺好的!不过更多关于hanlp2.0的信息,可能还需要过一段时间才能看到,只能等一下了!下面分享一篇大神的文章,是关于在ubuntu下使用pycharm调用hanlp的实验。

     

    以下为全文:

    首先点击File,选择Settings,在Project 下点击Project Interpreter,并通过点击右边的加号:

    搜索JPype,根据python版本选择你需要的JPype版本安装。

    之后,在https://github.com/hankcs/HanLP/releases

    网站下载hanlp.jar包、模型data包、配置文件hanlp.properties,新建一个文件夹Hanlp,

    hanlp.jar和hanlp.properties放进去;之后需要再新建一个文件夹hanlp,并将data放进去;

    修改Hanlp下的路径为当前data的路径,由于我将data放在/home/javawork/hanlp下,因此:root=/home/javawork/hanlp/

    接下来新建一个文件demo_hanlp.py,代码如下:

    #! /usr/bin/env python2.7

    #coding=utf-8

    from jpype import *

    # startJVM(getDefaultJVMPath(), "-Djava.class.path=home/javawork/Hanlp/hanlp-1.2.7.jar;home/javawork/Hanlp/", "-Xms1g", "-Xmx1g")

    startJVM(getDefaultJVMPath(), "-Djava.class.path=/home/qinghua/javawork/Hanlp/hanlp-1.2.7.jar:/home/qinghua/javawork/Hanlp")

    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月29日在国务院新闻办举行的新闻发布会上透露,"

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

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

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

    print(HanLP.extractKeyword(document, 2))

    # 自动摘要

    print(HanLP.extractSummary(document, 3))

    # 依存句法分析

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

    shutdownJVM()

    需要注意的是ubuntu的路径分割符为”:”,而window 为” ; ”

    另附hanlp调用常见问题集:

    github.com/hankcs/HanLP/issues?page=3&q=is%3Aissue+is%3Aopen

    作者:imperfect00

  • 相关阅读:
    01_垂直居中body中的应用
    C++基础知识易错点总结(2)
    辗转相除求最大公约数
    C++基础知识易错点总结(1)
    类对象的建立方式总结
    LeetCode(131)Palindrome Partitioning
    基本套接字编程(7) -- udp篇
    LeetCode(124) Binary Tree Maximum Path Sum
    LeetCode(115) Distinct Subsequences
    LeetCode(97) Interleaving String
  • 原文地址:https://www.cnblogs.com/adnb34g/p/10117646.html
Copyright © 2020-2023  润新知