Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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
当Damerau-Levenshtein距离等于1时,使用Python提取特定编辑_Python_Pandas_Damerau Levenshtein - Fatal编程技术网

当Damerau-Levenshtein距离等于1时,使用Python提取特定编辑

当Damerau-Levenshtein距离等于1时,使用Python提取特定编辑,python,pandas,damerau-levenshtein,Python,Pandas,Damerau Levenshtein,我有一个大熊猫数据框,包含在键盘上输入的数据。dataframe中的一列表示英国邮政编码数据。对于大型数据集,不可避免地会出现许多键入错误。我正在使用pyxDamerauLevenshtein库计算未识别邮政编码和包含所有可能邮政编码的数组之间的编辑距离,然后将距离输入数据只有一次编辑距离的邮政编码(DL distance=1)作为可能的备选方案呈现给用户。这很有效,我对速度相当满意。然而,邮政编码术语的单一编辑意味着可能有50-60个备选方案。我希望能够根据确定的编辑类型来订购备选方案。因此,

我有一个大熊猫数据框,包含在键盘上输入的数据。dataframe中的一列表示英国邮政编码数据。对于大型数据集,不可避免地会出现许多键入错误。我正在使用pyxDamerauLevenshtein库计算未识别邮政编码和包含所有可能邮政编码的数组之间的编辑距离,然后将距离输入数据只有一次编辑距离的邮政编码(DL distance=1)作为可能的备选方案呈现给用户。这很有效,我对速度相当满意。然而,邮政编码术语的单一编辑意味着可能有50-60个备选方案。我希望能够根据确定的编辑类型来订购备选方案。因此,例如,G代替F(在QWERTY键盘上相邻)的可能性可能比L代替F的可能性更大。同样,插入同一个字母两次的可能性也比插入相邻字母的可能性更大,比从键盘的另一端插入一个完全不同的字母更有可能。备选邮政编码的显示顺序应反映这些可能性

marmeladze at的回答建议使用键盘键之间的欧几里得距离;这似乎是一个合理的想法。然而,我的问题是,当Damerau-Levenshtein距离等于1时,如何有效地提取两个字符串之间涉及的特定编辑

例如,如果我有一个邮政编码ZE2 9YM(它不存在),那么代码应该识别出所有其他只有一次编辑的邮政编码,但也应该指出编辑的性质,可能类似于:

Entered code    Possible alternative    DL dist       Edit type    Edit
     ZE2 9YM                 ZE2 9YA          1    Substitution     A-M
     ZE2 9YM                 ZE2 9YN          1    Substitution     N-M
         ...
并且,在上述情况下,更有可能M被N(相邻键)代替,而不是M被A代替


有人知道Python库会计算Damerau-Levenshtein距离并输出矩阵(连同编辑摘要)?

您的分数足够高,我认为您知道应该包括您拥有的代码,以及当前的预期输入和输出,我实际上没有任何代码来提取编辑类型。