最简单的方式就是使用我们在docker中已经编译好的LTP服务。这种方式避免了多种不同系统编译安装时可能出现的各种问题,也避免了模型和代码匹配等问题。如果您希望快速部署LTP的接口服务器并使用。推荐这种方法。
1. 安装docker,在`【docker官方下载地址】<https://www.docker.com/community-edition>`_ 下载安装即可。如果您还没有了解docker是什么,可以参考`此处<https://www.docker.com/what-docker>`_ 2.1 使用本仓库Dockerfile构建镜像,仅下载Dockerfile文件,放在一个空文件夹下,并在该文件夹下执行:
docker build -t ltp/ltp . # 由于网络原因可能中途失败。多执行几次即可。
2.2 在此处下载最新的LTP的镜像文件。` ltp3.4.0-docker <http://osr393crn.bkt.clouddn.com/docker/ltp_3_4_0.tar>`_ 下载的文件较大,下载完成后比较其(md5=f42d128a20e26a4b8c2edf63932fed67)核对是否下载正确。注意此步骤与2.1功能相同,尝试一种可行方案即可。更推荐2.1方案。:
docker load -i ltp_3_4_0.tar
在配置中给docker运行给予足够大的内存。我们这里设置了6G运行内存。
使用如下命令启动容器,这里的8080是映射到本地的端口号,可以根据需要改动为其他未占用的端口:
docker run -d -p 8080:12345 ltp/ltp /ltp_server --last-stage all
使用如下命令测试服务器是否部署成功。启动后可能需要等待数十秒的模型加载时间。:
curl -d "s=他点头表示同意我的意见。&f=xml&t=all" http://127.0.0.1:8080/ltp
按照文档进行接口访问即可
如果你想要使用LTP,必须拥有两部分内容
- LTP项目文件
- LTP模型文件
你可以从以下链接获得最新的LTP项目源码。
如果你是windows用户,你也可以跳过从源代码编译的环节,从以下链接获得编译好的二进制文件
你可以从以下链接获得LTP的模型文件
- 百度云 当前模型版本3.3.1
LTP使用编译工具CMake构建项目。在安装LTP之前,你需要首先安装CMake。CMake可以在 CMake项目官网 。如果你是Windows用户,请下载CMake的二进制安装包;如果你是Linux,Mac OS或Cygwin的用户,可以通过编译源码的方式安装CMake,当然,你也可以使用Linux的软件源来安装。
在项目文件夹下新建一个名为 :file:`build` 的目录,打开CMake Gui,在source code中填入项目目录,在binaries中填入 :file:`build` 目录。然后Configure -> Generate。
或者在命令行build目录下运行:
cmake ..
构建后得到ALL_BUILD、RUN_TESTS、ZERO_CHECK三个VC Project。使用VS打开ALL_BUILD项目,选择Release [1] 方式构建项目。
Linux、Mac OSX和Cygwin的用户,可以直接在项目根目录下使用命令进行编译:
./configure make
编译成功后,会在 :file:`bin` 目录下生成以下二进制程序:
程序名 | 说明 |
---|---|
:file:`ltp_test` | LTP主程序 |
:file:`ltp_server` [2] | LTP Server |
在 :file:`bin/examples` 目录下生成以下二进制程序:
程序名 | 说明 |
---|---|
:file:`cws_cmdline` | 分词模块命令行程序 |
:file:`pos_cmdline` | 词性标注模块命令行程序 |
:file:`ner_cmdline` | 命名实体识别模块命令行程序 |
:file:`par_cmdline` | 依存句法分析模块命令行程序 |
在 :file:`lib` 目录下生成以下静态链接库 [3] :
程序名 | 说明 |
---|---|
:file:`splitsnt.lib` | 分句lib库 |
:file:`segmentor.lib` | 分词lib库 |
:file:`postagger.lib` | 词性标注lib库 |
:file:`parser.lib` | 依存句法分析lib库 |
:file:`ner.lib` | 命名实体识别lib库 |
:file:`srl.lib` | 语义角色标注lib库 |
在 :file:`tools/train` 目录下生成以下二进制程序:
程序名 | 说明 |
---|---|
:file:`otcws` | 分词训练和测试套件 |
:file:`otpos` | 词性标注训练和测试套件 |
:file:`otner` | 命名实体识别训练和测试套件 |
:file:`nndepparser` | 依存句法分析训练和测试套件 |
:file:`lgsrl` | 语义角色标注训练和测试套件 |
注
[1] | :file:`boost::multi_array` 与VS2010不兼容的bug已经在3.1.0中得到修复,3.1.x及以上版本已经可以使用Debug方式构建,但出于效率考虑,仍旧建议使用Release方式构建。 |
[2] | 在window版本中 :file:`ltp_server` 、:file:`Maxent` 、:file:`SRLExtract` 、:file:`SRLGetInstance` 并不被编译。 |
[3] | window下产生的静态库的后缀是.lib,linux下产生的静态库的后缀是.a |