Hierbei wurde dieser Algorithmus verwendet, welcher sich den Matchwert eines gegebenen Strings "In",
für jeden String in der Stringliste "patterns" errechnet, und den best-gematchten String zurückgibt.
def maxOf(result):
max=0; biggest=None
for x in result.keys():
if result[x]>max:
biggest=x; max=result[x]
return biggest
######################hierachical text matching########################
def find_hierachical(In,patterns): #braucht potenzmenge nicht
auswertung = {} #gibt einen hierachischen Matchwert
splits = (In+" ").split(" ") #von In zurück.
len_splits = len(splits)
for j in xrange(len_splits-1,min(len_splits-1,1)-1,-1):
for k in range(len_splits+1):
parsIt = ""
for z in range(j):
if z + k >= len_splits:
break;
parsIt += splits[min(z+k, len(splits)-1)];
if z+1 != j:
parsIt+=" "
if parsIt != "" and parsIt!=" ":
for i in range(len(patterns)):
if parsIt in patterns[i]:
if not patterns[i] in auswertung.keys():
auswertung[patterns[i]] = j
else:
auswertung[patterns[i]] += j
return maxOf(auswertung)
Sprich zu Gabai - Lehrt ihm bitte nur Korrektes. Der Source.