nutch-1.0添加JE中文分词-修改源码…

这几天一直在搞nutch中文分词,也转载了好几篇文章,但是都写的比较简单而且有错误,估计原作者肯定也是实现了,今天终于搞定了,介绍一下我实现的方法。
1 nutch有两种方式可以实现自定义的分词:
1>,直接修改源代码,对默认的分词器代码进行修改使其使用自定义中文分词程序。
2> ,插件机制,可以在不修改源代码基础上,以插件形式集成自定义中文分词功能。这中法可以参考nutch已经集成的德语和法语分词插件,只需作相应修改便可以完成。
2 我主要介绍一下直接修改源代码方式
关于修改原理可以参考前面的几篇文章,这里不再详述,我直接介绍添加JE分词方法
工具:eclipse  javacc ant 
2.1 首先下载JE分词包和nutch源代码,解压,导入eclisep工程,同时将JE分词包添加到Nutch的lib目录下,并导入到工程中,在eclisep下调试通过,注意需要2个包,
下载地址:

http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-mp3/lib/

http://nutch.cvs.sourceforge.net/nutch/nutch/src/plugin/parse-rtf/lib/

这部分可以参考nutch wiki站点:http://wiki.apache.org/nutch/RunNutchInEclipse1.0

2.2 对建立索引所用分词工具的修改
将下载的中文分词包放到lib目录下,改名为analysis-zh.jar(当然,你也可以不用改)。找到下面文件
src\java\org\apache\nutch\analysis\NutchDocumentAnalyzer.java
加入信息的分析类,你需要将该类导入。使用如下语句。
import jeasy.analysis.*;
修改tokenStream方法如下
public TokenStream tokenStream(String fieldName, Reader reader) {
Analyzer analyzer;
analyzer= new MMAnalyzer();
return analyzer.tokenStream(fieldName, reader);

2.3 对查询所用分析部分的修改
src\java\org\apache\nutch\analysis\中的NutchAnalysis.jj文件
将 <SIGRAM: <CJK> >
改为:| <SIGRAM: (<CJK>)+ >
使用javacc工具将NutchAnalysis.jj生成java文件,共会生成7个java文件,将他们拷贝到下面的文件夹中替 换原有文件。
同时需要修改ParseException.java,把Exception改为IOException
2.4 重新编译工程文件
修改nutch根目录下的文件build.xml文件
在build.xml添加一条指令(在第195行的下面加入一行),使的编译war文件的时候加入je-analysis的jar文件。 build.xml
<include name="lucene*.jar"/>
<include name="taglibs-*.jar"/>
<include name="hadoop-*.jar"/>
<include name="dom4j-*.jar"/>
<include name="xerces-*.jar"/>
<include name="tika-*.jar"/>
<include name="apache-solr-*.jar"/>
<include name="commons-httpclient-*.jar"/>
<include name="commons-codec-*.jar"/>
<include name="commons-collections-*.jar"/>
<include name="commons-beanutils-*.jar"/>
<include name="commons-cli-*.jar"/>
<include name="commons-lang-*.jar"/>
<include name="commons-logging-*.jar"/>
<include name="log4j-*.jar"/>
<include name="je-analysis-*.jar"/> <!-- add this line -->
</lib>
然后重新用ant编译
命令:进入nutch根目录执行 ant  会在build目录下生成nutch-1.0.job文件
然后执行:ant war  会在build目录下生成nutch-1.0.war web发布包
最后执行:  ant jar  会在buil目录下生成nutch-1.0.jar包
将这三个包拷贝出来替换原来的相应的包,或者重新解压一个nutch包拷贝到nutch目录下替换相应的包(注意把那个je-analysis-1.*.jar包要拷贝到lib目录下)
至此加入je分词完成
3 实验验证
配置nutch,执行crawl命令抓取网页,然后 部署刚才产生的nutch-1.0.war包到web服务器下,注意要配置nutch-site.xml文件
打开浏览器输入:http://localhost:8080/nutch-1.0
查查看,分词效果不错~~!!!
下一步研究重点:利用hadoop实现分布式抓取和分布式检索同时改进分词性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值