模糊匹配一个字符串中的多个单词为此,我想给出一个允许的错误百分比(比如15%)。字符串关键字=“逾期电力服务”;由于关键字的长度为25个字符,我想允许4个错误(25*.15向上舍入)我需要能够将其与...进行比较stringEntire_OCR_Page="previousbillamountpaymentreceivedon12/26/13谢谢!在总到期日后7天未支付的当前电力服务总余额将收取到期金额的7.5%或2.00(以较大者为准/5)的滞纳金。这样做的方法...intLevenshteinDistance=LevenshteinAlgorithm(Keyword,Entire_OCR_Page);//=202intNumberOfErrorsAllowed=4;intAllowance=(Entire_OCR_Page.Length()-Keyword.Length())+NumberOfErrorsAllowed;//=205显然,在OCR_Text中找不到关键字(不应该是)。但是,使用Levenshtein的距离,误差量小于15%的误差幅度(所以我的逻辑说它已经被发现)。有谁知道更好的方法吗?使用子字符串回答了我的问题。发布以防其他人遇到相同类型的问题。有点不正统,但对我有用。intTextLengthBuffer=(int)StaticTextLength-1;//开始寻找比应有的少一个字符的正确结果。intLowestLevenshteinNumber=999999;//初始化非常高的最大小数PossibleStringLength=(PossibleString.Length);//搜索十进制的字符串长度StaticTextLength=(StaticText.Length);//要搜索小数的文本长度NumberOfErrorsAllowed=Math.Round((StaticTextLength*(ErrorAllowance/100)),MidpointRounding.AwayFromZero);//查找给定ErrorAllowance百分比允许的错误数//查找比应有的字符少1个的最佳匹配,然后是正确的字符数。//最后,还有1个字符。(这是因为一个字母可以被识别为//two(W->VV)反之亦然)for(inti=0;我认为它不会起作用,因为你的字符串的很大一部分是匹配的。所以我会做的是尝试将您的关键字分成单独的词。然后在OCR_TEXT中找到与这些词匹配的所有位置。然后查看所有匹配的位置,看到其中4个位置是连续的并且与原始短语匹配。不知道我的解释是否清楚?以上就是C#学习教程的全部内容:模糊匹配字符串中的多个单词。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
