Hierachischer Matchwert

336 days ago by PatrickHammer


\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(1,1)=['hallo', 'wie', 'gehts']}
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(2,1)=['hallo', 'wie']}
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(2,2)=['wie', 'gehts']}
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(3,1)=['hallo']}
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(3,2)=['wie']}
\newcommand{\Bold}[1]{\mathbf{#1}}\hbox{P(3,3)=['gehts']}



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.