2

我正在开发一个网络应用程序,我从多个网站收集有关手机的数据。问题是网站使用的手机命名略有不同。例如,网站对这两款手机的名称使用以下变体:

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 (16 GB);三星 Galaxy S3 (I9300),卵石蓝

由于我使用爬虫从这些网站上读取了这些数据,因此我需要我的程序将所有这些不同的字符串解析为同一个产品。

有任何想法吗?如果重要的话,我正在使用python。

4

2 回答 2

3

您可以为此使用不同的方法(并且对于大多数效率而言,将它们混合使用):

  1. 您可以忽略括号中的所有内容。
  2. 定义您自动删除的单词,例如“黑色”、“蓝色”或“白色”。
  3. 通过它们的 Levenshtein 距离比较名称,并使用此距离进行聚类。
  4. 表面相似性(感谢 mbatchkarov)
于 2013-03-03T19:10:46.217 回答
1

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

于 2013-03-03T22:35:08.400 回答