【源码加减器电路】【网站源码加密平台】【tkinter功能界面源码】hanlp 源码

2024-12-23 05:16:06 来源:国外 源码 交流 分类:热点

1.hanlp可以使用python调用吗
2.中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP
3.Java下的中文分词方案

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()

中文分词工具在线PK新增:FoolNLTK、LTP、StanfordCoreNLP

       中文分词在线PK之旅持续推进,继上篇《五款中文分词工具在线PK: Jieba,源码加减器电路 SnowNLP, PkuSeg, THULAC, HanLP》之后,此次又新增了三个中文分词工具,分别是FoolNLTK、哈工大LTP(pyltp, ltp的python封装)和斯坦福大学的CoreNLP(stanfordcorenlp is a Python wrapper for Stanford CoreNLP),现在可在AINLP公众号进行测试:中文分词 我爱自然语言处理。

       以下是在Python3.x & Ubuntu. 的环境下测试及安装这些中文分词器:6)FoolNLTK:github.com/rockyzhengwu...

       特点:可能不是最快的开源中文分词,但很可能是最准的开源中文分词。基于BiLSTM模型训练而成,包含分词,词性标注,实体识别,都有比较高的准确率。用户自定义词典,可训练自己的模型,批量处理,定制自己的网站源码加密平台模型。get clone github.com/rockyzhengwu... cd FoolNLTK/train 详细训练步骤可参考文档。

       仅在linux Python3 环境测试通过。

       安装,依赖TensorFlow, 会自动安装:pip install foolnltk

       中文分词示例:

       7) LTP: github.com/HIT-SCIR/ltp

       pyltp: github.com/HIT-SCIR/pyl...

       pyltp 是语言技术平台(Language Technology Platform, LTP)的Python封装。

       安装 pyltp 注:由于新版本增加了新的第三方依赖如dynet等,不再支持 windows 下 python2 环境。使用 pip 安装 使用 pip 安装前,请确保您已安装了 pip $ pip install pyltp 接下来,需要下载 LTP 模型文件。下载地址 - `模型下载 ltp.ai/download.html`_ 当前模型版本 - 3.4.0 注意在windows下 3.4.0 版本的tkinter功能界面源码语义角色标注模块模型需要单独下载,具体查看下载地址链接中的说明。请确保下载的模型版本与当前版本的 pyltp 对应,否则会导致程序无法正确加载模型。从源码安装 您也可以选择从源代码编译安装 $ git clone github.com/HIT-SCIR/pyl... $ git submodule init $ git submodule update $ python setup.py install 安装完毕后,也需要下载相应版本的 LTP 模型文件。

       这里使用"pip install pyltp"安装,安装完毕后在LTP模型页面下载模型数据:ltp.ai/download.html,我下载的是 ltp_data_v3.4.0.zip ,压缩文件有多M,解压后1.2G,云储存系统源码里面有不同NLP任务的模型。

       中文分词示例:

       8) Stanford CoreNLP: stanfordnlp.github.io/C... stanfordcorenlp: github.com/Lynten/stanf...

       这里用的是斯坦福大学CoreNLP的python封装:stanfordcorenlp

       stanfordcorenlp is a Python wrapper for Stanford CoreNLP. It provides a simple API for text processing tasks such as Tokenization, Part of Speech Tagging, Named Entity Reconigtion, Constituency Parsing, Dependency Parsing, and more.

       安装很简单,pip即可:pip install stanfordcorenlp

       但是要使用中文NLP模块需要下载两个包,在CoreNLP的下载页面下载模型数据及jar文件,目前官方是3.9.1版本:nlp.stanford.edu/softwa...

       第一个是:stanford-corenlp-full---.zip 第二个是:stanford-chinese-corenlp----models.jar

       前者解压后把后者也要放进去,否则指定中文的时候会报错。

       中文分词使用示例:

       最后再说一下,原本计划加上对NLPIR中文分词器的支持,但是发现它的license需要定期更新,对于长久放server端测试不太方便就放弃了;另外之所以选择python,手汇赚源码因为我用了Flask restful api框架,也欢迎推荐其他的中文分词开源框架,如果它们有很好的Python封装的话,这里可以继续添加。

Java下的中文分词方案

       Java中文分词方案的选择主要取决于项目需求和易用性。在构建博客检索系统时,关键词提取是关键,对于技术性强的词汇,自定义词库或手动标记成为必要。尽管训练词库耗时,现有的互联网技术词库并不完善,手动标记是一种简单但不够优雅的处理方式,适合范围较小的个人博客。

       在众多的分词方案中,如ycs、tianDi,主要分为基于词库的和机器学习的两类。机器学习方案虽有潜力,但接口不稳定和可能的付费要求增加了复杂性。遵循“省事”原则,jcseg和mynlp被考虑。mynlp虽然文档和维护性有待提高,但HanLP凭借其社区活跃度和文档详细度表现最优,但鉴于时间限制,暂时不考虑。

       mynlp的使用中,官方文档不足,需要通过源码了解配置。自定义词汇和忽略词汇的管理也需要额外操作。相比之下,jcseg的文档清晰,且有检测模式支持关键词提取,更适合对词库匹配度有较高要求的场景。

       总体而言,mynlp由于易用性较好,适合简单需求,而jcseg功能丰富但可能需要更多配置。根据项目具体需求,可以从这两个方案中选择一个适合的中文分词方案,如若对功能要求不高,mynlp可能是更合适的选择。

本文地址:http://50.net.cn/html/45a795891996.html 欢迎转发