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 分成的词,而不是一个一个的单字.
zz:http://blog.csdn.net/xiajing12345/archive/2007/06/05/1638624.aspx