• Nutch0.9加入ICTCLAS 支持中文分词等(转)


    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研究比较多。

  • 相关阅读:
    虚拟DOM和diff算法
    面向对象之封装
    面向对象之类和函数的属性
    面向对象之__init__方法
    面向对象之初始类和对象
    面向对象与面向过程详解
    CSS高级技巧
    CSS定位
    模块之re模块详解
    模块之logging模块详解
  • 原文地址:https://www.cnblogs.com/bnuvincent/p/1617251.html
Copyright © 2020-2023  润新知