是否有模式识别算法,我可以指定匹配或缺少某些参数的权重?例如,假设我有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。实际上,我希望能够处理大量具有不同权重的参数。
任何指向正确方向的指标都将受到赞赏。
答案 0 :(得分:6)
{Number}{Space}?"GB"
为千兆字节,{TradeMark}{Space}"Series"{Space}{Number}
为商标和系列。 注意:为了更轻松地使用词典和规则,请考虑使用GATE框架。要测量2个向量之间的距离,您可以使用cosine distance。
答案 1 :(得分:2)
您可能想要做的是开发一个解析器,从String中提取相关信息,然后对其进行加权,而不是对字符串本身进行操作。
这可以包括生成一组正则表达式,用于提取所需的花絮(这些被称为'特征'例如GB)或使用更复杂的解析或NLP技术。然后你自己开发一个权重函数或使用某种clustering(用于相似性)或classifier(用于将事物分类)
对于您的简单示例,生成看起来像GB [0-9]+
的正则表达式应足以进行比较。