如何在程序中处理同一产品(手机)的两个略有不同的名称?

2 投票
2 回答
591 浏览
提问于 2025-04-17 17:47

我正在开发一个网页应用,目的是从多个网站收集手机的数据。问题是,这些网站对手机的命名方式稍有不同。例如,以下是这两款手机在不同网站上的名称变体:

HTC One X+ (黑色); HTC One X+ 黑色; HTC One X Plus; HTC One X Plus,黑色

三星 Galaxy S3 (卵石蓝,16GB); 三星 Galaxy S III (蓝色); 三星 Galaxy S3 I9300 16GB 卵石蓝; 三星 I9300 Galaxy S III (16GB); 三星 Galaxy S3 (I9300),卵石蓝

因为我通过爬虫程序从这些网站上读取数据,所以我需要我的程序能够把这些不同的名称统一成同一个产品。

有没有什么好主意?如果有关系的话,我是用 Python 编写的。

2 个回答

1

我相信 difflib 模块 会对你有很大帮助。

3

你可以用不同的方法来处理这个问题(而且为了提高效率,可以把它们混合使用):

  1. 你可以忽略所有括号里的内容。
  2. 定义一些你会自动忽略的词,比如“黑色”、“蓝色”或“白色”。
  3. 通过计算名字之间的Levenshtein距离来比较它们,并用这个距离来进行分组。
  4. 表面相似性(感谢mbatchkarov)。

撰写回答