String Ähnlichkeiten mit OCR
-
Hallo C++ Community,
ich arbeite gerade an einem String Ähnlichkeitsalgorithmus, dass zwei Strings vergleicht, die von einem OCR übergebenwurden.
Ich benutze dazu die Jaro-Winkler Distanz
(http://en.wikipedia.org/wiki/Jaro%E2%80%93Winkler_distance)Diese funktioniert auch einwandfrei.
Ich würde die Ähnlichkeit aber gerne noch etwas verbessern.Zum Beispiel, wenn ich die Strings habe
Prototypstring: abcOdf
und die beiden die mit dem vergliechen werden sollen
Vergleichstr1: abcXdf
und
Vergleichstr2: abc0dfBei der Jaro Distanz sind jetzt beide Vergleichstrings genau gleich ähnlich zu dem Prototypstring.
Ich würde jetzt aber gerne, das er erkennt das abc0df ähnlicher ist, weil sich 'O' und '0' ähnlicher sind und ein OCR eher fälschlicherweise ein 'O' als '0' erkennt als zu einem 'X'.
Dafür würde ich jetzt selber eine Matrix anlegen, die eine paarweise Korrelation angebiet, wie ähnlich zwei Schriftzeichen sind.
Das ist aber etwas aufwendig und deswegen würde ich gerne fragen ob es dafür schon andere Lösungansätze gibt oder schon Bibliotheken oder Tabellen, wo Schriftzeichen Ähnlichkeiten erfasst sind.lg
Matze
-
Du kannst in einem zweiten Schritt, die Matches bezueglich ihrer Buchstabenaehnlichkeit sortieren. Auch kannst du einfach etwas anderes nehmen, dass auf einem Aehnlichkeitsmass zwischen einzelnen Elementen basiert. Beispielsweise: http://de.wikipedia.org/wiki/Needleman-Wunsch-Algorithmus .