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

  • 相关阅读:
    PhpStorm 2019.3 汉化包
    PHP性能监控
    Jsonp post 跨域方案
    解决前后端调用,跨域二次请求Access-Control-Max-Age
    npm安装全局模块之后项目提示找不到的解决
    centos7 安装nodejs 最新版
    基于 ThinkJS 的 WebSocket 通信详解
    php方法注释
    恶意评论过滤插件
    redis与memcached区别
  • 原文地址:https://www.cnblogs.com/cy163/p/1698592.html
Copyright © 2020-2023  润新知