猿问

获取最接近的字符串匹配

获取最接近的字符串匹配

我需要一种方法来比较多个字符串和一个测试字符串,并返回与它非常相似的字符串:

TEST STRING: THE BROWN FOX JUMPED OVER THE RED COW

CHOICE A   : THE RED COW JUMPED OVER THE GREEN CHICKEN
CHOICE B   : THE RED COW JUMPED OVER THE RED COW
CHOICE C   : THE RED FOX JUMPED OVER THE BROWN COW

(如果我这样做是正确的)与“test String”最接近的字符串应该是“selectionC”。做这件事最简单的方法是什么?

我计划将其实现为多种语言,包括VB.net、Lua和JavaScript。此时,伪代码是可以接受的。如果你能为一种特定的语言提供一个例子,这也是值得赞赏的!


慕雪6442864
浏览 747回答 3
3回答

慕码人8056858

我质疑选择B更接近测试字符串,因为从原来的字符串中只有4个字符(和2个删除)。而你认为C更接近,因为它包括棕色和红色。然而,它将有一个更大的编辑距离。有一个算法叫做Levenshtein距离它测量两个输入之间的编辑距离。这里是那个算法的工具。选择A为15的距离。选择B为距离为6。选择C为9的距离。编辑:对不起,我一直在levenshtein工具中混合字符串。更新以更正答案。
随时随地看视频慕课网APP
我要回答