a. 安装 svn , 从 apache 中下载这最新版本,(http://svn.apache.org/repos/asf/lucene/nutch/branches/branch-0.9/ )这样可以用ant工具进行编译,直接下载的包文件好不能用ant
b. 安装 ant. http://ant.apache.org/ 下载最新编译工具
c. 安装 javacc https://javacc.dev.java.net/
d. 在环境变量中加入 :D:\javacc\bin;D:\ant\bin
1). 使用 ICTCLAS 组件 ,经过测试,ICTCLAS 可以在 cygWin 下使用 ,把 ICTCLAS 的 dll 文件放到 \lib\native\ICTCLAS.dll下,不然会找不到ICTCLAS.dll
2)。把 ICTCLAS 打包成 .jar(ICTCLAS.jar) 放到 \lib 目录下,这样就可以调用里面的 分词方法了。
3。 将 ICTCLAS 中的 data 类也要放到 这个目录,分词的时候要调用这个词库()
4. 修改代码,\src\java\org\apache\nutch\analysis下的 NutchAnalysis.jj
| <SIGRAM: (<CJK>)+ >
{
System.out.println("");
}
让他支持中文分词
5. 使用 javacc 编译,生成代码
6. 修改NutchDocumentTokenizer.java 中的代码,加入
private static Reader myreader = null;
public NutchDocumentTokenizer(Reader reader) {
super(process(reader));
tokenManager = new NutchAnalysisTokenManager(myreader);
}
public static Reader process(Reader reader){
BufferedReader in = new BufferedReader(reader);
String line="";
String temp=null;
try{
while((temp =in.readLine())!=null){
line += temp.replaceAll("/", "");
System.out.println(line);
}
}catch(Exception e){
System.out.println(e);
}
try{
if(line!=null && !line.equals("")){
com.xjt.nlp.word.ICTCLAS ic = com.xjt.nlp.word.ICTCLAS.getInstance();
line = ic.paragraphProcess(line);
myreader = new StringReader(line);
}
}catch(Exception e){
}
return myreader;
}
这样使得在使用分词前,先进行用 ICTCLAS 进行处理,但有些文件处理不了,比如其中有 "/"的,有待改善。
再使用 bin/nutch crawl urls -dir crawled -depth 3 -topN 50 重新生成一个 Index 的目录,用下面的工具luke看里面的分词就可以看到里面的词是接ICTCLAS 分成的词,而不是一个一个的单字.
转自
http://blog.csdn.net/chris1081/archive/2008/08/28/2840962.aspx
另
http://blog.csdn.net/chris1081/archive/2008/08/28/2840980.aspx
该版主对nutch研究比较多。