以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 Semantic Web(语义Web)/描述逻辑/本体 』  (http://bbs.xml.org.cn/list.asp?boardid=2)
----  关于中科院分词工具ICTCLAS3.0的问题,请教高手!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=2&rootid=&id=58139)


--  作者:liukun19851007
--  发布时间:1/17/2008 10:24:00 AM

--  关于中科院分词工具ICTCLAS3.0的问题,请教高手!
请问有哪位高手用过中科院分词工具ICTCLAS3.0,我运行它里面的一个例子,出了一点问题,望各位高手指教啊!情况是这样的:


定义类ictclas30(自带的定义)

package ictclas.i3s.ac;

import java.io.*;

public class ictclas30 {
 
 public native   boolean ICTCLAS_Init(byte[] sPath);
 public native   boolean ICTCLAS_Exit();
 public native   int ICTCLAS_ImportUserDict(byte[] sPath);
 public native   byte[] ICTCLAS_ParagraphProcess(byte[] sSrc);
 public native   boolean ICTCLAS_FileProcess(byte[] sSrcFilename,byte[] sDestFilename);

 public native   float ICTCLAS_GetUniProb(byte[] sWord);
 public native   boolean ICTCLAS_IsWord(byte[] sWord);
 public native byte[] nativeProcAPara(byte[] src);
  
static {
  System.loadLibrary("./dll/ICTCLAS30");
}

}

例子(自带测试程序中的一个片段)

package ictclas.i3s.ac;

import ictclas.i3s.ac.ictclas30;

import java.util.*;
import java.io.*;

public class testIcsclas30 {
 
 public static void main(String[] args) throws Exception{
  ictclas30 testICTCLAS30 = new ictclas30();
  String argu="";
  if (testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) == false) {
   System.out.println("Init Fail!");
   return ;
  }
  System.out.println("Init Success!");
}
}

程序一运行到:
if (testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) == false) 这里时就出错,出错信息如下:

Exception in thread "main" java.lang.UnsatisfiedLinkError: ICTCLAS_Init
 at ictclas.i3s.ac.ictclas30.ICTCLAS_Init(Native Method)
 at ictclas.i3s.ac.testIcsclas30.main(testIcsclas30.java:21)

请高手指点指点,非常感谢!



--  作者:jpz6311whu
--  发布时间:1/17/2008 11:35:00 AM

--  
dll加载错误
楼主用的ICTCLAS3.0是不是那个试用一个月,之后要收费的版本?
为什么我的class ictclas30版本和你不一样:
/* Use static intializer */
static {
  System.loadLibrary("ICTCLAS30");
}

你从哪里下载的?


--  作者:liukun19851007
--  发布时间:1/17/2008 12:08:00 PM

--  
恩,对,就是那个,那个路径是我改了一下的。
--  作者:jpz6311whu
--  发布时间:1/17/2008 12:16:00 PM

--  
那个是要licene的,你注册了没有,就是那个licene.dll
--  作者:liukun19851007
--  发布时间:1/17/2008 12:41:00 PM

--  
已经发邮件注册过了,目前还在试用期当中。
--  作者:liukun19851007
--  发布时间:1/17/2008 12:45:00 PM

--  
你的用起来没有出这样的错误吗?
--  作者:liukun19851007
--  发布时间:1/17/2008 1:39:00 PM

--  
谢谢你,问题已经解决了,就是缺少那个license.dll,现在运行那个实例程序,testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) 的值总是false,请问这个也是与权限有关吗?
--  作者:jpz6311whu
--  发布时间:1/17/2008 4:18:00 PM

--  
以下是引用liukun19851007在2008-1-17 13:39:00的发言:
谢谢你,问题已经解决了,就是缺少那个license.dll,现在运行那个实例程序,testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) 的值总是false,请问这个也是与权限有关吗?


你传给ICTCLAS_Init的参数是不是正确的?
--  作者:liukun19851007
--  发布时间:1/17/2008 5:22:00 PM

