gpt4 book ai didi

vba - VBA 中的编辑距离

转载 作者:行者123 更新时间:2023-12-01 16:22:39 25 4
gpt4 key购买 nike

我有一个包含数据的 Excel 工作表,我想获取它们之间的 Levenshtein 距离。我已经尝试导出为文本,从脚本(php)读入,运行Levenshtein(计算Levenshtein距离),再次将其保存到Excel。

但我正在寻找一种在 VBA 中以编程方式计算编辑距离的方法。我该如何去做呢?

最佳答案

翻译自Wikipedia :

Option Explicit
Public Function Levenshtein(s1 As String, s2 As String)

Dim i As Integer
Dim j As Integer
Dim l1 As Integer
Dim l2 As Integer
Dim d() As Integer
Dim min1 As Integer
Dim min2 As Integer

l1 = Len(s1)
l2 = Len(s2)
ReDim d(l1, l2)
For i = 0 To l1
d(i, 0) = i
Next
For j = 0 To l2
d(0, j) = j
Next
For i = 1 To l1
For j = 1 To l2
If Mid(s1, i, 1) = Mid(s2, j, 1) Then
d(i, j) = d(i - 1, j - 1)
Else
min1 = d(i - 1, j) + 1
min2 = d(i, j - 1) + 1
If min2 < min1 Then
min1 = min2
End If
min2 = d(i - 1, j - 1) + 1
If min2 < min1 Then
min1 = min2
End If
d(i, j) = min1
End If
Next
Next
Levenshtein = d(l1, l2)
End Function

?Levenshtein("星期六","星期日")

3

关于vba - VBA 中的编辑距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4243036/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com