Bootstrap

sandboxie游戏不能运行在虚拟环境中如何解决_一步一步教你在Ubuntu中安装HanLP

200f773280d16ad35b07e5c43b9f9bb9.png

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

触摸壹缕阳光:一步一步教你在Windows中安装HanLP​zhuanlan.zhihu.com
f8d73f79e16208a7efc2cee5cab58868.png

​如果使用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

1. 配置java运行环境

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

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

Oracle官网:

Cloud Applications​www.oracle.com

JDK的各个版本:

https://www.oracle.com/java/technologies/javase-downloads.html​www.oracle.com

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

e893476c35101e3e1190634eccf31bb7.png
▲下载JDK

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

1314fe4b49fb4854db1a088a4bc8a1cf.png
▲符合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的格式;

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

00004877475ebb76f7f5d29323d44834.png
▲符合条件的JDK文件

344fa2629e5c195fa92c1c82b0a4bf01.png
▲勾选声明即可下载

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

4524178463584c396764d8ec98c79238.png
▲在Downloads中查看下载的jdk​

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

5b808359d4bc50b3fdab08d1870fa124.png
▲创建并将jdk解压到指定目录中

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

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

6935c3d7d7571badcc3f22ab19e816ab.png
▲使用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"​保存并退出。​

600406827dfbf1974c753a2891539547.png
▲在文件中写入​
  • 最后别忘了,执行source /etc/environment​是环境变量立即生效。​

c8c225e851673c1c153f81078d9cd254.png
▲source使环境变量立即生效
  • 配置所有用户的环境变量:/etc/profile

e717b2b7c8fd2579d5d896e6f11c7ae6.png
▲使用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

35682634a2ec4eb3392e1bb1447a3dee.png
▲在文件中写入​
  • 按下键盘"ESC",输入":x"​保存并退出;
  • 最后别忘了,执行source /etc/profile使环境变量立即生效。​

4707771aaf94cd3d4d62b3d3600003fb.png
▲source使环境变量立即生效​

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

ce0ddf325835539e9a9045ed43b2a30d.png
▲验证Java环境是否配置成功​

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

2. 创建HanLP的虚拟环境

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

0f1d645c2827bc23312401fa2b253e3d.png
▲创建名为hanlp的虚拟环境​

56f0ca1d2c72410943cb6a36ddce5e6e.png
▲输入y确定安装​

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

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

f7e2b7f00ed3603acbda7973ea2a39b7.png
▲进入hanlp虚拟环境中​

3. 安装jpype1模块

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

f3d978560ba35443b71aca14d95e1eff.png
▲使用conda安装jpype1模块​

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

67be246202beef5acedda1802bd61bf0.png
▲安装jpype1模块​

4. 安装HanLP

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

afa84184637d7da2d30253dd498f6448.png
▲使用conda安装pyhanlp​

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

3b2fad15dac58fa27765b68a75f672b4.png
▲使用pip安装pyhanlp​

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

5. 测试HanLP

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

138dd697f58688412da4823d17828c63.png
▲使用hanlp测试​

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

c2aca8a31b9050d8f891831ca28c4a07.png
▲输入hanlp segment进入分词模式

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

2c3606b9aea673febf06c5c2142f91bc.png
▲添加--help选项查看帮助文档
;