MORPH mit Wiederholungsoptionen: MORPH{min:max}
Zielsetzung
Mit der Einführung von Wiederholungsoptionen für den MORPH-Operator
MORPH{min:max} (ab Server 4.7) werden, in Anlehnung an regulären Ausdrücken,
die Ausdrucksmöglichkeiten von Wortklassensequenzen erweitert. Hinzu kommt, dass
die Suchmaschine von COSMAS II Ausdrücke mit MORPH{min:max}
deutlich schneller ausführt als mit dem klassischen Wortabstandsoperator
/w
.
Die folgenden Messreihen zeigen den Geschwindigkeitsgewinn auf.
Vergleich der Antwortzeiten von MORPH{min:max} mit /w
MORPH{min:max}
liefert zum Teil deutlich kürzere Antwortzeiten
als MORPH /w MORPH
und ist, wo es möglich ist,
dem klassischen Operator vorzuziehen.
Ein technischer Vorteil
Der Vorteil von MORPH{min:max}
gegenüber dem klassischen
Abstandsoperator /w
besteht darin, dass ersterer, unabhängig von
der Länge der gesuchten Sequenz, nur ein einziges Mal auf die Indexstrukturen zugreift.
Der Wortabstandsoperator ist hingegen so implementiert, dass er diesen kostspieligen
Zugriff, je länger die Sequenz ist, desto mehr wiederholen muss.
Im Folgenden wird dies anhand von drei verschiedenen Messreihen deutlich.
Sequenzen aus einer einzigen Wortklasse mit min = max
In der ersten Tabelle werden die Antwortzeiten von 4 Suchanfragen, die sich mit
MORPH{min:max}
und MORPH /w MORPH
ausführen lassen, in den 4 größeren morpho-syntaktisch annotierten Archive
einander gegenübergestellt. Beide Formulierungen liefern die gleichen Treffer.
Die Angaben für die Antwortzeiten und die Anzahl Treffer sind die erzielten Durchschnittswerte
über alle 4 annotierten Archive.
Um die Lesbarkeit der folgenden Tabellen zu erleichtern, wurden die Suchanfragen verkürzt eingetragen, siehe die Fußnoten 1 bis 4.
Suchanfrage {min:max} | Antwort- zeit | Suchanfrage mit /w | Antwort- zeit | Beschleu- nigung | # Treffer |
---|---|---|---|---|---|
A{2:2} 1 | 11s | A /w A 2 | 62s | 5,6x | 6.867.000 |
A{3:3} | 10s | A /w A /w A 3 | 51s | 5,1x | 401.000 |
A{4:4} | 10s | A /w A /w A /w A 4 | 90s | 9,0x | 38.400 |
A{5:5} | 10s | A /w A /w A /w A /w A5 | 95s | 9,6x | 7.637 |
1: steht für MORPH(A){2:2}
.
2: steht für MORPH(A) /+w1:1,s0 MORPH(A)
.
3: steht für MORPH(A) /+w1:1,s0 MORPH(A) /+w1:1,s0 MORPH(A)
.
4: steht für MORPH(A) /+w1:1,s0 MORPH(A) /+w1:1,s0 MORPH(A)
/+w1:1,s0 MORPH(A)
.
5: analog zu 4.
In den TAGGED-T-Archiven wurde mit MORPH(ADJ)
recherchiert.
Fazit
Für Sequenzen einer und derselben Wortklasse ist in allen Fällen die Suchmaschine von
COSMAS II mit MORPH{min:max}
deutlich schneller als mit dem
klassischen Wortabstandsoperator. Der Geschwindigkeitsgewinn beträgt in unserem Beispiel
für Sequenzen von Adjektiven einen Faktor von 5,1x bis 9,6x.
Der zweite Gewinn besteht darin, dass die Geschwindigkeit für die Ausführung von
MORPH{min:max}
praktisch unabhängig von der Sequenzlänge ist,
hier immer ca. 10s.
Sequenzen aus mehreren Wortklassen
In der nächsten Tabelle werden Sequenzen von unterschiedlichen Wortklassen gesucht. Dazu
muss MORPH{min:max}
mit dem Wortabstandsoperator /w
kombiniert werden. Die 3 ersten Tabelleneinträge zeigen für ein besseres Verständnis der
gesamten Messreihe die Einzelzeiten der einzelnen Wortklassensequenzen DET
,
A{3:3}
und N{2:2}
. Interessant sind
die 2 letzten Einträge mit den Sequenzen aus unterschiedlichen Wortklassen.
Suchanfrage {min:max} | Antwort- zeit | Suchanfrage mit /w | Antwort- zeit | Beschleu- nigung | # Treffer |
---|---|---|---|---|---|
DET | 19s | DET | 19s | 1.0x | 155.676.000 |
A{3:3} | 10s | A /w A /w A 3 | 51s | 5,1x | 401.000 |
N{2:2} | 64s | N /w N4 | 326s | 5,1x | 82.895.000 |
A{3:3} /w N{2:2} 1 | 76s | (A /w A /w A) /w (N /w N)5 | 384s | 5,1x | 19.284 |
DET /w A{3:3} /w N{2:2} 2 | 90s | DET /w (A /w A /w A) /w (N /w N)6 | 404s | 4.5x | 9.169 |
1: steht für: MORPH(A){3:3} /+w1:1,s0 MORPH(N){2:2}
.
2: steht für: MORPH(DET) /+w1:1,s0 MORPH(A){3:3}
/+w1:1,s0 MORPH(N){2:2}
.
3: steht für: MORPH(A) /+w1:1,s0 MORPH(A) /+w1:1,s0 MORPH(A)
.
4: steht für: MORPH(N) /+w1:1,s0 MORPH(N)
.
5: steht für: (MORPH(A) /+w1:1,s0 MORPH(A) /+w1:1,s0 MORPH(A))
/+w1:1,s0 (MORPH(N) /+w1:1,s0 MORPH(N))
.
6: steht für: MORPH(DET) /+w1:1,s0
(MORPH(A) /+w1:1,s0 MORPH(A) /+w1:1,s0 MORPH(A))
/+w1:1,s0 (MORPH(N) /+w1:1,s0 MORPH(N))
.
In den TAGGED-T-Archiven wurde mit MORPH(ADJ)
und
MORPH(ART)
recherchiert.
Fazit
Sowohl bei den Einzelsequenzen als bei den kombinierten Sequenzen wird durchgängig ein Beschleunigungsfaktor von annähernd 5x (4,5x bis 5,1x) gemessen.
Sequenzen mit min < max
Um einen Vergleich zu ermöglichen, wird MORPH{min:max}
bei min < max
durch die unter den Fußnoten 1-3 aufgelisteten klassischen Formulierungen ausgedrückt.
Diese Formulierungen sind nicht ganz identisch, sondern liefern ca. 6% zusätzliche Sequenzen,
die MORPH{min:max}
nach seinen Regeln (siehe:
Wirkungsweise) ausschließt.
Suchanfrage {min:max} | Antwort- zeit | Suchanfrage mit /w | Antwort- zeit | Beschleu- nigung | # Treffer |
---|---|---|---|---|---|
A{2:2} | 11s | A /w A1 | 62s | 5,6x | 6.868.000 |
A{2:3} | 11s | (A /w A) /w0:1 A2 | 104s | 9,5x | 6.868.000 |
A{2:4} | 10s | ((A /w A) /w0:1 A) /w0:1 A)3 | 189s | 18,9x | 6.868.000 |
1: steht für: MORPH(A) /+w1:1,s0 MORPH(A)
.
2: steht für:
(MORPH(A) /+w1:1,s0min MORPH(A)) /+w0:1,s0min MORPH(A)
.
3: steht für:
((MORPH(ADJ) /+w1:1,s0min MORPH(ADJ)) /+w0:1,s0min
MORPH(ADJ)) /w0:1,s0min MORPH(ADJ)
.
Fazit
Nicht nur, dass die Formulierungen mit MORPH{min:max}
wesentlich kompakter
sind, sondern die Antwortzeiten sind in zweierlei Hinsicht deutlich besser. Erstens wird
MORPH{min:max}
praktisch unabhängig von der Länge der Sequenz
mit derselben Geschwindigkeit abgearbeitet. Zweitens fällt dies umso mehr ins Gewicht, als
dass mit zunehmender Sequenzlänge die Ausführung mit dem Wortabstandsoperator immer länger
dauert.
Interessant ist die Tatsache, dass für A{2:max}
die Anzahl der
gefundenen Sequenzen für verschiedene max-Werte konstant bleibt. Es handelt sich
nicht genau um die gleichen Sequenzen, sondern mit zunehmendem max-Wert
werden kürzere durch längere ersetzt.