ICTCLAS2011中文分词在java的web项目中的使用

ICTCLAS2011中文分词在java的web项目中的使用

本文包括(myeclipse与tomcat的整合过程、配置该中文分词到web项目运行过程)

 2011版附件下载:http://download.csdn.net/detail/caimo/7012941


由于ICTCLAS4版本出现split错误:

java.lang.ArrayIndexOutOfBoundsException:-1

at SegResult segResult = segTag.split(s);

at String classifyContent2 =ansmine.AbstracttoString(question, segTag);

因为在纯java环境完全可以运行,而放在myeclipse的web项目下面进行tomcat部署却各种错误,在修改ICTCLAS源文件的各种小bug之后还是如此。于是想到了可能是字符编码导致的字符分割异常, 最终想到了ICTCLAS4只支持GB2312编码。而web项目是UTF-8格式的,并且,网站项目用了MYSQL,这个中文不乱码,也用了utf-8,不可能全部改为GB2312,于是,在ICTCLAS官方网站上(http://ictclas.org/ictclas_download.aspx)找到了ICTCLAS2011版(官网下载:ICTCLAS2011_Windows_32_jni),该版本支持utf-8编码。

但是这个版本已经不完全是代码,已经封装成了JNI调用了。

初探ICTCLAS2011

解压下载的ICTCLAS2011.rar得到以下目录


其中API就是ICTCLAS分词调用库。

下面sample目录我们可以非常简单的知道这个API是如何调用的。

 

进入该目录,看到这个目录已经完全拷贝了那个API文件夹。可以看下readme.txt:

(一)windows下的JNI接口使用

 

1.安装jdk,设置JAVA环境变量

2.确定工程目录下有有效的授权文件user.lic

3.点击桌面开始->运行,键入cmd进入dos界面的命令行

4.进入到工程所在目录

  >cd E:\Project\IctClas_jni_demo

  >e:

6.编译 javac TestMain.java

7.执行 java  TestMain

 

安装好java,并设置好环境变量,其实就可以用javac编译TestMain.java,然后就可以运行TestMain了,结果是:


我们看到下面一行已经分好了词。

并且查看test_result.txt和testing_result.txt可以看到也已经根据test.txt分好词了。

注意到导入了用户词典userdict.txt之后分词结果已经受到影响。

研究一下TestMain.java就可以在自己的项目中运用了。下面TestMain.java:

import ICTCLAS.I3S.AC.ICTCLAS50;

import java.util.*;

import java.io.*;

导入了ICTCLAS分词库。

       注意到里面的2个函数,一个是对字符串处理然后得到分词后的字符串testICTCLAS_ParagraphProcess,一个是对文件输入输出testICTCLAS_FileProcess。本人用了第一个函数来处理分词。那么就看一下如何在web中调用吧。

 

在web项目中使用ICTCLAS中文分词


在myeclipse中创建web项目为QAsystem,那么将ICTCLAS的API目录中的ICTCLAS文件夹拷贝到src目录下(ctrl+v粘贴到工程src即可),然后把DATA和其他的文件放到根目录下面即可。

下面在com.gzqa.server包下建一个servlet,然后修改webroot\webinf下的web.xml,配置好servlet。

再新建一个Test.java,

import ICTCLAS.I3S.AC.ICTCLAS50;

然后把ICTCLAS自带的testMain.java中的一个字符串处理函数ParagraphProcess放到test.java中作为成员函数。

然后在servlet中调用该类的方法,就可以通过tomcat的环境运行中文分词程序了。

(其实不做servlet的话,ICTCLAS自带的testMain.java就可以拿来用了。这里是为了在tomcat下运行,因为之前本人一直搞不清楚到底ICTCLAS自带的那些DATA和ICTCLASS50.DLL等等文件放在哪里,经过测试,图左2和3所有文件,只能放在TOMCAT7.0的bin目录下)

更重要的是,把2DATA3其他文件放到tomcatbin目录下。


然后在myeclipse中设置tomcat的目录。


为什么要在myeclipse中配置?(如果自己拷贝到tomcat的webapps下,也是可以的。那么你编译项目后,又要重新拷贝项目的webroot里的所有文件,所以在没有完全成功的情况下,在myeclipse下运行会对修改比较方便)。

 

在弹出的对话框中,双击tomcat7.x即可运行web项目。


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值