我在做一个搜索引擎。在大多数情况下,我只是简单地使用Appache的Lucene,到目前为止,它工作得很好,但我也想通过在搜索中建立良好的“启发式”来改善搜索结果。(例如,如果有人搜索“沙发”,而我将所有的沙发都归类为“沙发”类型,我希望搜索算法建立连接。)
我知道这听起来有点含糊,但我不知道在这项研究中哪里可以继续寻找进一步的阅读。(我在谷歌上搜索了“启发式搜索”、“启发式函数”等术语,但它们指的不是我。)所以,我想知道你们中是否有人在搜索引擎中解决类似的问题,以及你们是否有什么建议。
发布于 2011-12-29 08:21:02
我不得不为我的人工智能课程构建类似的东西。我建立了一个网络爬虫,关联单词的同义词,类似于你想做的事情。当用户搜索诸如“couch”之类的术语时,我抓取了couch的所有同义词,并将它们存储在数据库中,并引用了原始单词。当引擎再次运行并搜索“sofa”时,应用程序将再次获取“sofa”的同义词(这是couch的同义词)。然后,您应该能够匹配该关联。
有很多免费的api可以获取单词的同义词。试着把你的google搜索改成特定主题的网络爬虫,或者特定主题的搜索引擎。你会得到更好的结果
发布于 2011-12-29 08:16:12
在我脑海中浮现的一个“快速而肮脏”的技巧就是实现一个在上下文中具有相似性的字典。例如,使沙发和沙发组相似。或者更好的方法是建立一个方阵来保存每个单词对的“相似度分数”。下面是关于我的意思的随机矩阵:
couch sofa chair
couch | 100 | 95 | 75 |
sofa | 95 | 100 | 65 |
chair | 75 | 65 | 100 |另一种方法可以是通过用户选择自适应地更新该矩阵。例如,如果用户搜索沙发,然后单击椅子,那么您可以将沙发椅分数增加一个定义的阈值(当然,您还应该在每次更新后重新规范化所有分数)。
https://stackoverflow.com/questions/8662700
复制相似问题