这个问题用于概念检查。我有一个字符串 000.00-010.0.0.0 我想从列表 {000.00-012.0.0.0 和 000.00-008.0.0.0} 中找到最接近的匹配项(在编辑度量中包含一个数字距离度量)我会喜欢以'012','010'和'008'作为标记并测量它们之间的距离。
字符串匹配的标准方法将查找每个字符位置的变化,对变化求和并返回一个距离。修改后的距离也将测量 CHARS 之间的 ASCII 距离 - G 离 E 比 D 更远。
要测量 '012' 与 '008' 一样是 '010',需要将三个字符捆绑到一个令牌中。可以轻松测量此令牌的编辑距离和距离吗?由于删除了树数据库中的定界符,问题似乎更加复杂。
我想要进行实际检查的建议解决方案是将“012”、“010”和“008”转换为单个 CHAR ASCII 符号,例如 )、* 和 +,测量字符距离和字符串编辑距离,然后打印转换回“012”、“010”和“008”。
示例字符串:MER99.C0.00M.14.006.00.060.350
而且,还有通配符:
MER99.*.006.00.060.350
MER99.C0.00M.??.006.00.060.350
由于字符串的长度相同(有些需要虚拟字符作为长度,'00M'实际上是'M')匹配与汉明距离。
我不需要匹配算法、汉明距离方法、通配符或虚拟字符的帮助,我将其添加到问题的上下文中。现在,我将令牌视为单独的字符并获得良好的结果,但知道它们不如作为令牌处理时那样精确。限制因素可能是编码模式中的不一致。但是,我想以此作为限制,而不是我的算法。