2

是否有模式识别算法可以指定匹配或丢失某些参数的权重?例如,假设我有 3 个字符串:

str1 = Samsung 11.6" 64GB Slate PC Tablet with Wi-Fi - Black  
str2 = Samsung Series 7 XE700T1A-A05US 11.6-Inch Slate (64 GB, Win 7 Pro)
str3 = Samsung Series 7 XE700T1A-A03US 11.6-Inch Slate (128 GB SSD, Win 7 HP)

我想将 str2 与 str1 匹配,因为它们的 GB 相等,即使传统的字符串距离会说 str2 更接近 str3。实际上,我希望任何东西都可以处理大量不同权重的参数。

任何指向正确方向的指针将不胜感激。

4

2 回答 2

6
  1. 创建命名实体的字典,例如“Samsung”、“Inch”、“Wi-Fi”等。
  2. 创建一组规则以提取特征,例如{Number}{Space}?"GB"千兆字节或{TradeMark}{Space}"Series"{Space}{Number}商标和系列。
  3. 创建特征向量,将已知属性设置为相应的值,将未知属性设置为“NA”(不可用)。
  4. 测量项目之间的距离(表示为特征向量),而不是字符串。

注意:为了更轻松地使用字典和规则,请考虑使用GATE框架。要测量 2 个向量之间的距离,您可以使用cosine distance

于 2012-08-15T20:36:07.740 回答
2

您可能想要做的是开发一个解析器,它从字符串中提取相关信息,然后对其进行加权,而不是对字符串本身进行操作。

这可能包括生成一组正则表达式来提取您想要的花絮(这些被称为“特征”。例如,GB)或使用更复杂的解析或 NLP 技术。然后,您将自己开发一个权重函数或使用某种聚类(用于相似性)或分类器(用于将事物分类)

对于您的简单示例,生成看起来像的正则表达式GB [0-9]+应该足以进行比较。

于 2012-08-15T20:22:00.747 回答