全文检索lucene中文分词的一些总结

1、什么是中文分词

2、中文分词的实现

现有的中文分词算法可分为三大类:基于字符串匹配的分词方法、基于理解的分词方法和基于统计的分词方法。后面两者只是听说过,没深入接触过,这里着重讲下基于字符串匹配的分词方法。

1)正向最大匹配法(由左到右的方向);

2)逆向最大匹配法(由右到左的方向);

3)最少切分(使每一句中切出的词数最小)。

1、支持英文、数字、中文(简体)混合分词

2、常用的数量和人名的匹配

4、实现正向最大匹配算法

5、词典的动态扩展

MMAnalyzer的分词算法如下:

2、如果当前不能构成词语,便回溯到最近的可以构成词语的节点,返回。

3、最差的情况就是返回第一个单字。

4、然后从返回结果的下一个字重新开始联想。

publicstaticvoidmain(String[] args)throwsIOException {

Analyzer analyzer =newMMAnalyzer();

TokenStream stream = analyzer.tokenStream(“xxx”,newStringReader(text));

while(true) {

Token token = stream.next();

if(token ==null)break;

System.out.print(“[” + token.termText() + “] “);

}

}

返回结果如下:

addDictionary(FileReader reader):增加一个新词典,采用每行一个词的读取方式。

addWord(String newWord):往词库里新增加一个新词。

URL dictionaryPath = URLUtil.getResourceFileUrl(“resources/dictionary.txt”);

if(dictionaryPath !=null){

BufferedWriter bw =newBufferedWriter(newFileWriter(dictionaryPath.getPath(),true));

bw.newLine();

bw.close();

}

3.1分词的缺失

3.2优先级

例如:我还清晰地记得我们坐在江边聊天的情境。

3.3最大匹配的问题

解决办法:缩短分词粒度,当字数等于或超过该粒度参数,且能成词,该词就被切分出来。

新词中除了人名以外,还有机构名、地名、产品名、商标名、简称、省略语等都是很难处理的问题,而且这些又正好是人们经常使用的词,,因此对于搜索引擎来说,分词系统中的新词识别十分重要。目前新词识别准确率已经成为评价一个分词系统好坏的重要标志之一。

其他的还有如热度、高亮显示等问题。总言之,中文分词机制的好坏,直接影响到用户对搜索结果的满意度,所以如何分词是搜索引擎的重中之重。

快乐要懂得分享,才能加倍的快乐

全文检索lucene中文分词的一些总结

相关文章:

你感兴趣的文章:

标签云: