python中的字符串匹配算法

python中的字符串匹配算法,python,nlp,string-matching,levenshtein-distance,fuzzywuzzy,Python,Nlp,String Matching,Levenshtein Distance,Fuzzywuzzy,我正在寻找一些关于字符串匹配算法的建议,这些算法也支持非英语语言 以前尝试过的算法: 我尝试了Levenshtein距离模糊匹配和token\u sort\u ratio算法。这个算法对于我的大多数用例,甚至对于非英语语言都非常有效。如果比率超过90%,我认为两个字符串是匹配的。这个算法目前面临的问题是,在下面的例子中,19世纪和18世纪是不同的,我不希望它们被认为是匹配的 Str1 = "19th Century" Str2 = "18th Century&quo

我正在寻找一些关于字符串匹配算法的建议,这些算法也支持非英语语言

以前尝试过的算法:

我尝试了Levenshtein距离模糊匹配和token\u sort\u ratio算法。这个算法对于我的大多数用例,甚至对于非英语语言都非常有效。如果比率超过90%,我认为两个字符串是匹配的。这个算法目前面临的问题是,在下面的例子中,19世纪和18世纪是不同的,我不希望它们被认为是匹配的

Str1 = "19th Century"
Str2 = "18th Century"
fuzz.token_sort_ratio(Str1,Str2)
>> 92%
如果我将比率更改为大于95%,那么我将错过下面的匹配示例。但这两个字符串是匹配的

Str1 = "Robert Jones"
Str2 = "Robert F. Jones"
fuzz.token_sort_ratio(Str1,Str2)
>> 92%

为什么不尝试使用范围函数来代替呢。您可以只写下所需百分比的范围并循环它。代码可能需要一段时间,但应该可以工作