String vergelijking |
Voor het vergelijken van 2 strings (teksten/omschrijvingen) gebruikt WinBank de Levenshtein Afstand. Deze methode geeft aan hoeveel veranderingen er aan de ene string nodig zijn om hem in de andere om te zetten.
Het getal dat in WinBank wordt weergegeven als Omschrijving overeenkomst is
100 - ( 100 * Levenshtein afstand/lengte string)
Als de strings 100% overeenkomen dan geeft dit dus 100%. Als in een string van 20 karakters er 4 veranderd moeten worden om hem om te zetten in de andere string dan geeft dit dus een overeenkomst van 100 - (100 * 4/20) = 80%
Hieronder het stuk uit Wikipedia
Uit Wikipedia, de vrije encyclopedie
http://nl.wikipedia.org/wiki/Levenshteinafstand
In de informatica is de Levenshteinafstand of bewerkingsafstand tussen twee strings (tekenreeksen) de minimale hoeveelheid bewerkingen die nodig is om de ene string in de andere te veranderen, waarbij de mogelijke bewerkingen zijn:
* verwijderen van een teken
* invoegen van een teken
* vervanging van een teken door een ander
Deze afstandsmetriek is genoemd naar Vladimir Levenshtein, die er in 1965 een artikel aan wijdde.
De term bewerkingsafstand wordt ook wel gebruikt voor dergelijke afstandsmaten in het algemeen. Er wordt dan een bepaalde verzameling toegestane bewerkingen op tekenreeksen gegeven en eventueel een kostenfunctie voor elke bewerking. De Levenshteinafstand is een van de mogelijkheden; andere zijn bijvoorbeeld
* de lengte van de grootste gemeenschappelijke deelreeks: daarbij is vervanging van een teken twee keer zo duur als verwijdering of toevoeging
* de Levenshtein-Damerau-afstand: daarbij is verwisseling van twee aangrenzende tekens even duur als de andere bewerkingen
* de Hammingafstand: daarbij is vervanging van een teken door een ander de enige toegestane bewerking
Een goed voorbeeld van software die functies gebruikt die hierop gebaseerd zijn, is spellingscontrole-software. Door de Levenshteinafstand van een woord naar enkele andere te berekenen, is snel een aantal alternatieven voor een woord te geven.
Een voorbeeld, de Levenshteinafstand tussen water en wetend is 3 en kan als volgt weergegeven worden:
1. water → weter (de a wordt vervangen door de e)
2. weter → weten (de r wordt vervangen door de n)
3. weten → wetend (de d wordt aan het einde van de string toegevoegd)