我有一个名为referenceArray的字符串数组。我现在有一个字符串str。我想检查referenceArray中的任何元素是否与str类似。我可以计算referenceArray和str的每个元素之间的Levenshtein距离,并选择具有最小距离的元素。 但是,这种方法的问题是我还需要知道referenceArray中的所有元素是否都与str.So相似,在这种情况下,选择具有最小L距离的元素将是错误的。
例如,
referenceArray = ['saint louis','new york']
str='st. louis'
在这种情况下,我选择'saint louis' since it has minimum L distance of 4.
但是如果是str='toronto'
,那个minimum L distance is 'new york'
,但字符串是完全不同的。如何确定referenceArray中的元素是否与str匹配或者是否存在类似的字符串?
谢谢
答案 0 :(得分:4)
如何设定可接受距离的阈值?比如说,只有当此距离低于10
或sqrt(len(str))
或类似的距离时,才接受具有最小距离的字符串。
答案 1 :(得分:1)
尝试设置len(str)/x
的上限阈值,其中x是适当的常量。我会尝试使用2-4的x。
尝试一些样本输入,看看最适合你的。