Nutch添加中文分词器

简介:
04 May 2011

0.准备工作,JDK6+,安装ant1.7.1+,安装javacc

tar xzvf apache-ant-1.7.1-bin.tar.gz -C /usr/local/
tar xzvf javacc-5.0.tar.gz -C /usr/local/

1.安装Nutch

tar xzvf nutch-1.0.tar.gz -C /usr/local/

2.测试中文分词

export LANG=zh_CN.GB18030 #此设置可使命令行输入的中文被NutchAnalysis正常读取

cd /usr/local/nutch-1.0/

java -classpath nutch-1.0.jar:./conf/:./lib/lucene-core-2.4.0.jar:./lib/hadoop-0.19.1-core.jar:./lib/commons-logging-1.0.4.jar:./lib/log4j-1.2.15.jar org.apache.nutch.analysis.NutchAnalysis

简写:

java -classpath nutch-1.0.jar:./conf/:./lib/* org.apache.nutch.analysis.NutchAnalysis
Query: 人逢喜事精神爽
人 逢 喜 事 精 神 爽

这里输入“人逢喜事精神爽”,从输出的结果可以看出Nutch默认处理是一元分词。

3.加入Paoding中文分词

cd /usr/local/nutch-1.0/src/java/org/apache/nutch/analysis/

vim NutchDocumentAnalyzer.java

修改:

  /** Returns a new token stream for text from the named field. */
  public TokenStream tokenStream(String fieldName, Reader reader) {
    Analyzer analyzer;
    /*
    if ("anchor".equals(fieldName))
      analyzer = ANCHOR_ANALYZER;
    else
      analyzer = CONTENT_ANALYZER;
    */

    analyzer = new net.paoding.analysis.analyzer.PaodingAnalyzer();

    return analyzer.tokenStream(fieldName, reader);
  }

拷贝paoding-analysis.jar到/usr/local/nutch-1.0/lib

打包nutch /usr/local/apache-ant-1.7.1/bin/ant jar 会在/usr/local/nutch-1.0/build目录下生成新的nutch-1.0.jar

测试新的nutch-1.0.jar

cd /usr/local/nutch-1.0/

## 导入庖丁词典路径
export PAODING_DIC_HOME=/dic

## 注意这里使用./build/下的新包
java -classpath ./build/nutch-1.0.jar:./conf/:./lib/* org.apache.nutch.analysis.NutchAnalysis
Query: 人逢喜事精神爽
人 逢 喜 事 精 神 爽

这里nutch还是用了一元分词,继续下一步。

4.修正nutch先使用一元分词,然后才将结果传递给分词器问题。

cd /usr/local/nutch-1.0/src/java/org/apache/nutch/analysis

## 修改NutchAnalysis.jj文件
vim NutchAnalysis.jj
将 “src/java/org/apache/nutch/analysis/NutchAnalysis.jj” line 130:
| <SIGRAM: <CJK> >
改为:
| <SIGRAM: (<CJK>)+ >

运行javacc生成java源文件

cd /usr/local/nutch-1.0/src/java/org/apache/nutch/analysis
/usr/local/javacc-5.0/bin/javacc NutchAnalysis.jj

重新打包nutch

cd /usr/local/nutch-1.0/
/usr/local/apache-ant-1.7.1/bin/ant jar

再测试新的nutch-1.0.jar

export PAODING_DIC_HOME=/dic
java -classpath ./build/nutch-1.0.jar:./conf/:./lib/* org.apache.nutch.analysis.NutchAnalysis
Query: 人逢喜事精神爽
"喜事 人逢喜事 精神 精神爽"

从结果可以看出已使用庖丁分词器分词了。

目录
相关文章
|
3月前
|
自然语言处理 数据挖掘 数据处理
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
本文将介绍 10 个在数据处理中至关重要的 Pandas 技术模式。这些模式能够显著减少调试时间,提升代码的可维护性,并构建更加清晰的数据处理流水线。
142 3
告别低效代码:用对这10个Pandas方法让数据分析效率翻倍
|
3月前
|
JSON 前端开发 API
快递单号生成器在线, 快递单号模拟生成器, 虚拟物流信息在线生成【python】
项目包含三个主要模块:快递单号生成器核心逻辑、Flask Web应用程序和前端HTML页面
|
5月前
|
人工智能 云计算 UED
「云工开物」官网全面焕新,持续助力高校AI人才培养与科研创新
阿里云“云工开物”计划致力于让计算普惠高校师生,推动AI时代的人才培养与科研创新。过去一年多,60万大学生受益于AI和算力支持,300余所高校的人工智能课程得到助力,200余所高校开展AI实训。近期,“云工开物”官网焕新升级,新增七大功能板块,优化用户体验,提供一站式资源获取、学习中心、活动中心、教学与科研合作等服务,助力高校师生掌握AI技能、参与实践并加速科研创新。
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
AI剧本生成与动画创作:能否成为短视频创作的革命性工具?
《AI剧本生成与动画创作》解决方案结合自然语言处理与深度学习技术,能自动生成剧本并转化为动画,极大提升创作效率,降低门槛。部署过程需约3小时,适合非专业用户快速响应热点内容。尽管在创意和细节上仍存不足,但已为短视频创作者提供高效路径,值得尝试。未来,随着技术进步,AI创作工具将带来更多惊喜。
259 10
AI剧本生成与动画创作:能否成为短视频创作的革命性工具?
|
8月前
|
机器学习/深度学习 数据采集 人工智能
《解锁AI时代必备技能,抢占未来先机》
在科技飞速发展的今天,AI已融入生活的方方面面。掌握AI时代的必备技能尤为重要,包括编程与数据处理、机器学习与深度学习、创新与协作及批判性思维与持续学习。编程语言如Python是关键工具,数据处理能力不可或缺;深入理解机器学习和深度学习能助你成为AI高手;创新思维和团队协作精神助力突破;批判性思维和持续学习确保不被淘汰。掌握这些技能,抓住机遇,实现自我价值,在AI时代乘风破浪。
245 0
|
10月前
|
数据采集 人工智能 分布式计算
《Java 与大数据框架:AI 数据预处理的强力联盟》
在人工智能领域,数据预处理是确保模型准确性和高效性的关键。Java 与 Hadoop、Spark 等大数据框架的结合,为处理海量数据提供了强大的支持。通过 Java 编写的 MapReduce 和 Spark 程序,可以高效进行数据清洗、转换和特征提取,充分利用分布式计算能力,缩短预处理时间,提升数据质量。Java 在整合这些框架时,不仅实现了任务调度和错误处理,还为未来的优化和技术进步奠定了基础。这一组合为 AI 数据预处理带来了高效的解决方案,推动了人工智能技术的发展。
288 18
|
11月前
|
机器学习/深度学习 自然语言处理 算法
多义词消歧
多义词消歧(WSD)是NLP中的重要任务,旨在确定词语在特定上下文中的确切含义。常用方法包括基于知识、统计、机器学习、深度学习、上下文嵌入、神经概率语言模型、图模型、规则、集成方法及跨语言消歧等。这些技术对于提升机器翻译、文本摘要、信息检索和问答系统的性能至关重要。
222 2
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
GEE——Google dynamic world中在影像导出过程中无法完全导出较大面积影像的解决方案(投影的转换)EPSG:32630和EPSG:4326的区别
288 0
|
JSON 小程序 前端开发
微信小程序--》小程序全局配置和详解下拉刷新和上拉触底页面事件
⚓经过web前端开发的学习,相信大家对于前端开发有了一定深入的了解,今天我开设了微信小程序,主要想从移动端开发方向进一步发展,而对于我来说写移动端博文的第一站就是小程序开发,希望看到我文章的朋友能对你有所帮助。
937 0
微信小程序--》小程序全局配置和详解下拉刷新和上拉触底页面事件
|
数据可视化 Shell 开发工具
如何在Github上上传文件和代码
如何在Github上上传文件和代码
525 0
如何在Github上上传文件和代码