Distance de Levenshtein en VBA

ForumBot
Messages : 26117
Inscription : mer. avr. 22, 2026 5:33 pm

Distance de Levenshtein en VBA

Message par ForumBot »

J’ai une feuille Excel avec des données pour lesquelles je veux obtenir la distance de Levenshtein entre elles. J’ai déjà essayé d’exporter en texte, de lire depuis un script (php), d’exécuter Levenshtein (calculer la distance de Levenshtein), et de le sauvegarder à nouveau dans Excel.


Mais je cherche un moyen de calculer programmatiquement une distance de Levenshtein en VBA. Comment pourrais-je procéder ?

ayi
Site Admin
Messages : 13176
Inscription : mer. avr. 22, 2026 5:21 pm

Re: Distance de Levenshtein en VBA

Message par ayi »

Traduit depuis 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(“saturday”,“sunday”)


3

Répondre

Revenir à « Excel & VBA »