在对Document中的内容进行索引之前,需要使用分词器进行分词 ,分词的目的是为了搜索。分词的主
要过程就是先分词后过滤。
过滤:包括去除标点符号过滤、去除停用词过滤(的、是、a、an、the等)、大写转小写、词的
形还原(复数形式转成单数形参、过去式转成现在式。。。)等。
什么是停用词?停用词是为节省存储空间和提高搜索效率,搜索引擎在索引页面或处理搜索请求时会自 动忽略某些字或词,这些字或词即被称为Stop Words(停用词)。比如语气助词、副词、介词、连接词
等,通常自身并无明确的意义,只有将其放入一个完整的句子中才有一定作用,如常见 的“的”、“在”、“是”、“啊”等。
对于分词来说,不同的语言,分词规则不同。Lucene作为一个工具包提供不同国家的分词器
注意:搜索使用的分析器要和索引使用的分析器一致。
原生分词器
1、StandardAnalyzer
标准分词器
Lucene提供的标准分词器, 可以对用英文进行分词, 对中文是单字分词, 也就是一个字就认为是一个词.
2、WhitespaceAnalyzer
3、SimpleAnalyzer
简单分词器: 不支持中文, 将除了字母之外的所有符号全部取出, 所有大写字母转换成小写字母, 对于数字也会去除
4、CJKAnalyzer
中日韩分词器: 使用二分法分词, 去掉空格, 去掉标点符号, 所有大写字母转换成小写字母
第三方分词器
学过英文的都知道,英文是以单词为单位的,单词与单词之间以空格或者逗号句号隔开。所以对于英
文,我们可以简单以空格判断某个字符串是否为一个单词,比如I love China,love 和 China很容易被
程序区分开来。
而中文则以字为单位,字又组成词,字和词再组成句子。中文“我爱中国”就不一样了,电脑不知道“中 国”是一个词语还是“爱中”是一个词语。
把中文的句子切分成有意义的词,就是中文分词,也称切词。我爱中国,分词的结果是:我、爱、中
国
- paoding: 庖丁解牛最新版在 https://code.google.com/p/paoding/ 中最多支持Lucene 3.0,且
最新提交的代码在 2008-06-03,在svn中最新也是2010年提交,已经过时,不予考虑。
mmseg4j:最新版已从 https://code.google.com/p/mmseg4j/ 移至 https://github.com/chenlb/
mmseg4j-solr,支持Lucene 4.10,且在github中最新提交代码是2014年6月,从09年~14年一
共有:18个版本,也就是一年几乎有3个大小版本,有较大的活跃度,用了mmseg算法。
- IK-analyzer: 最新版在https://code.google.com/p/ik-analyzer/上,支持Lucene 4.10从2006年
12月推出1.0版开始, IKAnalyzer已经推出了4个大版本。最初,它是以开源项目Luence为应用主
体的,结合词典分词和文法分析算法的中文分词组件。从3.0版本开 始,IK发展为面向Java的公用
分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了
简单的分词 歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。 但是也就是
2012年12月后没有在更新。
- ansj_seg:最新版本在 https://github.com/NLPchina/ansj_seg tags仅有1.1版本,从2012年到
2014年更新了大小6次,但是作者本人在2014年10月10日说明:
“可能我以后没有精力来维护 ansj_seg了”,现在由”nlp_china”管理。2014年11月有更新。并未说明是否支持Lucene,是一个 由CRF(条件随机场)算法所做的分词算法。
- imdict-chinese-analyzer:最新版在 https://code.google.com/p/imdict-chinese-analyzer/ ,
最 新更新也在2009年5月,下载源码,不支持Lucene 4.10 。是利用HMM(隐马尔科夫链)算法。
Jcseg:最新版本在git.oschina.net/lionsoul/jcseg,支持Lucene 4.10,作者有较高的活跃度。利
用mmseg算法。
常用IKAnalyzer
支持中文语义分析, 提供停用词典, 提供扩展词典, 供程序员扩展使用
如果想配置扩展词和停用词,就创建扩展词的文件和停用词的文件。
从ikanalyzer包中拷贝配置文件
停用词典stopword.dic作用 :
停用词典中的词例如: a, an, the, 的, 地, 得等词汇, 凡是出现在停用词典中的字或者词, 在切分词的时候
会被过滤掉.
扩展词典ext.dic作用 :
扩展词典中的词例如: 传智播客, 黑马程序员, 贵州茅台等专有名词, 在汉语中一些公司名称, 行业名称, 分
类, 品牌等不是汉语中的词汇, 是专有名词. 这些分词器默认不识别, 所以需要放入扩展词典中, 效果是被
强制分成一个词
exit.dic
配置文件cfg.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><properties><comment>IK Analyzer 扩展配置</comment><!--用户可以在这里配置自己的扩展字典 --><entry key="ext_dict">ext.dic;</entry><!--用户可以在这里配置自己的扩展停止词字典--><entry key="ext_stopwords">stopword.dic;</entry></properties>

