在LUCENE中分词器可是非常重要的一环.它把一个整句经过提取,去标点,转换成小写,还原,去除停止词等操作后,形成若干个有意义的Term.
WhitespaceAnalyzer,空白分词器.顾名思义,通过空格来进行分析.
SimpleAnalyzer,简单分词器.转换小写,去除非字母(注意,数字也会移除).
StopAnalyzer,停止词分析器.在SimpleAnalyzer的基础上移除停止词(the,a,of...etc)默认是英文,可以自行设置停止词库.
StandardAnalyzer,标准分词器.这个很重要,是Lucene中最复杂的一个核心分词器.是先用WhitespaceAnalyzer后,去停止词,小写化后再还原拼写.
实例一:
原文:"The quick brown fox jumped over the lazy dogs"
WhitespaceAnalyzer :
[The] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dogs]
SimpleAnalyzer :
[the] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dogs]
StopAnalyzer :
[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]
StandardAnalyzer:
[quick] [brown] [fox] [jumped] [over] [lazy] [dogs]
实例二:
原文: "XY&Z Corporation - [email protected]"
WhitespaceAnalyzer:
[XY&Z] [Corporation] [-] [[email protected]]
SimpleAnalyzer:
[xy] [z] [corporation] [xyz] [example] [com]
StopAnalyzer:
[xy] [z] [corporation] [xyz] [example] [com]
StandardAnalyzer:
[xy&z] [corporation] [[email protected]]
由于汉字的词可以是一个或多个汉字组成的,既有简繁之分,又有不同语意的用法.所以中文分词是个很复杂的工作,还得有一个非常庞大,而完备的字典作为辅助.
这方面做的好的有ICTCLAS(支持C/C++、C#、Delphi、Java等主流的开发语言),Paoding(支持Java),盘古(支持.Net)等.
LUCENE.NET QQ交流群(81361051)