Mittwoch, 30. Oktober 2013

Update #30102013 Implementieren einer Fuzzy-Logik durch (Damerau)-Levenstein Distanz in den Rules.

Implementieren einer Fuzzy-Logik durch (Damerau)-Levenstein Distanz in den Rules.

Im heutigen Update geht es um die Vergleichsoperatoren einer Regel.
Diese teilt sich in 2 unterschiedliche Regeln auf. Die Levenstein und die
Damerau-Levensthein-Distanz, welche Sie in den Regeln unter folgenden 4 Typen
angeben können: 

"SDLD" => sensitive (groß-kleinschhreibung beachtet, Damerau-Levensthein-Distanz) 
"SLD" => sensitive (groß-kleinschhreibung beachtet, Levensthein-Distanz) 
"DLD" => sensitive (groß-kleinschhreibung ignoriert, Damerau-Levensthein-Distanz) 
"LD" => sensitive (groß-kleinschhreibung ignoriert, Levensthein-Distanz) 

Der Unterschied zwischen Levensthein und Damerau-Levensthein ist einfach zu erläutern.

Die Levensthein Distanz kennt Bewertet die Aktionen:
löschen, ersetzen und anfügen
wobei die Damerau-Levensthein-Distanz um die Funktion 
tauschen erweitert wurde.

Bsp.:

'Hallo' zu 'Hollo' => 1 getauscht (bei beiden)
'Hallo' zu 'Hllo' => 1 gelöscht (bei beiden)
'Hallo' zu 'Hallio' => 1 angefügt (bei beiden)
'Hallo' zu 'Hlalo' => 1 (Damerau Levensthein) => 1 getauscht ( al <-> la )
'Hallo' zu 'Hlalo' => 2 (Levensthein) => 2 ersetzt ( a <-> l, a <-> l )
'Hallo' zu 'Hoiallo' => 2 (bei beiden)

Diese Funktion ist besonders sinnvoll wenn es um Benutzereingaben geht, bei denen
Schreibfehler oder Fehler in der Spracherkennung auftreten können.
Die Distanz ist immer Abhängig von der Länge des gewünschten Textes zu bewerten!
Bei 'ABC' lässt eine Distanz von 3 Alles der Zeichenlänge 3 zu ! (Hier max. Distanz 1 empfohlen)

Für die Public-Rules bedeuted dieses z.B. dass die WinGui, die z.B. 'XBMC_ON' auswertet und
das Webinterface dass '/XBMC_ON' auswertet unter einer Levensthein-Distanz mit Distanz 1 geprüft
werden können. 

Besondere Vorsicht ist geboten wenn der Match in das Argument mit übergeben wird. Hier würde
der Match durch den "Original-Eingabestring" ersetzt werden. (Mit Schreibfehler).
Was z.B. bei Spracheingabe für Module wie Google oder Youtube unproblematisch wäre, da diese
die gleiche Distanzbestimmung bei ihren Suchalgorytmen verwenden.

(Siehe Wikipedia: unscharfe Suche, Pattern Matching, Levensthein, Damerau-Levensthein)

Keine Kommentare:

Kommentar veröffentlichen