aufgabe_9
index
sourcecode/aufgabe_9.py
sourcecode/prettycode/aufgabe_9.html

#-*- coding: UTF-8 -*-
#
# Aufgabe 9: N‐Gramm Modellkonstruktion (+10Pkt Zusatz für den Einsatz eines Glättungsverfahrens)
# Author: Matthias Rebel, 731220

 
Modules
       
aufgabe_X_ngramclass
getopt
sys

 
Functions
       
calculatePropabilityForInput(nGramsModel, satzNGrams, uniGramme, nSize)
berechnet die Probability für den Eingabesatz 
für nSize > 1 mit folgender Formel:     
P(word|context) = count(context,word) + 1 / count(word) + vokabSizeV
Add-One Laplace Glättung                ^                    ^
 
für UniGramme: 
P(Word) = (countContWord + 1) / (countWord + vokabSizeV )
Add-One Laplace Glättung   ^                    ^
createNgramModelfromKorpus()
erzeugt die nSize Gramme des Korpus
createNgrammeSatz()
erzeugt die nSize Gramme des Satzes
createUniGramme()
erzeugt die Unigramme des Korpus
prettyprint(satz, satzNGramme, nSize, finalResult)
druckt das Ergebnis in gewünschter Form

 
Data
        filename = 'korpus/ep-self-2000kb.txt'
nSize = 2
opts = []
satz = '<s>Darüber hinaus müssen sehr spezifische Maßnahmen ergriffen werden </s>'

 
Demonstration
        localhost:sourcecode matthiasrebel$ python aufgabe_9.py -n2
<s> Darüber hinaus müssen sehr spezifische Maßnahmen ergriffen werden </s> => P( Darüber | <s> ) = 0.00003058 P( hinaus | Darüber ) = 0.00085572 P( müssen | hinaus ) = 0.00009047 P( sehr | müssen ) = 0.00012058 P( spezifische | sehr ) = 0.00009179 P( Maßnahmen | spezifische ) = 0.00006085 P( ergriffen | Maßnahmen ) = 0.00012235 P( werden | ergriffen ) = 0.00011935