pyhanlp、HanLP安装与使用

pyhanlp、HanLP安装使用(Windows)

4.28更新:对于Python来说,官方给出了HanLP的Python接口,具体见:自然语言处理工具包HanLP的Python接口,使用一个简单的pip命令就可以安装使用了,但是仍然需要安装一些环境,这里简单介绍一下,它的安装过程中各种环境的安装与之前是一样的。
首先是安装 Java Visual C++环境以及安装 Jpype,这与之前一样。
不同的地方在于之前安装 jar 包以及配置 data 的过程可以使用一个 pip 命令来完成,在完成上述操作后,进入控制台(Anaconda的话要进入 Anaconda Propmpt 然后 activate 到相应的环境下),然后使用:

pip install pyhanlp

注意在第一使用 from pyhanlp import *命令来导入的时候会自动下载data 以及jar包,整个过程大概由1G左右吧,所以首次运行会比较慢,第二次就快多了。
在完成安装之后,使用与下面HanLP的测试代码一样,并且不需要启动Java虚拟机的那些环境设置。在导入之后,HanLP对象会自动创建,对于其他的对象,则可以通过JClass来创建,例如:

StandardTokenizer = JClass("com.hankcs.hanlp.tokenizer.StandardTokenizer")
print(StandardTokenizer.segment("使用这个工具进行标准分词"))

其他对象同理创建使用。

以下是原文

安装Hanlp时候发现网上的一些介绍文章写的有些模糊,这里记录一下Python环境下安装与使用Hanlp。

首先,要明确HanLP是一个Java工具包,由很多模型、算法组成,而在学习自然语言的时候一般都会使用Python吧,因此,实质上是使用Python调用Hanlp。

具体安装步骤:

1.安装Java 和 Visual C++环境

首先是安装JDK,这个在Oracle的官网上就可以下载到:JDK,选择自己使用的版本即可,注意要勾选Accept那个按钮才能下载。下载完成后安装即可。不过JDK安装之后要配置一下环境变量(例如在cmd下输入java发下是“不是批处理XXX”),具体的方法网上有很多,例如:JDK环境变量配置
接下在安装Visual C++,这个可以先看一下自己电脑是否已经安装(我记得有些游戏是会安装这个的 =_=||。。),打开控制面板(可以win+Q,在小娜的搜索框里直接搜索),在“程序”中找到已经安装的程序:
在这里插入图片描述
类似这样,这里安装的事Visual C++ 2015,如果没有,也可以直接在网上搜索下载:Download Visual C++ 2015,安装包很小的。

2.安装Jpype

Jpype是使用Python调用Java 的工具包,安装非常简单,如果是使用Anaconda(一般都会推荐使用Anaconda的吧),的话,打开Anaconda的控制台,使用activate进入想要安装的那个虚拟环境,然后调用:

conda install -c conda-forge jpype1

即可,(那个Solving enviromnment可能会转一小会),然后安装选择 Proceed ([y]/n)后输入 y即可安装。

3.测试Python环境下调用Java

测试仍然在Anaconda的控制台下进行,使用Python可以在控制台下进入Python环境,首先输入:

from jpype import *

测试能否正常导入。然后测试开启Java虚拟机,并进行简单输出测试

startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("Hello")

其实下面的代码就是Java中的输出语句了。如果在那个黑框框中没有显示错误信息那就说明安装成功了。可以关闭Java虚拟机:

shutdownJVM()
4.HanLP安装

这里主要是安装HanLP的jar包和data文件,打开HanLP的github地址:HanLP,其实上面的安装介绍已经很清楚了。
找到方法二:
在这里插入图片描述
首先下载data.zip(点击那个链接,这部分也在直接clone的文件里),然后下载jar和配置文件,解压后能看到里面的jar文件。
当然,建议这两个都放在英文路径下,例如:
在这里插入图片描述

5.修改配置文件

这部分在HanLP的github网页上已经做了详细介绍。
首先打开 hanlp.properties文件,在上面第二个下载中。
这里只需要修改第一行即可(文件里也写了):
在这里插入图片描述
这里将root=后面修改为存放data的那个文件夹路径,例如,我刚才的路径就是:root=D:/NLP/hanlp
至此,完成了HanLP的安装。

6.测试

使用代码来测试一下安装的HanLP功能:
发现网上代码都很经典啊。。都是一样的,可以使用这里的代码测试一下:Python中调用自然语言处理工具HanLP手记
注意:

from jpype import *

startJVM(getDefaultJVMPath(), "-Djava.class.path=D:/NLP/hanlp/hanlp-1.7.3.jar;D:/NLP/hanlp",
         "-Xms1g",
         "-Xmx1g")

HanLP = JClass('com.hankcs.hanlp.HanLP')

这里的路径也就是前面存放jar和data的文件了,要注意这里的路径分隔符使用的是/,与上面配置文件的路径符号不同,这个地方出错可能会出现SyntaxError: (unicode error)这样的错误,具体可以参考:Python 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun错误解决方案

HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善,性能高效,架构清晰,语料时新,可自定义的特点。 HanLP提供下列功能: 中文分词 HMM-两字组(速度与精度最佳平衡;一百兆内存) 最短路分词,N-最短路分词 由字构词(侧重精度,全世界最大语料库,可识别新词;适合NLP任务) 感知机分词,CRF分词 词典分词(侧重速度,每秒数千万字符;省内存) 极速词典分词 所有分词器都支持: 索引全切分模式 用户自定义词典 兼容繁体中文 训练用户自己的领域模型 词性标注 HMM词性标注(速度快) 感知机词性标注,CRF词性标注(精度高) 命名实体识别 基于HMM角色标注的命名实体识别(速度快) 中国人名识别,音译人名识别,日本人名识别,地名识别,实体机构名识别 基于线性模型的命名实体识别(精度高) 感知机命名实体识别,CRF命名实体识别 关键词提取 TextRank关键词提取 自动摘要 TextRank自动摘要 短语提取 基于互信息和左右信息熵的短语提取 拼音转换 多音字,声母,韵母,声调 简繁转换 简繁分歧词(简体,繁体,台湾正体,香港繁体) 文本推荐 语义推荐,拼音推荐,字词推荐 依存句法分析 基于神经网络的高性能依存句法分析器 基于ArcEager转移系统的柱搜索依存句法分析器 文本分类 情感分析 文本聚类 KMeans,Repeated Bisection,自动推断聚类数目k word2vec 词向量训练,加载,词语相似度计算,语义运算,查询,KMEANS聚类 文档语义相似度计算 语料库工具 部分默认模型训练自小型语料库,鼓励用户自行训练。模块所有提供训练接口,语料可参考98年人民日报语料库。 在提供丰富功能的同时,HanLP内部模块坚持低耦合,模型坚持惰性加载,服务坚持静态提供,词典坚持明文发布,使用非常方便。默认模型训练自全世界最大规模的中文语料库,同时自带一些语料处理工具,帮助用户训练自己的模型。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值