[Trennmuster] Warum nicht sisisi
Stephan Hennig
mailing_list at arcor.de
Mi Dez 4 20:58:36 CET 2013
Am 04.12.2013 19:49, schrieb Herbert Voss:
> Am 04.12.2013 19:25, schrieb Stephan Hennig:
>
>> Ein Beispiel: Wenn in einem Trie die Wörter 'Tal' und 'Talent'
>> gespeichert sind, so erfährt man während der Suche nach dem Wort
>> 'Talente' nicht nur, dass das Wort nicht enthalten ist, sondern
>> auch, dass die Wörter 'Tal' und 'Talent' enthalten sind.
>
> Stephan,
> darum ging es mir eigentlich auch nicht. Je größer die Musterlänge,
> desto größer die Wahrscheinlichkeit, dass mehrere Muster mit
> unterschiedlichen Wahrscheinlichkeiten passen. Man also gezwungen
> ist, zwecks if-Abfrage die größte Wahrscheinlichkeit für Trennen oder
> Nichttrennen zu ermitteln. Denn es kann ein Muster für Trennen, ein
> größeres aber für Nichttrennen sprechen, oder umgekehrt.
Du meinst das Abwägen der Bewertung an den potentiellen Trennstellen
wird aufwendiger, wenn (durchschnittlich) mehr Muster pro Wort passen?
Das ist mit Sicherheit irrelevant. Erstens, ist der Vergleich zweier
Werte eine der leichtgewichtigsten Operationen die es gibt. Zweitens,
stellt die Implementierung des Trennalgorithmus -- wie noch zu zeigen
ist -- sicher, dass die (asymptotische) Laufzeit bis auf einen Faktor
unabhängig von der Länge der Muster oder der (durchschnittlichen) Anzahl
der auf ein Wort passenden Muster ist. Das heißt, dass eine mögliche
Laufzeiterhöhung durch größere Muster nie unerträglich wird. (Ich ahne
momentan, dass der Einfluss mehr passender Muster auf die Laufzeit sogar
wirklich Null ist. Ich muss das erst einmal aufschreiben.)
Hast Du mal Tests zur Laufzeit mit verschiedenen Mustergrößen gemacht?
Am besten wäre es, die Zeit mit LuaTeX zwischen pre_linebreak_filter und
post_linebreak_filter zu messen. Ich glaube nicht, dass ein
Laufzeitunterschied festgestellt werden kann, der ins Gewicht fällt.
Viele Grüße,
Stephan Hennig
Mehr Informationen über die Mailingliste Trennmuster