改进搜索引擎

时间:2011-12-29 00:02:18

标签: search search-engine heuristics

我正在研究搜索引擎。在大多数情况下,我只是使用Appache的Lucene,它目前工作得很好,但我也希望通过在搜索中建立良好的“启发式”来改进搜索结果。 (例如,如果有人搜索“沙发”并且我将所有的沙发编目为“沙发”类型,我希望搜索算法进行连接。)

我知道这听起来有点模糊,但我不知道在这项研究中哪里继续寻找进一步阅读。 (我用谷歌搜索的术语,如'启发式搜索','启发式功能'等,但它们并不是指同一件事。)所以,我想知道你们中是否有人在搜索引擎中遇到类似的问题,如果你愿意的话。

2 个答案:

答案 0 :(得分:1)

在我脑海中突然出现的一个“快速肮脏”黑客可以是实现一个在上下文中保持相似性的字典。例如使沙发和沙发组相似。或者更好的方法可以是构建方阵以保持每个单词对的“相似性得分”。这是关于我的意思的随机矩阵:

        couch   sofa   chair
couch |  100  |   95 |   75  |
sofa  |   95  |  100 |   65  |
chair |   75  |   65 |  100  |

另一种方法可以通过用户选择自适应地更新该矩阵。例如如果用户搜索沙发然后单击主席,那么您可以按照定义的阈值增加沙发椅分数(当然,您还应该在每次更新后重新规范所有分数)。

答案 1 :(得分:1)

我必须为我的人工智能课构建类似的东西。我构建了一个网络爬虫,它将单词的同义词与您想要的内容相关联。当用户搜索诸如“沙发”之类的术语时,我抓住沙发的所有同义词并将其存储在数据库中并引用原始单词。当引擎再次运行并且“沙发”被搜索时,应用程序将再次获取“沙发”的同义词(这是沙发的同义词)。然后,您应该能够匹配该关联。

有很多免费的api可以获得一个单词的同义词。尝试将您的Google搜索更改为主题特定网络抓取工具,或主题特定搜索引擎。您将收集更好的结果