我们有一个包含大约 18,000 个产品名称的列表(它们来自 80-90 个来源,因此有很多相似但不重复 - 这些是从表中挑选出来的 DISTINCT)不幸的是,这些名称有不同的表达方式. 我们必须尝试规范化数据集,以便为用户提供更有意义的名称。
例如,这样的列表:
Canon EOS 5D Mark III
Canon EOS 5D mk III
Canon EOS 5DMK3
Canon EF 70-200mm f/2.8L IS II USM Lens
Canon EF 70-200mm f/2.8L IS II USM Telephoto Zoom Lens
Canon EF 70-200mm f/2.8L IS USM Lens
Canon EF 70-200mm f/4L USM Lens
我希望能够评估这些字符串并将它们折叠成这样的东西:
Canon EOS 5D Mark III
Canon EF 70-200mm f/2.8L IS II USM
Canon EF 70-200mm f/2.8L IS USM Lens
Canon EF 70-200mm f/4L USM Lens
但我想知道两个字符串有多相似才能确定这一点。我确实意识到 F2.8 IS II 和 IS USM 可能有点难,但我想我会把它扔进去。
真正的产品名称远没有那么令人兴奋(它们是我们库存的农业设备的零件)。
我们还将这些名称存储在 Postgres (9.5) 数据库表中。我见过的例子比较了两个列表,但不幸的是,我们没有一个主产品列表来做这件事。