前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一步一步教你在Ubuntu中安装HanLP

一步一步教你在Ubuntu中安装HanLP

作者头像
触摸壹缕阳光
发布2020-04-30 16:43:43
1.6K0
发布2020-04-30 16:43:43
举报

让我们每天带着希望出门,如果事与愿违,就再把希望带回家,休息休息,明天继续带出门。

——朱德庸

全文字数:2768字

阅读时间:12分钟

前言

本文主要介绍如何在Ubuntu中安装自然语言处理工具HanLP。如果想要了解如何在Windows中安装HanLP?可以看下面这篇文章:

一步一步教你安装HanLP

如果使用Python动态语言来调用HanLP的话会省下不少时间,当然最主要的工作还是安装一些HanLP的依赖,比如HanLP是由Java语言编写的,所以必须要在系统中配置Java的运行环境。如果想要在Python中执行调用Java的一些包文件还需要安装jpype1模块。

我的一些配置(作为参考):

  1. Ubuntu 18.04.3 LTS
  2. Python 3.7
  3. 已安装Anaconda,通过conda -V命令查看conda版本为4.7.12

a

配置java运行环境

HanLP的主要项目是用Java语言编写的,如果想要使用HanLP必须要在系统中配置JDK或JRE,因此第一步就是在Ubuntu中配置Java运行环境。

在下载之前需要注册并登录Oracle官网,如果不登录的话最后可能不能下载JDK。注册登录很简单,这里不再赘述。

Oracle官网:https://www.oracle.com/index.html

JDK的各个版本:https://www.oracle.com/java/technologies/javase-downloads.html

这里选择JDK 8即可(推荐使用JDK8以上的版本,其它新版本JDK也可以):

▲下载JDK

进入后会发现列表中有很多平台的JDK,我们这里只关注下面四个(剩下两个Linux ARM 64/32 Hard Float ABI表示arm架构下的64位和32位,当然Ubuntu不属于):

▲符合Ubuntu系统的JDK

这里可以通过下面的规则来判断需要具体下载那个文件:

  • 首先判断我们使用的Ubuntu系统是64位还是32位,64位系统选择安装"X64",32位系统选择安装"X86";

可以使用下面命令查看我们安装的Ubuntu系统是64位还是32位,"X86_64"表示为64位:

$ uname -m
X86_64
  • 其次判断RPM Package还是Compressed Archive,这里选择下载的安装包,如果系统支持rmp就下载文件名包含RPM Package的文件,如果系统支持tar.gz解压就下载文件名包含Compressed Archive文件,这里选择下载tar.gz的格式;

最终决定下载下面的文件:

▲符合条件的JDK文件

▲勾选声明即可下载

下载完成后就需要在Ubuntu中进行解压配置,如果直接在Ubuntu的火狐浏览器中下载的话,默认下载的压缩包会被放在"/home/chenkc/Downloads"路径下(chenkc是我的家目录)。

▲在Downloads中查看下载的jdk

之后创建一个单独的文件存放JDK,在"/usr/local/java"(usr目录下可以放一些应用程序和文件)路径下创建java目录,然后将jdk的压缩包解压到新的目录中(为了避免权限问题,命令都使用sudo管理员权限执行)。

▲创建并将jdk解压到指定目录中

为了能够在系统全局中使用Java,和在Windows系统类似,需要为Java配置环境变量。为了防止重启后环境变量失效,在Ubuntu中需要配置一个系统环境变量和全用户环境变量(这些系统文件需要修改的话必须使用sudo管理员权限执行)。

  • 配置系统环境变量:/etc/environment

▲使用vim打开

具体步骤:

  • 按下键盘"i"进入编辑模式,将下面文本写入到文件中,JAVA_HOME要替换成自己的JDK目录路径:
export JAVA_HOME=/usr/local/java/jdk1.8.0_251
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin"
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  • 输入完成后,按下键盘"ESC",进入末行模式,输入":x"保存并退出。

▲在文件中写入

  • 最后别忘了,执行source /etc/environment使环境变量立即生效。

▲source使环境变量立即生效

  • 配置所有用户的环境变量:/etc/profile

▲使用vim打开

具体步骤:

  • 按下键盘"G"定位到文件的最末尾;
  • 按下键盘"i",进入编辑模式,在文件末尾添加下面的文本,JAVA_HOME要替换成自己的目录路径;
# 配置java环境变量

export JAVA_HOME=/usr/local/java/jdk1.8.0_251 
export JRE_HOME=$JAVA_HOME/jre  
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

▲在文件中写入

  • 按下键盘"ESC",输入":x"保存并退出;
  • 最后别忘了,执行source /etc/profile使环境变量立即生效。

▲source使环境变量立即生效

至此Java环境配置完成,使用"java -version"命令查看Java环境是否配置成功。

▲验证Java环境是否配置成功

注意:按照上面的步骤,如果重启打开终端发现抛出没有找到Java的错误,可以重启一下Ubuntu。

b

创建HanLP的虚拟环境

创建名为hanlp的Anconda虚拟环境,虚拟环境可以搭建独立的Python运行环境,使得单个项目的运行环境和其它项目互不影响。

▲创建名为hanlp的虚拟环境

▲输入y确定安装

由于创建虚拟环境中的命令最后有anaconda,因此会同时安装其它的Python软件包,比如Numpy等。虽然安装一些软件包会比较耗时,但是如果不加的话后期还需要手动去安装这些软件包,比较麻烦。

使用"conda activate hanlp"启动名为hanlp的虚拟环境,在下面安装的模块软件包只能在当前的虚拟环境中使用。

▲进入hanlp虚拟环境中

c

安装Jpype1模块

jpype1模块简单来说就是在Python中执行调用Java的模块工具,这里在hanlp的虚拟环境中使用conda命令进行安装,conda和pip安装的区别简单来说就是conda可以安装任何语言编写的软件包,而pip只能安装使用Python语言编写的软件包。

▲使用conda安装jpype1模块

conda-forge是镜像,如果安装的模块没有找到,可以指定到这个镜像中。同样输入"y"同意安装。此时发现不仅安装了jpype1模块,还安装了一些其它的软件包。

▲安装jpype1模块

d

安装HanLP

HanLP的Python接口是由pyhanlp包提供的,所以安装的时候只需要执行一行命令。

▲使用conda安装pyhanlp

不过在conda的默认镜像中并没有pyhanlp这个模块,所以只能老老实实的使用pip的方式来安装。

▲使用pip安装pyhanlp

使用pip的方式安装pyhanlp的同时也会安装jpype1模块,不过使用conda的方式安装jpype1模块的时候会额外安装一些其它的软件包,为了避免出错,还是有必要使用conda的方式来安装jpype1模块的。

e

测试HanLP

可以直接在命令中输入hanlp检查是否能够正常使用,在这之前一定不要忘记使用"conda activate hanlp"命令进入名为hanlp的虚拟环境中。

▲使用hanlp测试

本文主要介绍如何在Ubuntu中安装HanLP,所以为了简单直接通过命令进入HanLP的交互模型进行测试。比如执行"hanlp segment"进行分词交互的分词模式,输入一个句子回车之后进行分词。

▲输入hanlp segment进入分词模式

如果想要查看某些命令的帮助文档,可以为命令添加--help选项。

▲添加--help选项查看帮助文档

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档