我正在开发一个购物比较网站,该项目处于非常高级的阶段。我们每天使用来自各种联盟网络的商家信息索引5000万种产品。我遇到的大多数问题已经解决,包括大多数性能瓶颈。
我的问题是什么:首先,我们正在使用apache solr和drupal但是这个问题并不是特定于drupal或solr,如果你不了解它们,那没关系。
我们收到来自2000多个不同商家的产品供稿,这些供稿很乱。他们没有特定的模式,每个商家都按照他们想要的方式发送Feed。我们已经解决了很多这方面的问题,但仍有一个问题。规范化分面浏览功能的分类术语。
假设我的网站上有一个“Narrow by Brands”浏览方面。现在假设有100家商家提供微软的产品。现在出现了问题。有些商家在数据提要“微软”的“品牌”专栏,其他“微软公司”,其他“微软公司”,其他“微软产品”等等......商家和最差商家之间没有特定的模式,一些个体商家如此草率,以至于同一品牌在相同的数据馈送中有不同的字符串。
我们不希望所有这些不同的品牌出现在导航中。我们有一个手动解决问题的方法,我们手动将导入的品牌映射到“好”品牌表(“Microsoft Corporation” - >“Microsoft”,“Microsoft的产品” - >“Microsoft”等。) 。我们在数据库中拥有10,000个品牌,这是可行的。问题在于它带有像“作者”这样的更大的东西。当我们将书籍导入系统时,有超过800,000位作者,我们遇到了同样的问题,这是手工制作无法实现的。问题是一样的:“Tom Mike Apostol”,“Tom M. Apostol”,“Apostol,Tom M.”等......
有没有人知道以可接受的准确度(85%-95%准确度)自动解决此问题的好方法?
谢谢你的帮助!
答案 0 :(得分:0)
我想到了一些想法,尽管这只是一个松散的想法:
值得思考的事情:
包含名称同义词的映射(最有可能是数百个记录,例如Thomas< - > Tom
这种方式对于获得有效的首字母很重要(没有M而不是N等)。