Lucene笔记14-Lucene的分词-分词器的原理讲解

一、分词器原理

最主要的分词器有SimpleAnalyzer、StopAnalyzer、WhitespaceAnalyzer、StandardAnalyzer。

先来研究一下SimpleAnalyzer。当一串数据传进来之后,会被转化成TokenStream这样一个东西,这个TokenStream中就保存着所有的分词信息。TokenStream是一个抽象类,它有两个实现类,分别是Tokenizer和TokenFilter。其中Tokenizer将一组数据划分成一个一个的语汇单元,TokenFilter将这些语汇单元进行过滤并处理,将通常是一组TokenFilter来完成这个操作,因为有的Filter是过滤停用词的,有的是需要将首字母转换成小写的,有的是将词语转换成原型的,等等。最后将数据传递给TokenStream。

二、示例详解

假设我们需要分词的是“how are you, thank you”这么一个字符串。首先这个字符串会被拆成“how”、“are”、“you”、“thank”、“you”这5个语汇单元,这5个语汇单元需要保存信息和位置,于是CharAttributeTerm保存了相应的语汇单元,OffsetTerm保存了各个词汇之间的偏移量,PositionIncrTerm保存了词于词之间的位置增量,默认为1,如果3个词中,第2个词是停用词,那么第1个和第3个词之间的位置增量就不是1了。其实Lucene查找这次词语是根据位置来查找的,如果同一个位置有两个词语,那么查找的时候都会查找出来,这是同义词的概念,现在描述不清楚,后面再详细介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值