jsp中使用 ICTCLAS4J

來源:互聯網
上載者:User

前幾天我修改了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目錄下,就會出現詞庫找不到異常,如果用相對路徑也會報異常,這個問題困擾我兩天了,還望各位前輩高手幫忙。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.