综合二区_欧美成人综合_欧美成人二区_a黄视频_亚洲视频在线播放_一区二区三区视频免费看

当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > 自己写的一个基于词库的lucene分词程序--ThesaurusAnalyzer

自己写的一个基于词库的lucene分词程序--ThesaurusAnalyzer
2010-01-13 23:04:14  作者:  来源:
前一段时间用lucene做一个搜索程序,找了好长时间的中文分词程序,都没找到合适的,最后自己弄了一个.现在共享出来.希望对大家有用.
      分词算法:    基于词库的正向最大匹配算法.
      分词词库用的是网上一个叫 segmenter 的分词程序使用的词库.
      地址:www.mandarintools.com/segmenter.html  
      这个segmenter分词程序是把文件按行读取出来,然后把一行假设为一个词,从库中匹配,如果匹配不成功,则去掉一个字,再继续匹配.这样的分词程序,其一,不便在lucene中使用,因为lucene的analyzer是通过Tokenizer分词的,而Tokenizer中一般是对字符流进行处理,每次next返回一个Token,并不是一次性把内容读取进来,处理后再返回结果.其二,按行读取会有个缺点,就是如果文本中恰好把一个词用换行符隔开了,这样这个词也就被切开了,没有被当作一个词处理.
   
     我的程序实现方式:把词库读进内存后构建一个词语树.树的每个节点包含一个字. 比方  中国   中国人  中华民族  中华人民共和国  几个词,构成的树的结构:
  
                 中
           国^    华
      人^        人    民
                   民       族^
                   共
                   和
                   国^

       懒得上传图片,所以将就着这样表示了.^表示该节点可以构成一个词.分词的过程类似于输入法的联想功能.读取一个字,然后联想,直到联想到不能为止.如果当前可以构成词,便返回一个Token.如果当前不能构成词语,便回溯到最近的可以构成词语的节点,返回.最差的情况就是返回第一个单字.然后从返回结果的下一个字重新开始联想.

      lucene自带的几个分词程序中,ChineseAnalyzer是按字分的,与StandardAnalyzer对中文的分词没有大的区别.CJKAnalyzer是按两字切分的,比较武断,并且会产生垃圾Token,影响索引大小.
 
     本分词程序的效果取决与词库.您可以用自己的词库替换程序自带的词库.词库是一个文本文件,名称为word.txt. 每一行一个词语,以#开头表示跳过改行.最后保存为UTF-8的文本.

    程序的缺陷:
        没有加入识别人名和地名的功能

     该分词的一个应用案例:http://www.cyonline.net
   
     这个网站是我给学校做的,用lucene对pdf ,word,excel,html等多种格式的文档进行解析,索引,提供全文搜索,并实现摘要高亮.这个网站在教育网上,公网用户可能访问起来比较慢.

安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询
主站蜘蛛池模板: 99不卡| 免费观看麻豆视频 | 91亚洲国产 | 91免费在线电影 | 国产欧美综合视频 | 成年免费视频 | 九一亚洲精品 | 91麻豆精品国产91久久久资源速度 | 国产成人精品a视频一区www | 91高清视频| 男人精品天堂 | 91视频在线观看 | 国产精品国产一区二区三区四区 | 91免费视频网址 | 亚洲成人av一区二区 | 91视频免费看网站 | 中文精品一区 | www.久久久久.com | 91高清观看 | 九九热免费视频 | 亚洲精品国产91 | 亚洲黄一区二区 | 在线观看日韩视频 | 九九九九色 | 国产深夜福利在线观看 | 久久久久久久久久久一区 | 欧美日韩精品一区二区三区 | 99久久免费看精品国产一区非洲 | 99久久免费看精品国产一区非洲 | 久久久精品国产一区二区三区 | a色在线 | www.久久av.com| 九九成人 | 国产欧美精品区一区二区三区 | 男人网站视频 | 国产精品夜夜春夜夜爽久久小 | 亚洲在线免费 | 久久男人精品 | 91精品大片 | 九一视频在线观看 | 国产96精品久久久 |