Fuzzy-String-MatchIm Recode-Bereich gibt es eine Option zum Gruppieren von Zeichenfolgen, die Fuzzy-Matching ermöglicht.
Gibt es eine JSL-Funktion zum Fuzzy-String-Matching? Wenn ja, habe ich Probleme, es zu finden. Hilfe!
John
Betreff: Fuzzy-String-MatchDa das String-Trennzeichen von Python ein einfaches Anführungszeichen ist (vgl. JSL doppelte Anführungszeichen), muss es maskiert werden. Sie sollten auch die folgenden zwei Zeilen an den Anfang der Funktion stellen:
Substitute Into(str1, "'", "\'");
Substitute Into(str2, "'", "\'");
Betreff: Fuzzy-String-MatchGerade im Nachgang bin ich auf ein offenes Python-Paket gestoßen, das alle Arten von String-Ähnlichkeitsmaßen bietet. Es scheint wirklich gut gemacht zu sein. Es ist bei:
https://github.com/luozhouyang/python-string-similarity
Es war einfach, eine kleine JSL-Funktion zu schreiben, die eine der Python-Funktionen in diesem Paket umschließt, z. B. entschied ich mich, den dort implementierten Jaro-Winkler-Algorithmus zu verwenden. Meine Funktion sieht so aus:
JaroWinkler = Function( {str1, str2},
{arg, rslt},
arg = Eval Insert(
"\[
from strsimpy.jaro_winkler import JaroWinkler;
jarowinkler = JaroWinkler();
rslt = jarowinkler.similarity('^str1^', '^str2^')
]\"
);
Python Init();
Python Submit( arg );
rslt = Python Get( rslt );
Python Term();
rslt;
);
<BR /><BR />
rslt = JaroWinkler( "My string", "My tsring" );
Show( rslt ); // Log displays the following: rslt = 0.974074074074074;<BR />(Ich verwende Python 3.8 auf einem Mac. strsimpy hat eine Abhängigkeit von numpy, das in Ihrem Python installiert sein muss.)
Betreff: Fuzzy-String-MatchKannst du vielleicht verwenden Kürzestes Bearbeitungsskript einen zu machen. Das Beispiel im Skriptindex stellt eine Zeichenfolge der Zeichen zusammen, die die beiden Zeichenfolgen der Reihe nach gemeinsam haben.