中文分词配置好后,需要对源代码进行一些修改,否则在爬虫和搜索时候不能正确分词。中文分词器回头一起补充上。我的nutch版本1.0。(修改打包,放到lib包中,记得将跟目录上的nutch.job删掉。)
爬虫
:org.apache.nutch.indexer.lucene.LuceneWriter 需要对write方法进行一些修改,以中文分词为主。nutch默认加载en分词器。
public void write(NutchDocument doc) throws IOException {
final Document luceneDoc = createLuceneDoc(doc);
String lang = null;
if(luceneDoc.get("lang") == null) {
lang = "zh";
}
// final NutchAnalyzer analyzer = analyzerFactory.get(luceneDoc.get("lang"));
final NutchAnalyzer analyzer = analyzerFactory.get(lang);
if (Indexer.LOG.isDebugEnabled()) {
Indexer.LOG.debug("Indexing [" + luceneDoc.get("url")
+ "] with analyzer " + analyzer + " (" + luceneDoc.get("lang")
+ ")");
}
writer.addDocument(luceneDoc, analyzer);
}
搜索
:下面是之前做的记录,粘贴出来也许能给需要的朋友带来些帮助。(修改后打包放到web的lib目录里)
(1) 找到:org.apache.nutch.analysis.NutchAnalysis
(2) 添加一个方法:
/**
* 20090705 biaowen 实现:
* 不知道为什么nutch提供的默认parser对中文分词无效。
* 所以自己加上这方法,使用lucene来代替,可做为原来方法的替代。
* @param conf
* @return
* @throws ParseException
*/
final public Query parseByLucene(Configuration conf) throws ParseException {
Query query = new Query(conf);
if (queryString.length() > 0) {
// lucene分词
org.apache.lucene.queryParser.QueryParser parserLucene =
new org.apache.lucene.queryParser.QueryParser("", analyzer);
org.apache.lucene.search.Query q = null;
try {
q = parserLucene.parse(queryString);
} catch (org.apache.lucene.queryParser.ParseException e) {
LOG.info("字符窜解析异常:"+e.getMessage());
}
String termStrings = q.toString();
if (termStrings.indexOf(" ") > -1)
termStrings = termStrings.substring(1, termStrings.length()-1);
String[] terms = termStrings.split(" ");
for (int i = 0; i < terms.length; i++) {
String[] tems = {terms[i]};
query.addRequiredPhrase(tems, Clause.DEFAULT_FIELD);
}
}
return query;
}
(3) 将NutchAnalysis.parseQuery方法中的
:return parser.parse(conf); 修改为--》return parser.parseByLucene(conf);
分享到:
相关推荐
作为舆情监测系统的一部分,本文的目标是基于Nutch,同时,结合目前最常用中文分词技术,根据不同的中文分词方法,实验并得出不同分词方法在性能以及使用环境上的优缺点,以此为舆情监测系统选择合适的中文分词方法...
nutch应用,nutch中文分词,nutch中文乱码
本实验的目标是利用开源工具Nutch和IKAnalyzer构建一个中文分词搜索引擎,旨在理解搜索引擎的基本工作流程,掌握网页爬取、分词处理以及搜索功能的实现。实验中,主要涉及的技术包括搜索引擎基础、Nutch的使用、...
Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...
基于Nutch的中文分词插件实现,张文龙,刘一伟,中文分词是中文垂直搜索引擎中的一个关键技术,分词的好坏直接影响提取文本的精确度。Nutch是一个开源的Web搜索引擎,它为英文用户�
用于Nutch的中文分词,效果向单簧管得得好,强烈建议支持这种格式的数据,这是一个里程碑
### 基于Java的搜索引擎Nutch中文搜索技术研究 #### 摘要与背景介绍 随着互联网技术的发展,搜索引擎已成为人们获取信息的重要途径之一。Nutch作为一个优秀的基于Java的开源搜索引擎,其英文搜索功能非常强大,但在...
Nutch支持多种中文分词工具,如HanLP、jieba和IK Analyzer等,这些工具能够将中文句子分割成有意义的词语,为后续的索引和查询提供基础。 4. **Nutch工作流程**:Nutch的工作流程主要包括URL发现(抓取种子URL并...
本部分将简要介绍Nutch插件的实际应用案例,包括中文分词插件、索引字段增强插件等。通过具体实例,读者可以更好地理解Nutch插件是如何在实际场景中发挥作用的,以及如何根据自身需求开发和集成插件。 #### 五、在...
nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...
在完成Nutch 1.7的搭建后,你可以进一步研究其工作原理,包括爬虫策略、链接分析算法、分词技术等。同时,Nutch与Hadoop结合可以处理大规模的数据抓取和索引,这在大数据领域有着广泛的应用。通过深入学习,你可以...
### 中文分词切分技术研究 #### 一、引言 中文分词作为中文自然语言处理中的一个重要环节,对于实现自动翻译、文本检索、语音识别等应用具有基础性的作用。与英文等西文相比,中文缺乏明显的词与词之间的分隔符...
9. **多语言支持**:Nutch 不仅支持英语,还可以通过插件支持其他语言的抓取和索引,如中文、日文等。 10. **搜索接口**:Nutch 提供了一个简单的搜索接口,用户可以通过该接口查询索引库中的内容,实现基本的搜索...
5. **分词与索引**:使用Analyzer进行中文或英文等语言的分词,然后将分词结果建立倒排索引。 6. **存储**:Nutch使用HDFS(Hadoop分布式文件系统)存储抓取的数据和索引。 7. **检索**:通过Solr或Elasticsearch等...
word分词是一个Java实现的中文分词组件,提供了多种基于...4、中文分词算法 之 基于词典的正向最小匹配算法 5、中文分词算法 之 基于词典的逆向最小匹配算法 5、Java开源项目cws_evaluation:中文分词器分词效果评估
2. **分词(Tokenization)**:Nutch使用了Apache Lucene库进行文本分析,包括分词、停用词移除、词干化等预处理步骤,以准备数据供索引使用。 3. **索引(Indexing)**:索引模块将抓取的网页内容转化为可供搜索的...