--  
参数没问题吧,例子上面就是这样的:argu.getBytes("GB2312"),一个字节数组。
--  作者:liukun19851007
--  发布时间:1/19/2008 2:50:00 PM

--  
呵呵,问题已经解决了,是那个user.lic 的问题。。。如果没有权限是不行的
--  作者:nadiahu
--  发布时间:7/8/2008 10:04:00 AM

--  
谢谢两位的讨论,受益匪浅
--  作者:coolbrightboy
--  发布时间:6/6/2009 2:58:00 PM

--  
我用的是2009年的windows_JNI_32版本(目前最新的),这个不用注册码
我做了一下,可
                  String argu = ".";
if (testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) == false)
{
System.out.println("Init Fail!");
return;
}
总是打印Init Fail!即ICTCLAS_Init总失败,我查了下原因,他们说有2个, 1 )所需的数据不符或失踪2 )配置文件丢失或无效的参数。我想可能是配置文件的原因吧,我的配置文件是
<?xml version="1.0" encoding="GB2312"?>
<ICTCLAS>
<DataPath>D:/share/JavaProjects/hibernate/ictclasTest3/Data </DataPath> <TagSet>D:/share/JavaProjects/hibernate/ictclasTest3/Data/ICTPOS.map </TagSet <UserDict>Off </UserDict>
<UserDictPrior>On </UserDictPrior>
<Log>On </Log>
<version>3.0 </version>
<Modify>2009-06-5 </Modify>
<Lexicon>2009-06-5 </Lexicon>
</ICTCLAS>
其中:D:/share/JavaProjects/hibernate/是我的项目路径,
D:/share/JavaProjects/hibernate/ictclasTest3/Data是我的项目中的Data文件夹路径
D:/share/JavaProjects/hibernate/ictclasTest3/Data/ICTPOS.map是我的项目中的ICTPOS.map路径
请问这么配置对不对
--  作者:coolbrightboy
--  发布时间:6/6/2009 2:59:00 PM

--  
我用的是2009年的那个windows_JNI_32版本,现在是最新版本。
我做了一下,可
                  String argu = ".";
if (testICTCLAS30.ICTCLAS_Init(argu.getBytes("GB2312")) == false)
{
System.out.println("Init Fail!");
return;
}
总是打印Init Fail!即ICTCLAS_Init总失败,我查了下原因,他们说有2个, 1 )所需的数据不符或失踪2 )配置文件丢失或无效的参数。我想可能是配置文件的原因吧,我的配置文件是
<?xml version="1.0" encoding="GB2312"?>
<ICTCLAS>
<DataPath>D:/share/JavaProjects/hibernate/ictclasTest3/Data </DataPath> <TagSet>D:/share/JavaProjects/hibernate/ictclasTest3/Data/ICTPOS.map </TagSet <UserDict>Off </UserDict>
<UserDictPrior>On </UserDictPrior>
<Log>On </Log>
<version>3.0 </version>
<Modify>2009-06-5 </Modify>
<Lexicon>2009-06-5 </Lexicon>
</ICTCLAS>
其中:D:/share/JavaProjects/hibernate/是我的项目路径,
D:/share/JavaProjects/hibernate/ictclasTest3/Data是我的项目中的Data文件夹路径
D:/share/JavaProjects/hibernate/ictclasTest3/Data/ICTPOS.map是我的项目中的ICTPOS.map路径
请问这么配置对不对
--  作者:fanyi
--  发布时间:6/6/2009 9:04:00 PM

--  
我以前用的时候也出现过这样的问题,我当时直接问的他们的在线咨询,他只告诉我重新下载,我重新下载一个就好使了。
--  作者:lingjoin
--  发布时间:3/22/2010 4:32:00 PM

--  
可以访www.lingjoin.com。他们的分词完全兼容ICTCLAS,2010版本功能更强大。
--  作者:lingjoin
--  发布时间:3/26/2010 3:53:00 PM

--  
好像已经有ICTCLAS2010版本,免费不要注册的。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
93.750ms