让我们每天带着希望出门,如果事与愿违,就再把希望带回家,休息休息,明天继续带出门。
——朱德庸
全文字数:2768字
阅读时间:12分钟
前言
本文主要介绍如何在Ubuntu中安装自然语言处理工具HanLP。如果想要了解如何在Windows中安装HanLP?可以看下面这篇文章:
一步一步教你安装HanLP
如果使用Python动态语言来调用HanLP的话会省下不少时间,当然最主要的工作还是安装一些HanLP的依赖,比如HanLP是由Java语言编写的,所以必须要在系统中配置Java的运行环境。如果想要在Python中执行调用Java的一些包文件还需要安装jpype1模块。
我的一些配置(作为参考):
- Ubuntu 18.04.3 LTS
- Python 3.7
- 已安装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位:
代码语言:javascript复制$ 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选项查看帮助文档