Linux上本地使用LTP——ltp4j的使用
来源:互联网 发布:java 银行外包公司 编辑:程序博客网 时间:2024/05/21 12:40
由于要处理大量文本,所以使用LTP-CLOUD的REST API方式来处理文本效率实在很低,而且由于网络原因经常出错。好在LTP可以在本地使用,下面就介绍如何在Linux系统下进行安装配置。MacOS上没有编译成功,所以暂时不提。
一.环境:
本人系统:centOS 7
JDK版本:JDK 1.7
二 .步骤:
//下载
LTP下载:https://github.com/HIT-SCIR/ltp
LTP4J下载:https://github.com/HIT-SCIR/ltp4j
3.3.1 版本ltp_data下载:
https://pan.baidu.com/share/link?shareid=1988562907&uk=2738088569#path=%252Fltp-models
// 创建自己的一个ltp文件夹,将ltp4j-master移入,修改ltp-master文件名为ltp,复制到ltp4j-master下面,替换空的ltp。
//安装cmake,ubuntu下直接用apt-get install
yum -y install cmake
//安装ant,ubuntu下直接用apt-get install
yum -y install ant
//进入到ltp4j-master路径下,然后进入ltp下
cd ltp
//检查编译环境
./configure
// 确认没有问题后开始编译ltp
make
//返回ltp4j-master目录下
cd ..
//编译,编译之前先修改CMakeLists.txt下的LTP_HOME
cmake -DLTP_HOME=`pwd`/ltp/ .
make
编译完成后会生成一个 libs文件夹,下面是以.so为后缀的动态链接库
//生成ltp4j.jar包
ant
完成后生成一个output文件夹,在其下的jar文件里有生成的ltp4j.jar包
//添加jni动态库路径
gedit /etc/profile
在/etc/profile里的最后添加
export LD_LIBRARY_PATH=LD_LIBRARY_PATH:`pwd`/libs/:`pwd`/ltp/lib
使/etc/profile生效
source /etc/profile
三.使用
(一)Eclipse
//创建一个新的java工程
//新建一个文件,我使用的是官方文档提供的分词的例子
import java.util.ArrayList;import java.util.List;import edu.hit.ir.ltp4j.*;public class TestSegment { public static void main(String[] args) { // Segmentor.release(); if(Segmentor.create("/home/qichenglin/ltp/ltp_data/cws.model")<0){ System.err.println("load failed"); return; } String sent = "我是中国人"; List<String> words = new ArrayList<String>(); int size = Segmentor.segment(sent,words); for(int i = 0; i<size; i++) { System.out.print(words.get(i)); if(i==size-1) { System.out.println(); } else{ System.out.print("\t"); } } Segmentor.release(); }}
//报错是因为没有导入jar包
工程右键build path,configure build path,在libraries下add external jars导入ltp4j-master/output/jar/下面的ltp4j.jar
导入后为jar包设置本地库地址(java libraries path) ,动态库在ltp-master下的libs文件下,如下图
//完成后就可以开始运行了,注意
Segmentor.create(“/home/qichenglin/ltp/ltp_data/cws.model”)<0
要正确的model的路径,可以是绝对路径和相对路径
运行结果:
(二)命令行
// 把TestSegment.java放到ltp-master的examples下用如下命令编译
javac -cp "output/jar/ltp4j.jar" examples/TestSegment.java
//运行
java -cp "output/jar/ltp4j.jar:examples" TestSegment
运行结果:
反思:之前由于没有真正弄懂编译过程,导致一直报错:
java.lang.UnsatisfiedLinkError:方法名
后来仔细看了论坛里的内容,再对照自己从Github上下载的源码文件发现ltp文件夹下是空的,才明白整个步骤。可惜官方的使用文档说得不够清楚,我自己从Github上下载源码使用也还不熟,所以导致浪费了很多时间,但是弄出来,也有了一些经验还是值得的。
之前在Mac上也是同样的错误,但我用正确的步骤编译的时候出错了,然后官方文档上只说了在windows和Linux系统上测试通过,所以暂时先不管了。
- Linux上本地使用LTP——ltp4j的使用
- LTP随笔——本地调用ltp之ltp4j
- LTP在实践中的使用
- Linux LTP安装与使用
- 自然语言处理包 哈工大 LTP的使用
- LTP安装和使用
- 哈工大LTP编译使用
- python ltp使用
- LTP在arm-linux-交叉编译环境上的安装
- linux-test-project/ltp —— 简介
- 使用LTP套件对Linux系统进行压力测试
- python3使用ltp语言云
- 哈工大语言云(LTP)本地安装使用及Python调用
- 哈工大语言云(LTP)本地安装使用及Python调用
- 哈工大语言云(LTP)本地安装使用及Python调用
- git在本地仓库上的使用
- GIT的本地使用(上)
- 从网页上打开本地应用程序——Windows下 URI Scheme的使用
- iOS--线程安全03
- C# 将应用程序显示在扩展桌面
- linux(centos 7) 环境 mongodb 安装,配置,创建用户密码
- ffmpeg源码分析--6.关于mpeg文件格式2之video的track
- 共享可变性设计中存在风险以及解决方法(四)
- Linux上本地使用LTP——ltp4j的使用
- wanmpserve集成环境phpmyadmin修改密码后如何进入
- 连接mysql使用长连接还是短连接的选择
- ffmpeg源码分析--7.关于mpeg文件格式3之audio的track
- 走过2015,2016我将继续前行
- leetcode——Is Subsequence
- View及部分控件代码
- PHP函数—htmlentities 、htmlspecialchars、addslashes的使用
- 「 PSR规范」PSR-2 编码风格规范