stopword.dic
aanandareasatbebutbyforifinintoisitnonotofonorsuchthatthetheirthentherethesetheythistowaswillwith,?、。“”《》!,:;?人民末##末啊阿哎哎呀哎哟唉俺俺们按按照吧吧哒把罢了被本本着比比方比如鄙人彼彼此边别别的别说并并且不比不成不单不但不独不管不光不过不仅不拘不论不怕不然不如不特不惟不问不只朝朝着趁趁着乘冲除除此之外除非除了此此间此外从从而打待但但是当当着到得的的话等等等地第叮咚对对于多多少而而况而且而是而外而言而已尔后反过来反过来说反之非但非徒否则嘎嘎登该赶个各各个各位各种各自给根据跟故故此固然关于管归果然果真过哈哈哈呵和何何处何况何时嘿哼哼唷呼哧乎哗还是还有换句话说换言之或或是或者极了及及其及至即即便即或即令即若即使几几时己既既然既是继而加之假如假若假使鉴于将较较之叫接着结果借紧接着进而尽尽管经经过就就是就是说据具体地说具体说来开始开外靠咳可可见可是可以况且啦来来着离例如哩连连同两者了临另另外另一方面论嘛吗慢说漫说冒么每每当们莫若某某个某些拿哪哪边哪儿哪个哪里哪年哪怕哪天哪些哪样那那边那儿那个那会儿那里那么那么些那么样那时那些那样乃乃至呢能你你们您宁宁可宁肯宁愿哦呕啪达旁人呸凭凭借其其次其二其他其它其一其余其中起起见岂但恰恰相反前后前者且然而然后然则让人家任任何任凭如如此如果如何如其如若如上所述若若非若是啥上下尚且设若设使甚而甚么甚至省得时候什么什么样使得是是的首先谁谁知顺顺着似的虽虽然虽说虽则随随着所所以他他们他人它它们她她们倘倘或倘然倘若倘使腾替通过同同时哇万一往望为为何为了为什么为着喂嗡嗡我我们呜呜呼乌乎无论无宁毋宁嘻吓相对而言像向向着嘘呀焉沿沿着要要不要不然要不是要么要是也也罢也好一一般一旦一方面一来一切一样一则依依照矣以以便以及以免以至以至于以致抑或因因此因而因为哟用由由此可见由于有有的有关有些又于于是于是乎与与此同时与否与其越是云云哉再说再者在在下咱咱们则怎怎么怎么办怎么样怎样咋照照着者这这边这儿这个这会儿这就是说这里这么这么点儿这么些这么样这时这些这样正如吱之之类之所以之一只是只限只要只有至至于诸位着着呢自自从自个儿自各儿自己自家自身综上所述总的来看总的来说总的说来总而言之总之纵纵令纵然纵使遵照作为兮呃呗咚咦喏啐喔唷嗬嗯嗳~!.:"'()*A白社会主义--..>>[]<>/\|-_+=&^%#@`;$()———¥·...‘’〉〈…01234567890123456789二三四五六七八九零><@#$%︿&*+~|[]{}啊哈啊呀啊哟挨次挨个挨家挨户挨门挨户挨门逐户挨着按理按期按时按说暗地里暗中暗自昂然八成白白半梆保管保险饱背地里背靠背倍感倍加本人本身甭比起比如说比照毕竟必必定必将必须便别人并非并肩并没并没有并排并无勃然不不必不常不大不但...而且不得不得不不得了不得已不迭不定不对不妨不管怎样不会不仅...而且不仅仅不仅仅是不经意不可开交不可抗拒不力不了不料不满不免不能不不起不巧不然的话不日不少不胜不时不是不同不能不要不外不外乎不下不限不消不已不亦乐乎不由得不再不择手段不怎么不曾不知不觉不止不止一次不至于才才能策略地差不多差一点常常常常言道常言说常言说得好长此下去长话短说长期以来长线敞开儿彻夜陈年趁便趁机趁热趁势趁早成年成年累月成心乘机乘胜乘势乘隙乘虚诚然迟早充分充其极充其量抽冷子臭初出出来出去除此除此而外除此以外除开除去除却除外处处川流不息传传说传闻串行纯纯粹此后此中次第匆匆从不从此从此以后从古到今从古至今从今以后从宽从来从轻从速从头从未从无到有从小从新从严从优从早到晚从中从重凑巧粗存心达旦打从打开天窗说亮话大大不了大大大抵大都大多大凡大概大家大举大略大面儿上大事大体大体上大约大张旗鼓大致呆呆地带殆待到单单纯单单但愿弹指之间当场当儿当即当口儿当然当庭当头当下当真当中倒不如倒不如说倒是到处到底到了儿到目前为止到头到头来得起得天独厚的确等到叮当顶多定动不动动辄陡然都独独自断然顿时多次多多多多少少多多益善多亏多年来多年前而后而论而又尔等二话不说二话没说反倒反倒是反而反手反之亦然反之则方方才方能放量非常非得分期分期分批分头奋勇愤然风雨无阻逢弗甫嘎嘎该当概赶快赶早不赶晚敢敢情敢于刚刚才刚好刚巧高低格外隔日隔夜个人各式更更加更进一步更为公然共共总够瞧的姑且古来故而故意固怪怪不得惯常光光是归根到底归根结底过于毫不毫无毫无保留地毫无例外好在何必何尝何妨何苦何乐而不为何须何止很很多很少轰然后来呼啦忽地忽然互互相哗啦话说还恍然会豁然活伙同或多或少或许基本基本上基于极极大极度极端极力极其极为急匆匆即将即刻即是说几度几番几乎几经既...又继之加上加以间或简而言之简言之简直见将才将近将要交口较比较为接连不断接下来皆可截然截至藉以借此借以届时仅仅仅谨进来进去近近几年来近来近年来尽管如此尽可能尽快尽量尽然尽如人意尽心竭力尽心尽力尽早精光经常竟竟然究竟就此就地就算居然局外举凡据称据此据实据说据我所知据悉具体来说决不决非绝绝不绝顶绝对绝非均喀看看来看起来看上去看样子可好可能恐怕快快要来不及来得及来讲来看拦腰牢牢老老大老老实实老是累次累年理当理该理应历立立地立刻立马立时联袂连连连日连日来连声连袂临到另方面另行另一个路经屡屡次屡次三番屡屡缕缕率尔率然略略加略微略为论说马上蛮满没没有每逢每每每时每刻猛然猛然间莫莫不莫非莫如默默地默然呐那末奈难道难得难怪难说内年复一年凝神偶而偶尔怕砰碰巧譬如偏偏乒平素颇迫于扑通其后其实奇齐起初起来起首起头起先岂岂非岂止迄恰逢恰好恰恰恰巧恰如恰似千千万千万千万切切不可切莫切切切勿窃亲口亲身亲手亲眼亲自顷顷刻顷刻间顷刻之间请勿穷年累月取道去权时全都全力全年全然全身心然人人仍仍旧仍然日复一日日见日渐日益日臻如常如此等等如次如今如期如前所述如上如下汝三番两次三番五次三天两头瑟瑟沙沙上上来上去

