3

我在使用 solr 时遇到了排名问题,我被困住了。

给定一个电子商务网站,对于查询“ipad”,我获得:

  1. 适用于 ipad 2 的 ipad 外壳
  2. ipad 外壳
  3. ipad 连接套件
  4. ipad 32gb wifi

这是一个问题,因为我们想将主要产品(或产品本身)排在第一位,而 tf/idf 将配件排在第一位,原因是“ipad case compatible with ipad, ipad2, ipad3, ipad Retina, ipad mini 等”。

此外,使用类别我们无法确定是配件还是产品。

我想知道使用自动分类是否会有所帮助。另一个提高此排名的解决方案(如Named Entity Recognition)将不胜感激。

4

2 回答 2

7

你能提供标记数据吗?

如果您有超过 5 万件商品,那么Naive Bayes使用基于产品名称训练的二元语言模型几乎可以 99% 的准确率捕获所有配件。我想你可以用 Mahout 训练这样一个朴素的贝叶斯,但是产品名称的双元组数量非常有限,所以现在即使在智能手机上也可以轻松快速地进行训练。

这是典型的机械土耳其人任务,标记一些物品应该不会那么昂贵。但是,如果您坚持使用一些半监督算法,我发现它Iterative similarity aggregation非常有用。

主要思想是您提供一些标记,例如“案例”/“电源适配器”,它会迭代地找到指示垃圾邮件的新标记,因为它们出现在相同的上下文中。

是论文,但我也写了一篇关于此的博文,用简单的语言总结了意图。这篇论文还提到了 Sean 提出的相同的“让用户找到合适的物品”范式,因此两者可以结合使用。

哦,如果你需要一些关于使用 Lucene 和 SOLR 进行机器学习的建议,我可以向你推荐我的朋友 Tommaso Teofili 今年在 ApacheCon Europe 上的演讲。您可以在 slideshare 上找到幻灯片。还有一个关于谈话的 youtube 视频,只需搜索即可;)

于 2013-01-15T17:36:04.720 回答
1

TF/IDF 将根据查询中的单词与您找到的标题中的单词进行排名。听起来这不是“好结果”的正确定义,并且您希望产品胜过配件。

当然,您可以简单地附加启发式方法来修补问题。例如,将标题视为一组单词,而不是多组,因此“iPad”的出现几次没有区别。或者只是提高您知道是产品的项目的分数。这不是学习本身,而是简单,直接反映您的业务知识,并且可能有一些积极的影响。

如果您想在这里学习,您可能需要使用关于什么是最佳结果的最佳知识来源:您的用户。您知道他们在响应每个查询时单击了什么。您可以学习将搜索词与单击的项目相关联的词项模型。你可以看到很多类型的问题——实际上潜在因素推荐模型可以在那里很好地工作。

查看 Ted 关于如何将推荐器用作“搜索引擎”的幻灯片:http ://www.slideshare.net/tdunning/search-as-recommendation

于 2013-01-15T15:35:25.823 回答