Aspekte der morphologischen Analyse des Deutschen - Universität ...
Aspekte der morphologischen Analyse des Deutschen - Universität ...
Aspekte der morphologischen Analyse des Deutschen - Universität ...
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