现在的位置: 首页 > 综合 > 正文

jsp中使用 ICTCLAS4J

2013年03月13日 ⁄ 综合 ⁄ 共 1334字 ⁄ 字号 评论关闭

前几天我修改了ictclas4j中文分词系统,将其在JSP中调用,在加载词库时出现路径问题,调用方法是在JSP中实例化JAVA类,然后调用JAVA类的方法,完成中文分词,JSP代码如下::
<%@page contentType="text/html;charset=gb2312"%>
<%@page import="bean.*,org.ictclas4j.segment.*,org.ictclas4j.bean.*,java.io.*,java.util.*,org.ictclas4j.utility.*"%>
<%
String prm = new String();
request.setCharacterEncoding("gb2312");
prm = request.getParameter("txt1").toString();
out.println("分词前::<br/>");
out.println(prm+"<br/>");
SegTag segTag = new SegTag(1);
SegResult seg_res = segTag.split(prm);
String result = new String(seg_res.getFinalResult());
out.println("分此后::<br/>");
out.println(result);
%>
注意红色的代码,就在实例化SegResult对象的时候,加载词库代码如下:
public SegTag(int segPathCount) {
this.segPathCount = segPathCount;
coreDict = new Dictionary("e:\\nextspace\\Data\\coreDict.dct");

bigramDict = new Dictionary("e:\\nextspace\\Data\\bigramDict.dct");
personTagger = new PosTagger(Utility.TAG_TYPE.TT_PERSON, "e:\\nextspace\\Data\\nr", coreDict);
transPersonTagger = new PosTagger(Utility.TAG_TYPE.TT_TRANS_PERSON, "e:\\nextspace\\Data\\tr", coreDict);
placeTagger = new PosTagger(Utility.TAG_TYPE.TT_TRANS_PERSON, "e:\\nextspace\\Data\\ns", coreDict);
lexTagger = new PosTagger(Utility.TAG_TYPE.TT_NORMAL, "e:\\nextspace\\Data\\lexical", coreDict);
}
大家注意那些红色的代码,是加载词库的绝对路径,这样的话可以实现中文分词,但是转移到别的机器上后就会出现问题,因为这个绝对路径是相对于我的电脑而言的,如果转移到别的电脑后他的词库不在E盘,或者不再e:\nextspace\data目录下,就会出现词库找不到异常,如果用相对路径也会报异常,这个问题困扰我两天了,还望各位前辈高手帮忙。

抱歉!评论已关闭.