文档库 最新最全的文档下载
当前位置:文档库 › 拼音和谐音字解决方案

拼音和谐音字解决方案

拼音和谐音字解决方案
拼音和谐音字解决方案

如对您有帮助,请购买打赏,谢谢您!

Lucene搜索——拼音、模糊音解决方案

Lucene全文搜索引擎,在我们的使用中已经能很好的解决中文的搜索功能。我们可以方便的利用现在网上比较流行的两种开源lucene中文分词插件“庖丁解牛”和“IKAnalyzer”来实现我们想要的结果。但是在中文拼音和谐音字方面无论是这两个插件还是现在lucene 官方的支持都没提供很好的分词器插件和解决方案。

经过大家的一起讨论,最后在拼音和谐音方面准备下面方式来实现该功能。下面我描述一下解决思路和算法,及一些问题。

一.总体思路

a)建立索引文件:建立索引文件时保存两部分内容,汉字和汉字的拼音,其中

拼音中间要加上空格。例如:成都市天府广场——>cheng du shi tian fu guang

chang。索引文件中内容就是

“成都市天府广场cheng du shi tian fu guang chang ”

对于汉字翻译成带空格的拼音用数据库语法不好实现,我们可以使用java拼

音插件。

b)处理用户输入内容:用户输入的内容分为两种情况

i.中文汉字:例如:“成都天府”这种情况可以通过“IKAnalyzer“和“庖

丁解牛”完全解决

ii.同音字:例如“程度天府”不是完全错误时分词器可以通过正确的微量匹配,同音字的我们就可以把汉字翻译成拼音再进行搜索。“cheng du “

两个“单词”我们在分词时已经加入到索引中所以是可以搜到的。

iii.谐音和拼音。(这里是本文档的重点)

1.拼音

例如输入:chengdutianfuguangchang

也有两种种情况输入很正确和输入拼音中有错误,无论哪种情况我们

都必须把这个巨大的字符串给拆分了。

拆分算法:

首先我们要建立一个汉字拼字对照表。

例如:

A Ai An Ang Ao

Ba Bai ban bang bao be bei ben

Beng bi bia等

将所有的拼音组合都放到一个集合里面,所有的组合并不是非常大。

下面我们进行拆分:

以成都天府广场为例:

********************************************************************

c h e n g

d u t i a n f u g u a n g c h a n g

c

h

che

ng堵che

chen

gd堵chen

cheng

du

相关文档