2

我试图实现一个典型的自动完成框,就像你从 amazon.com 知道的那样。你去那里,输入一封信,你会得到一个合理的建议,说明你可能会尝试在搜索框中输入什么。

盒子本身将由 jquery 实现,持久层和建议算法将基于 Apache Lucene/Solr 及其 Suggest-Feature。另外,我使用 lucene 的 WFST-Suggestion 对结果进行加权建议。

我的问题是,例如亚马逊如何获得这种合理的数据?我的意思是他们从哪里获得所有这些关键字和分数,所以这有意义吗?

每个产品上都是纯手工制作的款式信息吗?我认为这将是真正艰难的。或者是否可以使用机器学习理论中的聚类或分类等方法来收集数据?(然后我可以使用 mahout 或 carrot2)。

查看亚马逊的建议,我认为数据包含:

  • 产品名称
  • 产品/书籍的生产者/制造商/作者
  • 产品特性(如颜色、类型、尺寸)

它包含更多吗?

接下来的事情是,看起来建议本身是排名的。他们如何获得这种分数来衡量建议的权重? 它是一个简单的用户点击路径跟踪,你在哪里看,用户在框中输入了什么,他选择了什么或者他之后看了什么产品?

是否使用某种逻辑在每个查询(可能缓存)上计算出这种分数?(哪个?也许是贝叶斯定理?)

4

1 回答 1

0

他们可能会使用一些简单的方法,例如根据用户查询和/或产品名称构建 n-gram 模型,并使用它来预测最有可能的自动完成。

于 2013-12-08T09:15:14.997 回答