China Open source community
站内导航:

 
 
 
当前位置: 首页 >> 应用软件 >> 网络相关 >> 为lucene加入简单中文分词
 

为lucene加入简单中文分词

作者:      来源:zz     发表时间:2006-07-17     浏览次数:      字号:    

 看到很多人做lucene的应用时候都要面临中文分词怎么加的问题,下面介绍一个简单的中文词库,这个词库附带相应的算法,数据结构学过的人看懂没什么问题,只要简单的构造一个对象,就可以分词了,对于不是太大的应用来说,还是相当可行的,点击下载
      该分词库使用很简单,先初试化该类
      ChineseSegmenter seg = ChineseSegmenter.getGBSegmenter();
      然后调用seg.segmentLine("要分词的中文段", " ")//第二个参数为分词之间以什么间隔
      譬如
    输出为儿童 节日 儿童节   
    
     下面简要说以下如何加到搜索代码里,
      lucene 建立索引的代码引入的analysis分词法为 WhitespaceAnalyzer
      import org.apache.lucene.analysis.WhitespaceAnalyzer;

  IndexWriter writer = new IndexWriter(Directory, new WhitespaceAnalyzer(),true);

    
public void AddDocument(String Title , String Content , ..)
    {
        Document doc 
= new Document();
        
        ChineseSegmenter cs
= ChineseSegmenter.getGBSegmenter();    //初始化该类
        
            doc.add(Field.Text(
"content", cs.segmentLine(Content, " "))); // 将分好的词写进索引 
    
            doc.add(Field.Text(
"title", cs.segmentLine(Title, " ")));


        
try
        {
            writer.addDocument(doc);
        }
        
catch(IOException e)
        {
            System.
out.println("wrong");
            e.printStackTrace();
        }
    }

        上面建立索引时候为把文章的标题和内容进行断词然后存入了索引, 搜索的时候同样用WhitespaceAnalyzer,
 然后把结果hit中的结果合并就可以了.

 public static void main(String[] args) throws Exception {

      ChineseSegmenter seg 
= ChineseSegmenter.getGBSegmenter();
      System.
out.println(seg.segmentLine("儿童节日"" "));
    
   }

编辑 webmaster

 
 
 
评论
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •  
    中国源码网 - WWW.YUANMA.ORG - 中国开放源代码社区