中科院分词ICTCLAS5.0_JNI 使用方法

1.简介

中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chinese Lexical Analysis System),该系统的功能有:中文分词;词性标注;未登录词识别。分词正确率高达97.58%(最近的973专家组评测结果),基于角色标注的未登录词识别能取得高于90%召回率,其中中国人名的识别召回率接近98%,分词和词性标注处理速度为31.5KB/s。ICTCLAS 和计算所其他14项免费发布的成果被中外媒体广泛地报道,国内很多免费的中文分词模块都或多或少的参考过ICTCLAS的代码。

2.下载

下载地址:

下载以后解压。

解压后的目录结构:

必要说明:

user.lic,用户授权文件。

3.新建Eclipse项目。

然后将打开API文件夹下的ICTCLAS文件夹拷贝到src目录下,其它的文件夹和文件全部拷贝到工程目录下。工程结构如图所示:

4.测试

你可以自己新建一个测试类,也可以使用已有的测试类。

比如Sample文件夹里有个例子:TestMain.java,你可以将它复制到Eclipse中。然后运行。就可以看到结果了。

注意,ICTCLAS会自动生成一个ICTCLAS.log文件,查看这个文件能获取许多有用的信息。

5.各种问题。

[java] view plain copy

  1. a.Exception in thread "main" java.lang.UnsatisfiedLinkError: ICTCLAS50.ICTCLAS_Init([B)Z
  2. at ICTCLAS50.ICTCLAS_Init(Native Method)
  3. at TestMain.testICTCLAS_ParagraphProcess(TestMain.java:33)
  4. at TestMain.main(TestMain.java:13)

解决办法:

这种情况是你把ICTCLAS50_Windows_32_JNI\API\ICTCLAS\I3S\AC目录下的类ICTCLAS50.java 没有放到包ICTCLAS.I3S.AC里。

b.将Data文件夹和其它文件,放置到一个configure文件夹下ICTLAS不识别:

[java] view plain copy

  1. Exception in thread "main" java.lang.UnsatisfiedLinkError: no ICTCLAS50 in java.library.path
  2. at java.lang.ClassLoader.loadLibrary(Unknown Source)
  3. at java.lang.Runtime.loadLibrary0(Unknown Source)
  4. at java.lang.System.loadLibrary(Unknown Source)
  5. at ICTCLAS.I3S.AC.ICTCLAS50.<clinit>(ICTCLAS50.java:26)
  6. at TestMain.testICTCLAS_ParagraphProcess(TestMain.java:32)
  7. at TestMain.main(TestMain.java:15)

即加载库文件和Data文件夹、用户授权文件user.lic的错误。

解决办法:

一种方法是:修改ICTCLAS50类和测试类的参数,指定库文件。

[java] view plain copy

  1. static
  2. {
  3. String path = new File("").getAbsolutePath()+"\\<span style="font-family:SimSun; line-height:25.1875px">configure</span>\\ICTCLAS50.dll";
  4. //      System.loadLibrary("ICTCLAS50");
  5. System.load(path);
  6. }

然后再修改TestMain类中的testICTCLAS_ParagraphProcess()方法的argus的值,告诉ICTCLAS,你改变了工程目录。

部分代码如下:

[java] view plain copy

  1. ICTCLAS50 testICTCLAS50 = new ICTCLAS50();
  2. //          //String argu = ".";
  3. String argu = new File("").getAbsolutePath()+"\\configure";
  4. //初始化
  5. if (testICTCLAS50.ICTCLAS_Init(argu.getBytes("GB2312")) == false)
  6. {
  7. System.out.println("Init Fail!");
  8. return;
  9. }

还有testICTCLAS_FileProcess()方法。

修改后的工程目录:

时间: 2024-10-13 17:47:07

中科院分词ICTCLAS5.0_JNI 使用方法的相关文章

针对中科院java接口的使用方法和问题

1.下载附加的中科院分词工具包(要下载的到我的博客里面免费下载即可) 2.解压后会看到如下几个文件夹 3.把java工程导入eclipse中,点击import,再选择existing project into workspace 4.导入sample文件下的JnaTest_NLPIR的java工程文件,按确定即可导入 5.在NlpirTest类下修改路径问题: (1)我的NLRIR的路径是"E:\数据挖掘\数据挖掘课程作业(大三)\汉语分词20140928\lib\win64\NLRIR&quo

java中科院分词配置(ICTCLAS)

之前零零散散用过几次,配置好了就没管过.后来再用的时候就忘了怎么配置,又找了很多资料(太麻烦了).现总结一下当作笔记: 首先,下载中科院分词项目. github网址:https://github.com/NLPIR-team/NLPIR/tree/master/NLPIR%20SDK/NLPIR-ICTCLAS 使用的时候两种方法 一种直接在eclipse中导入如图所示的项目 在这个java文件中配置两个路径 第一个: // 定义并初始化接口的静态变量 CLibrary Instance = (

中科院分词工具使用

中科院分词工具java的配置与里面自带的讲解相同,下面是代码 package xieru; import hello.Hello.CLibrary; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileRea

11大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用11大Java开源中文分词器 2.对比分析11大Java开源中文分词器的分词效果 本文给出了11大Java开源中文分词的使用方法以及分词结果对比代码,至于效果哪个好,那要用的人结合自己的应用场景自己来判断. 11大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /** * 获取文本的所有分词结果, 对比不同分词器结果 * @author 杨尚川 */ public interface WordSegmenter {

9大Java开源中文分词器的使用方法和分词效果对比

本文的目标有两个: 1.学会使用9大Java开源中文分词器 2.对比分析9大Java开源中文分词器的分词效果 9大Java开源中文分词器,不同的分词器有不同的用法,定义的接口也不一样,我们先定义一个统一的接口: /**  * 获取文本的所有分词结果, 对比不同分词器结果  * @author 杨尚川  */ public interface WordSegmenter {     /**      * 获取文本的所有分词结果      * @param text 文本      * @retur

中科院分词ICTCLAS导入用户词典后分词结果一样?

1 package ICTCLAS.I3S.Test; 2 3 import java.io.UnsupportedEncodingException; 4 5 import ICTCLAS.I3S.AC.ICTCLAS50; 6 7 public class Test_UserDic { 8 9 /** 10 * @param args 11 * @throws UnsupportedEncodingException 12 */ 13 public static void main(Stri

ICTCLA中科院分词工具用法(java)

摘要:为解决中文搜索的问题,最开始使用PHP版开源的SCWS,但是处理人名和地名时,会出现截断人名地名出现错误.开始使用NLPIR分词,在分词准确性上效果要比SCWS好.本文介绍如何在windows系统下编译JAVA ,生成可以执行的jar文件. NLPIR的下载地址: http://ictclas.nlpir.org/downloads GitHub的地址: https://github.com/NLPIR-team/NLPIR 两个版本有一些不同,本文将分别讲解如何利用Eclipse建立工程

中科院分词系统(NLPIR)JAVA简易教程(2014-11-12)

这篇文档内容主要从官方文档中获取而来,对API进行了翻译,并依据个人使用经验进行了一些补充,鉴于能力有限.水平较低,文档中肯定存在有很多不足之处,还请见谅. 如果要用JAVA来使用NLPIR,需要通过JNA来调用NLPIR的函数来实现.下面通过具体的例子来进行说明: 首先在JAVA项目中新建一个接口,继承JNA的Library接口,在接口中定义对NLPIR一系列函数的实现(具体API可参见include文件夹中的头文件NLPIR.h). import com.sun.jna.Library; p

[遇见时光]中科院分词工具NLPIR,Not valid license or your license expired!

第一词运行的时候下载的版本不新,然后就报错Not valid license or your license expired!,后来在网上查了许久才发现,NLPIR经常更新,要使用最新的Data才可以. 去官网下载最新的工具包,解压后把Data替换旧的Data文件夹,再运行就不会出错了. 友情提示,如何配置NLPIR参考我二师兄的博客http://www.cnblogs.com/CheeseZH/p/4585477.html