Versuch 5: Aufgabe 3

Erzeugen eines Sprachmodells: 

Erzeugen Sie eine Datei, die für jedes Wort (Unigram) und jedes Wortpaar (Bigram) einen Eintrag enthält, aus dem seine Wahrscheinlichkeit hervorgeht. Die NIST Syntax für Language-Model-Files sieht wie folgt aus:


        
        beliebige Kommentare

        \data\
        \ngram 1=Anzahl der Unigramme
        \ngram 2=Anzahl der Bigramme

        \1-grams:
        log(p(wort)) wort 0.0
        ...
        log(p(wort)) wort 0.0

        \1-grams:
        log(p(wort2|wort1)) wort1 wort2
        ...
        log(p(wort2|wort1)) wort2 wort1

        \end\

        
Zum Beispiel könnte ein Sprachmodell für die folgenden 3 Sätze:

        
<s> B C A </s>
<s> A A B </s>
<s> C A A </s>

so aussehen:

        
\data\
ngram 1=3
ngram 2=9

\1-grams:
-0.575117 <s> 0.0
-0.477990 A 0.0
-0.877236 B 0.0
-0.877236 C 0.0

\2-grams:
-0.606424 <s> A
-0.606424 <s> B
-0.606424 <s> C
-0.400116 A </s>
-0.400116 A A
-0.703333 A B
-0.305394 B </s>
-0.305394 B C
-0.002177 C A
\end\

Tatsächlich erlaubt das NIST Format auch andere Arten von Language-Models, z.B. mit Trigrammen oder mit Back-Off Faktoren, die anders als oben gezeigt auch ungleich 0.0 sein können. Aber für unsere Zwecke genügen die oben eingeführten Möglichkeiten.