Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 带加权滤波器的字符串模式识别算法?_Algorithm_Machine Learning_Pattern Matching_Pattern Recognition - Fatal编程技术网

Algorithm 带加权滤波器的字符串模式识别算法?

Algorithm 带加权滤波器的字符串模式识别算法?,algorithm,machine-learning,pattern-matching,pattern-recognition,Algorithm,Machine Learning,Pattern Matching,Pattern Recognition,是否有模式识别算法可以指定匹配或缺失某些参数的权重?例如,假设我有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

是否有模式识别算法可以指定匹配或缺失某些参数的权重?例如,假设我有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。实际上,我希望任何东西都能处理大量不同权重的参数


任何指向正确方向的指针都会受到欢迎。

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

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

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

  • 创建命名实体的字典,例如“三星”、“英寸”、“Wi-Fi”等
  • 创建一组规则以提取特征,例如,千兆字节的
    {Number}{Space}?“GB”
    ,或商标和系列的
    {TradeMark}{Space}”系列{Space}{Number}
  • 创建特征向量,将已知属性设置为相应的值,将未知属性设置为类似“NA”(不可用)的值
  • 测量项目之间的距离(表示为特征向量),而不是字符串 注意:使用字典和规则更容易工作,请考虑使用框架。要测量两个向量之间的距离,可以使用

    但仅在str1和str2中使用“64\s+GB”。