zoukankan      html  css  js  c++  java
  • jsp中使用 ICTCLAS4J

    前几天我修改了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目录下,就会出现词库找不到异常,如果用相对路径也会报异常,这个问题困扰我两天了,还望各位前辈高手帮忙。

  • 相关阅读:
    渐统江湖的项目原型生成工具 Maven Archetype
    ANT的安装/配置笔记
    Maven服务器安装
    为什么Eclipse替代不了Maven
    Maven入门实战笔记11节[711]
    Maven入门实战笔记11节[15]
    Maven多模块项目中应用maventomcatplugin热部署
    使用 CXF、Spring、Maven 创建一个 SOAP 客户端
    maven2创建的archetypeArtifactId类型大全
    JdbcDaoSupport应用
  • 原文地址:https://www.cnblogs.com/cy163/p/1698592.html
Copyright © 2011-2022 走看看