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

时间:2013-03-03 18:20:16

标签: python nlp string-comparison string-matching string-parsing

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

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

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

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

有什么想法吗? 如果重要,我正在使用python。

2 个答案:

答案 0 :(得分:3)

你可以使用不同的方法(并且为了大多数效率混合它们):

  1. 你可以忽略括号中的所有内容。
  2. 定义您自动删除的字词,如“黑色”,“蓝色”或“白色”。
  3. 通过Levenshtein距离比较名称,并使用此距离进行聚类。
  4. 表面相似性(感谢mbatchkarov)

答案 1 :(得分:1)

我确信difflib module会帮助你很多