Was genau meinst Du denn mit, gibt es dazu bereits existierende Algorithmen? Existierende Algorithmen für die "Ähnlichkeit" (oder den "Abstand") von zwei Strings hast Du ja in diesem Thread schon zu Hauf (Levenshtein, Hamming, Euklid, Pearson, ...) ;-)
genau, zwei strings vergleiche ich bereits aber zwei listen von strins noch nicht
man kann natürlich die anzahl der sehr ähnlichen strings zählen und in ein verhältnis zur anzahl der keywords stellen. somit bekommt man schon einen prozentsatz
ich möchte nur gerne wissen ob es schon einen algorithmus gibt, oder wie man diese recht einfach selbst erstellen kann, der genau 2 listen von keywords vergleicht und einen prozentsatz der gemeinsamkeiten zurück gibt
Recht "einfach" wäre ja, den Prozentsatz an Strings zu ermitteln, die in beiden Strings identisch vorkommen. Hierbei ist es sicher sinnvoll, die Listen vorher lexikalisch zu sortieren. Außerdem wäre auch eine Art threshold sinnvoll. Zum Beispiel sind die Wörter
and und sand band wand land
usw. recht 'ähnlich'... aber wie will man nun hier in dieser kleinen Liste einen "Prozentsatz" an Ähnlichkeit ermitteln?
Ja, damit werden die identischen Strings abgefackelt... aber es geht ja auch noch um eine "Ähnlichkeit" zwischen zwei Strings... wenn ich die Frage richtig verstanden habe. Also, wieviel Prozent der Wörter in der Liste sind einander ähnlich? Wenn man nun eine Levenshtein Distanz von 2 als Treshold nehmen würde, wären 100% der Wörter oben einander ähnlich...
Dann muss man den Linq-Ausdruck entsprechend anpassen. Für Levenshtein gibt es zum Beispiel effizente .Net-Implementierungen. Müßte sich der Thread-Owner bitte einmal äußeren damit ich ggf. das Beispiel anpassen kann. Die grundsätzliche Implementierung bleibt aber die selbe (incl. Prozentberechnung).
@ floyd bitte gib wenn möglich nur python code an und auch wie CRegenschein schon angedeutet hat, soll auch überprüft werden wie ähnlich sich zwei strings sind.
grundsätzlich habe ich bereits eine funktion die identische wörter findet und zählt