11.02.2013 Aufrufe

Aspekte der morphologischen Analyse des Deutschen - Universität ...

Aspekte der morphologischen Analyse des Deutschen - Universität ...

Aspekte der morphologischen Analyse des Deutschen - Universität ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Anhang A: Algorithmen<br />

Anhang A: <strong>Analyse</strong>algorithmen<br />

Dieser Anhang enthält die Algorithmen zur Konstruktion <strong>des</strong> segmentierenden Automatens.<br />

A.1 Konstruktion <strong>des</strong> Segmentierers<br />

A.1.1 Konstruktion von Übergangs-, failure- und Ausgabefunktion<br />

Nachfolgend sind die (leicht adaptierten, da teilweise in eine objektorientierte Form gebrachten)<br />

Originalalgorithmen von Aho/Corasick (1975) aufgeführt. Alle weiteren Algorithmen<br />

in diesem Anhang machen ebenfalls Gebrauch <strong>der</strong> objektorientierten<br />

Notationsweise.<br />

Algorithmus A.1: Konstruktion <strong>der</strong> Übergangsfunktion<br />

Eingabe: Eine Menge von Schlüsselwörtern (Listemen) S = { s1s2 ... sn}.<br />

Das Alphabet � und <strong>der</strong> Anfangszustand startstate <strong>des</strong> Automaten<br />

Ausgabe Übergangsfunktion g und teilweise berechnete Ausgabefunktion output.<br />

Verfahren begin<br />

newstate := startstate<br />

for i := 1 to n do<br />

insert(si);<br />

for all a � � such that g(startstate,a) = fail do<br />

g(startstate,a) := startstate<br />

end;<br />

procedure insert(a1a2 ... ak);<br />

begin<br />

state := startstate;<br />

for i := 1 to k do begin<br />

if g(state,ak) = fail then begin<br />

newstate := NewState();<br />

g(state,ak) := newstate;<br />

state := newstate<br />

end<br />

else<br />

state := g(state,ak);<br />

end;<br />

output(state) := { a1a2 ... ak }<br />

end;<br />

Algorithmus A.1: Konstruktion <strong>der</strong> Übergangsfunktion (nach Aho/Corasick (1975:336))<br />

Algorithmus A.1 erhält eine Menge von Zeichenketten und fügt diese <strong>der</strong> Reihe nach ein.<br />

Anschließend wird für alle Alphabetsymbole, für die es vom Startzustand keinen Übergang<br />

in einen an<strong>der</strong>en Zustand gibt, ein Übergang zurück zum Startzustand eingefügt. Diese<br />

Schleifen stellen sicher, daß <strong>der</strong> Automat bei jedem Zustandswechsel ein Eingabesymbol<br />

187

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!