Tach,
Wenn ich dich nun richtig verstehe, sagst du, dass nur das längste 'zählt'.
Heißt also: WENN längeresWort.indexOf(kürzeresWort) != -1 //Das kürzere Wort ist vollständig im längeren enthalten
UND abstandZwischenLängeresWortUndWiederholung == abstandZwischenKürzeresWortUndWiederholung //Wenn beide Abstände identisch sind
DANN kürzeresWort fliegt aus dem Arrayrichtig?
sofern es an der selben Stelle ist. Wenn ich als Beispieltext haaseaasenhaase habe, möchte ich die Paare haase zu haase betrachten, aber nicht unbedingt das darin enthaltene aase, aber der Abstand vom mittleren aase zu den äußeren ist relevant.
Schon wieder muss ich sagen, dass du mit Worten sparst.
Ich bin halt nicht Morn.
Gut, ich als Mensch könnte ahnen, dass da was bei 6 im Busch ist, aber wie bringe ich einem Script sowas bei? Wie kann sagen: _dies_ kommt auf Rang 1, _das_ kommt auf Rang 2 etc. oder ach schau doch mal dahin, das sieht auffällig aus?
Mit gewichtetem Scoring meinte ich ein Verfahren, bei dem du z.B. betrachtest wie lang ist der gefundene String, eine vier Zeichen lange übereinstimmung ist wahrscheinlich relevanter als eine dreibuchstabige; dann kannst du dir ansehen, welche der gefundenen Abstände sich aus vorher gefundenen Faktoren zusammensetzen, zwei gleiche Treffer im Abstand 3 hintereinander sind auch ein Treffer im Abstand 6. Alternativ kannst du deinen Algorithmus so arbeiten lassen, wie du es vermutlich getan hast: die 6 und die zwölf stechen heraus, weil die Differenz der Treffer von 5 und 6 sowie 6 und 7 bzw. 11 und 12 sowie 12 und 13 so groß sind; alle diese Zahlen haben außerdem jeweils keine gemeinsamen Primfaktoren, so dass es eher nicht Treffer wegen dieser Primfaktoren sind.
mfg
Woodfighter