2011-12-29 70 views
2

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

我知道这听起来有点模糊,但我不知道在这项研究中,不知道要继续寻找以寻找进一步的阅读。 (我用谷歌搜索的术语,如'启发式搜索','启发式功能'等,但他们不是指我同样的事情。)所以,我想知道你们中的任何人是否在搜索引擎中遇到过类似的问题,如果你会推荐任何东西。

回答

1

我不得不为我的人工智能类建立类似的东西。我构建了一个网络爬行器,可以将单词的同义词与您想要做的相关联。当用户搜索诸如“沙发”之类的术语时,我抓住沙发的所有同义词并将它们存储在数据库中并参考原始单词。当引擎再次运行并且搜索到“沙发”时,应用程序将再次获取“沙发”(这是沙发的同义词)的同义词。您应该能够匹配该关联。

有很多免费的api来获取单词的同义词。尝试将您的Google搜索更改为主题特定网络爬虫或主题特定搜索引擎。你会收集到更好的结果

+1

感谢您的帮助tkcsam。这回答了我的问题。如果我知道如何将问题标记为已解决,我肯定会在这种情况下! – Salmontres 2011-12-29 00:55:09

+1

点击绿色复选标记;) – tier1 2011-12-29 15:42:15

1

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

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

另一种方法可以是自适应地更新该矩阵与用户的选择。例如如果用户搜索沙发,然后单击椅子,则可以将沙发椅的评分提高一个确定的阈值(当然,您还应该在每次更新后将所有分数重新标准化)。

+1

这是个好主意,奥斯曼!这听起来有点沉重,但它给了我很棒的想法,谢谢! – Salmontres 2011-12-29 00:55:37