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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

Anhang C: Programmcode<br />

Anhang C: Programmcode<br />

Anhang C enthält die Programmtexte <strong>der</strong> <strong>Analyse</strong>automaten und <strong>der</strong> <strong>morphologischen</strong><br />

Grammatik. In C.1 ist <strong>der</strong> Segmentierer dokumentiert, in C.2 <strong>der</strong> unifikationsbasierte Chart-<br />

Parser.<br />

C.3 gibt die CUF-Implementierung <strong>der</strong> <strong>morphologischen</strong> Grammatik wie<strong>der</strong>.<br />

C.1 Der Segmentierer<br />

/*********************************************************************************************************************************<br />

File: segment.pl<br />

Language: Sicstus Prolog 3.5<br />

Author: Thomas Hanneforth, University of Potsdam, Germany<br />

Date: Feb. 98<br />

Desc.: implements the segmenting automation<br />

*********************************************************************************************************************************/<br />

:- ensure_loaded([library(lists)]).<br />

:- [utils].<br />

:- [automat]. % Alphabet and start state of the segmentizer<br />

/*********************************************************************************************************************************<br />

parse_word(Word:,Structures:)<br />

Top level predicate of the word parser; calls predicates init_chart/0, shift/1 in<br />

wordchart.pl<br />

Use word_segmentation/2 if you are only interested in the known<br />

segments of Word<br />

*********************************************************************************************************************************/<br />

parse_word(Word,Structures) :-<br />

init_chart,<br />

% convert Word into a list of atoms, e.g. 'Hi' becomes ['H',i]<br />

atom_to_atomlist(Word,Symbollist),<br />

startstate(StartState),<br />

% shift the found segments into the chart<br />

insert_segments_into_chart(Symbollist,StartState,1,Word),<br />

% check whether it's necessary to insert "unknown"-segments<br />

% after the last lexical segment<br />

complete_chart(Word),<br />

startcat(Startcat),<br />

length(Symbollist,Wordlength),<br />

% find all edges spanning the whole word<br />

generate_structures(Startcat,Wordlength,Structures).<br />

194

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!