第四章 Lucene 中的中文分词 - smqk/lucene-example GitHub Wiki
Lucene 中处理中文的常用方法有三种。以“咬死猎人的狗”这句话的输出结果为例。
- 单词方式:[咬] [死] [猎] [人] [的] [狗]
- 二元覆盖的方式:[咬死] [死猎] [猎人] [人的] [的狗]
- 分词的方式:[咬] [死] [猎人] [的] [狗] Lucene 中StandardTokenizer采用了单词方式分词, CJKTokenizer采用了二元覆盖的方式分词, SmartChineseAnalyzer采用了分词的方式分词。
Lucene中负责语言处理的部分在org.apache.lucene.analysis包。其中TokenStream类用来进行基本的分词工作,Analyzer类是TokenStream的外围包装类,负责整个解析工作。有人把文本解析比喻成人体的消化过程,吃入食物,消化分解出有用的氨基酸和葡萄糖等。Analyzer类接受的是整段文本,解析出有意义的词语。