0.吹水(废话的前情节提要)
依旧是题主苦逼的实习生活,为某部门制作一个事件分析系统,因此需要一些词云模型和实体识别方法,因此选型LTP作为基础词云进行操作,并且基于国产全家桶进行系统部署,但是在这个过程中服务器架构之混乱,系统类别之多,让人觉得简直就是在养蛊。
题主开发环境:架构:amd64(Intel笔记本) 系统:Windows10
公司测试环境:架构:x86_64(测试服务器) 系统:CentOS7
系统部署硬件:arrch64(华为鲲鹏) 系统:Kylin v10(国产麒麟)
前期由于测试环境是封闭断网的,在屡次安装pyltp出bug之后,题主决定另辟蹊径,在x86_64的服务器架构下,使用wine64作为适配方法,将无法安装的pyltp在开发环境直接全部打包为一个exe实现无依赖迁移,通过中间文本进行IO,隔离开数据库驱动和数据生成,并且由于测试环境架构的问题所以前期该方法是合适的。
but客户部署的机器要求,因此只能硬着头皮把LTP完成安装,因此就有了今天的博客(主要是看上了LTP v3.4可以离线操作,还可以白嫖)。
如果大家想要跟题主安利docker和k8s的话,建议先看看容器的作用,目前docker的dev版本的确具有架构无关性功能,但是dev懂得都懂,wine也有架构无关功能的dev,但是由于架构不同,仍然存在意想不到的意外。
到这里我们步入正题,开始各种环境下的LTP的安装
1.Windows10使用Anaconda进行安装(事实上是可以的)
首先我们安装conda,这种无脑点的工作就不需要由我来讲了吧,你都看到CSDN了,你自己懂得问的,但是由于pyltp事实上利用了很多底层加速方法,更多来说使用C作为底层进行加速,所以你需要下载vs C++更多来说是C/C++的一些运行库
然后打开你的Anaconda Prompt,像下载一个正常的库一样pip install pyltp
这是非常简单的并且无挑战的,所以少说废话
2.服务器下基于Anaconda的安装
2.0:前置条件
首先保证的GCC和Clang都有,因为没有交叉编译器你也干不了啥,如果没有的话你就yum install一个或者apt-get install一个,如果你是离线状态的还是问CSDN毕竟我也写不了那么多,这里我们还要下载一个git,同样的yum install git或者apt-get install git。
并且一般来说,clang使用gcc做交叉编译的话,gcc是无法使用clang的include的头文件的也就是你需要手动挪过去或者建立一个软连接,题主喜欢简单,直接copy一份(主要是缺了mm_malloc.h)
2.1:在线版本
which gcc
which clang
cp /usr/lib64/clang/inculde/版本号/mm_malloc.h /usr/lib/gcc/版本号/include/mm_malloc.h
然后我们首先从git远端仓库直接拉取源代码,然后拉取ltp的源代码,再拉取pybind11的源代码,最后整合成一个文件进行install操作
git clone https://github.com/HIT-SCIR/pyltp
cd pyltp
git submodule init
git submodule update
python setup.py install
2.2:离线版本
首先在你有网的Windows笔记本下载一个git,同样的在指定的文件夹下打开git(cmd), 使用git命令:git clone https://github.com/HIT-SCIR/pyltp
同样的需要更新pybind11和ltp模块的代码,所以进入pyltp文件夹:cd pyltp,并使用git指令:
git submodule init
再使用git submodule update进行更新
完成后根据git(cmd)的默认位置,pyltp被克隆到了C:\User\win10目录下,然后我们对其进行打包,使用7zip最终我们希望打包为tar.gz格式,因此我们首先打包为tar格式
选择tar格式,并确定,在C:\User\win10目录下会生成一个pyltp.tar格式的包
在C:\User\win10目录下,同样是使用7zip点选pyltp.tar,按下图操作
并在此选择gzip格式,生成pyltp.tar.gz格式的压缩包
然后使用Xshell将 pyltp.tar.gz上传到服务器上,然后使用解压缩指令,tar -zxvf pyltp.tar.gz -C /home/NlP_Train_0/software/,这里你爱放到啥路径你自己决定
然后进入解压后的pyltp文件夹,使用安装指令python setup.py install进入安装状态
剩下的就是等待...,等到如下画面就说明安装成功,然后使用python指令进去,使用语句import pyltp进行验证尝试,可以的话就是没问题了
2.3:相信各位大佬(懒狗)都不想自行打包
我这里有个打包好的百度网盘,源码安装不适用轮子whl,并且很多轮子都是amd64下的本来就不合适,所以只是为大家网速不好的,或者pypi上去都麻烦的人提供的