Español
Fuente/ Codesnippets

String-Ähnlichkeit: Jaro-Winkler Algorithmus

 

p.specht

Der Jaro-Algorithmus es una Maß para gemeinsame Signo, el innerhalb de "nicht más que el halben Longitud el längeren Zeichenkette" mentira, bajo Berücksichtigung de Transpositionen (Verdrehungen). Winkler modifizierte esta Algorithmus, en el Faktum a berücksichtigen, dass Unterschiede al Anfang el Zeichenkette signifikanter son como Unterschiede al Ende el Zeichenkette. Jaro y Jaro-Winkler eignen se para el Vergleich kleinerer Zeichenketten como Wörter y Namen.

Für weitere Stringähnlichkeitsvergleiche sabe uno el Levenshtein-Algorithmus o Kölner Phonetik. Levenshtein zählt el número el Bearbeitungen (Einfügungen, Löschungen oder Substitutionen), el erforderlich son, una Zeichenkette en el otro a konvertieren.
Damerau-Levenshtein es una modifizierte Versión, el Transpositionen auch como Einzelbearbeitung betrachtet. Obwohl el Edición el ganzzahlige Anzahl el Bearbeitungen es, kann esta standardisiert voluntad, en una Ähnlichkeitswert por una Formel a obtener

In el Praxis es wichtig, una Método a wählen, el el Art el Zeichenketten entspricht, el uno vergleichen voluntad. Manche Verfahre son viel aufwändiger como etwa el Berechnung uno phonetischen Vorab-Kodierung. Von el Geschwindigkeit her Es el Reihenfolge: 1. Jaro, 2. Jaro-Winkler, 3. Levenshtein, 4. Damerau-Levenshtein, wobei zwischen schnellstem y langsamsten Algorithmus una Faktor 2 a 3 liegt..

Título de la ventana "Jaro-Winkler String-Ähnlichkeit"
'Q: https://rosettacode.org/wiki/Jaro_distance#Pascal
'Thema: https://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance
'Dissertation [Christen 2006]: Systemvergleich Jaro - Levenshtein
'https://users.cecs.anu.edu.au/~Peter.Christen/publications/tr-cs-06-02.pdf
'(D) Demo translation, 2018-10-28 by P.Pájaro carpintero, Vienna/EU
'Ohne jede Gewähr! No warranty whatsoever!
CLS:font 2
imprimir format$("0.#######", JaroWinkler("DWAYNE","DUANE"))
imprimir format$("0.#######", JaroWinkler("MARTHA","MARHTA"))
imprimir format$("0.#######", JaroWinkler("DIXON","DICKSONX"))
imprimir format$("0.#######", JaroWinkler("JELLYFISH","SMELLYFISH"))
' Solloutput:
' 0.822222
' 0.944444
' 0.766667
' 0.896296
waitinput
FIN

Proc JaroWinkler :parámetros s1$,s2$

    declarar l1&,l2&,match_distance&,matches&,i&,k&,trans&,gr&,kl&
    declarar bs1&[255],bs2&[255]'max cadena length is here 255
    l1&=len(s1$):l2&=len(s2$)

    ifnot l1&:ifnot l2&:volver 1:más:volver 0:endif:endif

        match_distance&= if(l1&>l2&,l1&,l2&)\2-1
        '  matches&=0
        '  trans&=0

        Whileloop l1&:i&=&Loop

            gr&=i&-match_distance&
            kl&=i&+match_distance&

            whileloop if(1>gr&,1,gr&),if(kl&<l2&,kl&,l2&):k&=&Loop

                caso bs2&[k&]:continue
                caso mid$(s1$,i&,1)<>mid$(s2$,k&,1):continue
                bs1&[i&]=1:bs2&[k&]=1'1=true
                inc matches&:romper

            endwhile

        endwhile

        casenot matches&:volver 0
        k&=1

        whileloop l1&:i&=&Loop

            casenot bs1&[i&]:continue
            :whilenot bs2&[k&]:inc k&:endwhile
            caso mid$(s1$,i&,1)<>mid$(s2$,k&,1):inc trans&
            inc k&

        endwhile

        trans&=trans&\2
        volver ((matches&/l1&)+(matches&/l2&)+((matches&-trans&)/matches&))/3

    ENDPROC

 
XProfan 11
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
29.05.2021  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

1.828 Views

Untitledvor 0 min.
Erhard Wirth14.06.2024
p.specht21.11.2021
R.Schneider20.11.2021
Uwe Lang20.11.2021
Más...

Themeninformationen

Dieses Thema ha 1 subscriber:

p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie