Linux服务器宝塔环境安装百度分词工具LAC成功经验总结
相信有很多接触LAC的人一定有不少人跟我一样在安装的时候会遇到各种各样的问题。对于LAC怎么安装,Linux环境下如何安装LAC,安装百度LAC报错出错怎么办?以下有我的整个安装及排错和成功安装经验。
百度LAC分词工具据说是百度自己的自然语言处理部这个部门研发的一款词法分析工具,可以实现中文分词、还能实现词性标注、以及专名识别等功能。
因为Linux服务器安装的是宝塔管理面板,所以以下所有操作都基于此前提。
首先,到宝塔面板的【软件商店】找到Python项目管理器,点击安装,等待安装成功。
点击【设置】,进入设置页面
选择版本管理,默认是没有安装Python3.7.0的,选中Python3.7.0,点击安装版本,等待安装完成。(因为我已经安装3.7.0,所以此处选择3.6.0仅用于图片展示效果)
在项目管理中添加项目:
以上宝塔界面操作完毕,下面进入Linux远程连接工具进行相应操作。
进入SSH,用ROOT账号登录后,输入命令:source /www/lac/BaiduLac_venv/bin/activate 进入虚拟环境
在正式安装百度LAC之前,需要安装俩个其他包:(运行如下命令行)
pip install paddlepaddle
pip install paddlehub
等待俩个包都安装完毕,输入命令:python进入python命令行后,输入import paddlehub as hub测试引入包是否成功,我这边是出现如下错误:
Error: Can not import avx core while this file exists: /home/lac/lac_venv/lib/python3.7/site-pacso
…此处省略一堆错误提示
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8′ not found (required by /home/lac/lac_ages/paddle/fluid/core_avx.so)
遇到以上错误的,需要下载一个libstdc++.so.6.0.26并将文件改名为【libstdc++.so.6】上传到服务器/usr/lib64/目录下替换掉原来的‘libstdc++.so.6’文件。
这里是下载地址:链接:https://pan.baidu.com/s/163zsi4-GDS8uAh1czluYSA 密码:t0ln
到这里就可以直接安装百度LAC了,运行命令行:
pip install lac -i https://mirror.baidu.com/pypi/simple
等待安装完成。
以下是我的整个linux命令行运行过程:
WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Mon Dec 13 15:53:31 2021 from 113.245.13.144
[root@我的服务器名 ~]# source /home/lac/lac_venv/bin/activate
#查看pip版本 之前安装的时候pip版本太低安装不成功
(lac_venv) [root@我的服务器名 ~]# pip -V
pip 21.3.1 from /home/lac/lac_venv/lib/python3.7/site-packages/pip (python 3.7)
#查看Python版本 之前安装也是Python版本不对导致安装不成功
(lac_venv) [root@我的服务器名 ~]# python -V
Python 3.7.0
#安装 paddlepaddle
(lac_venv) [root@我的服务器名 ~]# pip install paddlepaddle
Collecting paddlepaddle
...此处安装过程太长,省略。
Successfully installed Pillow-8.4.0 astor-0.8.1 certifi-2021.10.8 charset-normalizer-2.0.9 decor21.4 paddlepaddle-2.2.1 protobuf-3.19.1 requests-2.26.0 six-1.16.0 urllib3-1.26.7
#安装 paddlehub
(lac_venv) [root@我的服务器名 ~]# pip install paddlehub
Collecting paddlehub
...此处省略安装过程。
Successfully built easydict bce-python-sdk jieba seqeval future
Installing collected packages: zipp, typing-extensions, MarkupSafe, importlib-metadata, Werkzeug, pyparsing, platformdirs, joblib, Jinja2, itsdangerous, filelock, distlib, click, backports.entlenv, toml, smmap, scikit-learn, pyyaml, python-dateutil, pyflakes, pycryptodome, pycodestyle, piwisolver, identify, future, fonttools, flask, dill, cycler, cfgv, cached-property, Babel, shellt, pandas, onnx, multiprocess, matplotlib, jieba, h5py, gitdb, Flask-Babel, flake8, colorlog, coaldl, tqdm, rarfile, pyzmq, paddlenlp, paddle2onnx, opencv-python, gunicorn, gitpython, easydict
Successfully installed Babel-2.9.1 Flask-Babel-2.0.0 Jinja2-3.0.3 MarkupSafe-2.0.1 Werkzeug-2.0.ectable-1.1.1 bce-python-sdk-0.8.64 cached-property-1.5.2 cfgv-3.3.1 click-8.0.3 colorama-0.4.4 dill-0.3.4 distlib-0.3.4 easydict-1.9 filelock-3.4.0 flake8-4.0.1 flask-2.0.2 fonttools-4.28.3 tpython-3.1.24 gunicorn-20.1.0 h5py-3.6.0 identify-2.4.0 importlib-metadata-4.2.0 itsdangerous-2.0 kiwisolver-1.3.2 matplotlib-3.5.1 mccabe-0.6.1 multiprocess-0.70.12.2 nodeenv-1.6.0 onnx-1.9.kaging-21.3 paddle2onnx-0.9.0 paddlehub-2.1.1 paddlenlp-2.2.0 pandas-1.1.5 platformdirs-2.4.0 pr2.8.0 pycryptodome-3.12.0 pyflakes-2.4.0 pyparsing-3.0.6 python-dateutil-2.8.2 pytz-2021.3 pyyam.0 scikit-learn-1.0.1 scipy-1.7.3 seqeval-1.2.2 shellcheck-py-0.8.0.1 smmap-5.0.0 threadpoolctl-3 typing-extensions-4.0.1 virtualenv-20.10.0 visualdl-2.2.2 zipp-3.6.0
#运行python 进入python命令行
(lac_venv) [root@我的服务器名 ~]# python
Python 3.7.0 (default, Dec 8 2021, 21:54:24)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
#尝试导入paddlehub 看看是否能够导入成功
>>> import paddlehub as hub
Error: Can not import avx core while this file exists:
...此处报了一堆错(大概意思就是libstdc++.so.6中没能找到CXXABI_1.3.8)
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/lac/lac_ages/paddle/fluid/core_avx.so)
#此处需要到网上下载libstdc++.so.6.0.26放到服务器/usr/lib64并改名为libstdc++.so.6(将替换服务器原来的libstdc++.so.6)
#此处为测试代码
(lac_venv) [root@我的服务器名 ~]# strings /usr/lib64/libstdc++.so.6|grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_1.3.12
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.11
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.12
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.10
CXXABI_1.3.3
(lac_venv) [root@我的服务器名 ~]# python
Python 3.7.0 (default, Dec 8 2021, 21:54:24)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import paddlehub as hub(运行后,不报错证明一切正常)
>>> exit()
#可以正式安装lac了
(lac_venv) [root@我的服务器名 ~]# pip install lac -i https://mirror.baidu.com/pypi/simple
Looking in indexes: https://mirror.baidu.com/pypi/simple
Collecting lac
Using cached ...此处省略很多字
Successfully built lac
Installing collected packages: lac
Successfully installed lac-2.1.2
#注意此处的/home/lac/1.py是我创建的文件 运行的是官方的测试代码
(lac_venv) [root@我的服务器名 ~]# python /home/lac/1.py
W1215 21:47:59.076072 27782 analysis_predictor.cc:1353] Deprecated. Please use CreatePredictor i
[['LAC', '是', '个', '优秀', '的', '分词', '工具'], ['百度', '是', '一家', '高科技', '公司']]
/home/lac/1.py文件内容如下:
from LAC import LAC
# 装载分词模型
lac = LAC(mode='seg')
# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
seg_result = lac.run(text)
# 批量样本输入, 输入为多个句子组成的list,平均速率会更快
texts = [u"LAC是个优秀的分词工具", u"百度是一家高科技公司"]
seg_result = lac.run(texts)