搜索实用---中文分词
2016-10-18 本文已影响89人
浪来了2016
最近需要实现一个针对学校名字进行搜索的功能,普通来说,就是关键字有什么就匹配起来输出对应的结果可以了。但是实际情况却是,我们提供学校根据关键字搜索,但是很有可能,家长输入的和实际情况大相径庭,比如学校名字叫 南昌市青云谱区好孩子幼儿园,家长输入可能是 好孩子、南昌市好孩子、好孩子的 等,效果是必须都能正确匹配到 南昌市青云谱区好孩子幼儿园 的结果选项。
需要搜索的效果如果是简单的关键字匹配检索那就存在一个非常到的问题,只有在家长输入关键字百分百都包含的时候(如青云谱区好孩子),才能正确的筛选出学校,输入其他的都是查无结果的,因为 "好孩子的"、"南昌市好孩子" 都不是连续的关键字,不能简单用 like %% 就可以解决。如何能让程序能够正确的理解输入的内容就很关键了。比较中文词义和英文不一样,英文是每个单词之间都有空格,可以很好的拆分,但是中文都是连成一片的,需要智能的算法才可以很好识别词组。
还好就是有牛人能做到别人觉得不可能的事, SCWS 中文分词(http://www.xunsearch.com) 工具能很好的将一连串的中文高度智能的划分出来若干词组,精确度非常的高,能非常好的满足我解决问题的需要。
因为软件是开源的,可以自己部署或者直接调用 API 实现同样的效果。这里我就才用 API 的方式 http://www.xunsearch.com/scws/api.php,仅仅需要提交简单的几个参数就能得到分析完的结果,非常简单实用,然后通过分词后的词组,再分别去数据库或规则匹配包含着的学校名称,就能简单实现结果集大于等于预期想要的结果。