模糊搜索:长字符串匹配短字符串
输入字符串:北京人民大学
而我的数据库里面只有"人民大学"这个记录.
用模糊搜索怎么根据"北京人民大学"找到"人民大学"呀?
方法要通用的.
请大家多多讨论!
谢谢啦:)
问题点数:100、回复次数:20Top
1 楼wangbo1118(编程浪子)回复于 2005-11-09 10:29:53 得分 20
KMP算法Top
2 楼Baku(计算机上的白痴)回复于 2005-11-09 11:00:49 得分 20
KMP算法
-----
他是长的匹配短的...
没听过这种模糊找的.....他是不是要把北京XXXX全找出来?
分词+ 过滤?要不把每个数据库的记录拿出来KMP...效率好象好低.Top
3 楼yutou66(芋头)回复于 2005-11-09 12:20:43 得分 0
客户输入的是"北京人民大学"
但我的数据库里面只有"人民大学"这个记录.
然后我怎么根据客户的输入找到"人民大学"这个记录呢?
KMP算法是什么算法呀?哪里有相信的介绍呀?请教Top
4 楼Baku(计算机上的白痴)回复于 2005-11-09 13:33:31 得分 10
KMP算法是什么算法呀?哪里有相信的介绍呀?请教
-------
yun~ 随便找本数据结构的书都有的...Top
5 楼happycock(SSWW)回复于 2005-11-10 22:49:44 得分 10
人家在数据库层面上操作,KMP这种底层的字符串匹配算法根本是不用自己实现的。Top
6 楼yutou66(芋头)回复于 2005-11-15 09:32:54 得分 0
对,我就是想在数据库层面上实现这个功能.
请教!Top
7 楼yutou66(芋头)回复于 2005-11-18 09:17:19 得分 0
顶Top
8 楼slwqw(四大名捕之追杀令)回复于 2005-11-18 16:30:33 得分 10
既然是数据库,当然不能使用自己的匹配算法了,只能使用SQL命令职工有限的支持:
Select * where name like '*人民大学*'Top
9 楼happycock(SSWW)回复于 2005-11-19 11:36:06 得分 10
简单的办法就是实现一个同义词库,复杂点的就是智能分词什么其他的东西,反正现在这东西也不怎么成熟。我想一个逐渐扩充的同义词库就差不多能胡弄过去了。Top
10 楼galois_godel()回复于 2005-11-19 13:47:32 得分 10
这也叫模糊搜索,何来模糊Top
11 楼linjz2937(一鸣)回复于 2005-11-19 22:22:07 得分 10
可以用Las Vegas或Mont Calo随机算法,效率很高.Top
12 楼yutou66(芋头)回复于 2005-11-29 12:07:08 得分 0
提升一下,如果不是数据库操作,是不是只能用搜索引擎方面的技术了?
如我在百度输入: 广西省南宁市动物公园
得到的两个结果是:
广西省博物馆
扬美古镇位于南宁市永新区的西部,距离南宁市区36km。座落在滚滚而来的左江下游之岸,于三江(右江、左江、邕江)...南宁市动物园为广西唯一一家专业性动物公园,现有各类珍稀动物共180多种2000多头(只),并有海豚、大象,海狮,鸟类,...
china.yahtour.com/dzss/lysw/lycp/dmo/ziyu ... 125K 2005-6-17 - 百度快照
china.yahtour.com 上的更多结果
耐人寻味的“性”故事 成人频道--性生理性心理 ...
繁体中文:中国广西省南宁市综合信息服务网站,提供所有与南宁有关的综合信息服务,其中包括中国-东盟买易博览会,...动物公园里的猴子山是最逗人的地方,大人小孩扔食物的最多了。猴们也千姿百态,抢食物的、打架的、玩耍的、理毛的,...
得到的红色关键字符为: 南宁市动物园 动物公园 广西省南宁市 广西省
有哪位知道用什么算法可以实现这样的搜索呀?
Top
13 楼happycock(SSWW)回复于 2005-11-29 14:24:47 得分 0
估计你应该听说各个搜索引擎在大力研制智能分词技术,或者有人抱怨google的中文分词有点弱智。Top
14 楼yutou66(芋头)回复于 2005-12-01 08:37:35 得分 0
顶Top
15 楼yutou66(芋头)回复于 2005-12-01 08:38:35 得分 0
大家说说 中客网的搜索技术含量高吗?Top
16 楼zhang20084(喜欢物理的程序员)回复于 2005-12-04 02:14:10 得分 0
这个应该属于文本挖掘了吧
Top
17 楼zdjray(.Net的名字)回复于 2005-12-08 04:24:25 得分 0
Select * where name like '*人民大学*'
查询语言本身就提供了的
再模糊一点的,就先拆开,再并上Top
18 楼jyxhz(jyxhz)回复于 2005-12-08 10:57:29 得分 0
客户输入的是"北京人民大学"
但我的数据库里面只有"人民大学"这个记录.
然后我怎么根据客户的输入找到"人民大学"这个记录呢?
请问楼主那“清华大学”要不要查出来呢?因为都有“大学”;又如“北京人民大会堂”要不要查出来呢?因为都有“北京人民大”;换句话说就是对匹配单元有没有限制的?Top
19 楼yutou66(芋头)回复于 2005-12-08 17:42:34 得分 0
客户输入的是"北京人民大学",那么他想得到就是"北京人民大学"或"人民大学",如果把"清华大学”“北京人民大会堂”都查出来的话,那么算法就不是很好了.
谁做过搜索引擎的呀?提示一下
Top
20 楼xuzuning(唠叨)回复于 2005-12-09 09:49:19 得分 0
分词
如按最大匹配法,则
北京人民大学 被拆分成 北京 人民大学
如按最小匹配法,则
北京人民大学 被拆分成 北京 人民 大学
中文分词是难度很高的课题,你可以看一下北京大学中文系博士研究生的课件
Top




