`
biaowen
  • 浏览: 74406 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nutch研究记录4(中文分词)

阅读更多

中文分词配置好后,需要对源代码进行一些修改,否则在爬虫和搜索时候不能正确分词。中文分词器回头一起补充上。我的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);

分享到:
评论
1 楼 kkppccdd 2009-12-04  
救世明主啊

相关推荐

    基于Nutch中文分词的研究与实现

    作为舆情监测系统的一部分,本文的目标是基于Nutch,同时,结合目前最常用中文分词技术,根据不同的中文分词方法,实验并得出不同分词方法在性能以及使用环境上的优缺点,以此为舆情监测系统选择合适的中文分词方法...

    nutch中文分词

    nutch应用,nutch中文分词,nutch中文乱码

    实验报告(利用Nutch和IKanalyzer构造中文分词搜索引擎)

    本实验的目标是利用开源工具Nutch和IKAnalyzer构建一个中文分词搜索引擎,旨在理解搜索引擎的基本工作流程,掌握网页爬取、分词处理以及搜索功能的实现。实验中,主要涉及的技术包括搜索引擎基础、Nutch的使用、...

    Nutch中文分词插件的编写与配置

    Nutch中文分词插件的编写与配置,由于Internet的迅猛发展,使得用户查找信息犹如大海捞针,而搜索引擎则能帮用户很好的解决这个问题。 Nutch是用java语言开发的,基于Lucene的完整的网络搜索引擎,并采用插件机制进行...

    论文研究-基于Nutch的中文分词插件实现 .pdf

    基于Nutch的中文分词插件实现,张文龙,刘一伟,中文分词是中文垂直搜索引擎中的一个关键技术,分词的好坏直接影响提取文本的精确度。Nutch是一个开源的Web搜索引擎,它为英文用户�

    nutch的中文分词词库文件

    用于Nutch的中文分词,效果向单簧管得得好,强烈建议支持这种格式的数据,这是一个里程碑

    基于Java的搜索引擎Nutch中文搜索技术研究

    ### 基于Java的搜索引擎Nutch中文搜索技术研究 #### 摘要与背景介绍 随着互联网技术的发展,搜索引擎已成为人们获取信息的重要途径之一。Nutch作为一个优秀的基于Java的开源搜索引擎,其英文搜索功能非常强大,但在...

    nutch开发资料 搜索引擎

    Nutch支持多种中文分词工具,如HanLP、jieba和IK Analyzer等,这些工具能够将中文句子分割成有意义的词语,为后续的索引和查询提供基础。 4. **Nutch工作流程**:Nutch的工作流程主要包括URL发现(抓取种子URL并...

    Nutch_插件深入研究

    本部分将简要介绍Nutch插件的实际应用案例,包括中文分词插件、索引字段增强插件等。通过具体实例,读者可以更好地理解Nutch插件是如何在实际场景中发挥作用的,以及如何根据自身需求开发和集成插件。 #### 五、在...

    Nutch中文教程nutcher.zip

    nutcher 是 Apache Nutch 的中文教程,在github上托管。nutch社区目前缺少教程和文档,而且教程对应版本号较为落后。nutcher致力于为nutch提供一个较新的中文教程和文档,供开发者学习。 github地址: ...

    Apache Nutch 1.7 学习总结

    在完成Nutch 1.7的搭建后,你可以进一步研究其工作原理,包括爬虫策略、链接分析算法、分词技术等。同时,Nutch与Hadoop结合可以处理大规模的数据抓取和索引,这在大数据领域有着广泛的应用。通过深入学习,你可以...

    中文分词切分技术研究

    ### 中文分词切分技术研究 #### 一、引言 中文分词作为中文自然语言处理中的一个重要环节,对于实现自动翻译、文本检索、语音识别等应用具有基础性的作用。与英文等西文相比,中文缺乏明显的词与词之间的分隔符...

    apache-nutch-2.3

    9. **多语言支持**:Nutch 不仅支持英语,还可以通过插件支持其他语言的抓取和索引,如中文、日文等。 10. **搜索接口**:Nutch 提供了一个简单的搜索接口,用户可以通过该接口查询索引库中的内容,实现基本的搜索...

    Nutch入门教程 高清 带书签

    5. **分词与索引**:使用Analyzer进行中文或英文等语言的分词,然后将分词结果建立倒排索引。 6. **存储**:Nutch使用HDFS(Hadoop分布式文件系统)存储抓取的数据和索引。 7. **检索**:通过Solr或Elasticsearch等...

    中文分词工具word-1.0,Java实现的中文分词组件多种基于词典的分词算法

    word分词是一个Java实现的中文分词组件,提供了多种基于...4、中文分词算法 之 基于词典的正向最小匹配算法 5、中文分词算法 之 基于词典的逆向最小匹配算法 5、Java开源项目cws_evaluation:中文分词器分词效果评估

    nutch-1.5.1源码

    2. **分词(Tokenization)**:Nutch使用了Apache Lucene库进行文本分析,包括分词、停用词移除、词干化等预处理步骤,以准备数据供索引使用。 3. **索引(Indexing)**:索引模块将抓取的网页内容转化为可供搜索的...

Global site tag (gtag.js) - Google Analytics