Ich bin fasziniert vom Konzept eines Maximum Entropy Markov-Modells (MEMM) und denke darüber nach, es für einen POS-Tagger (Part of Speech) zu verwenden. Im Moment verwende ich einen herkömmlichen ME-Klassifikator (Maximum Entropy), um jedes einzelne Wort zu kennzeichnen. Dies verwendet eine Reihe von Funktionen, einschließlich der beiden vorhergehenden Tags.
MEMMs verwenden den Viterbi-Algorithmus, um den optimalen Pfad durch die Markov-Kette zu finden (dh um einen vollständigen optimalen Satz von Tags für den Satz zu finden, anstatt einzelne Optima für jedes Wort). Wenn man darüber liest, scheint dies eine wunderbare Eleganz und Einfachheit zu haben. Jede Stufe stützt sich jedoch nur auf die "Ergebnisse" der vorherigen Stufe (dh gemäß einer Markov-Kette).
Mein ME-Modell verwendet jedoch die beiden vorherigen Stufen (dh die Tags für die beiden vorhergehenden Wörter). Es scheint, ich habe zwei mögliche Ansätze:
Verwenden Sie wie bei einer herkömmlichen Viterbi-Implementierung eine Reihe von Pfaden, die gemäß einer (der vorherigen) Stufe gespeichert sind. Mein ME-Klassifizierer würde diese und eine vorher eingefrorene Stufe (eingefroren in den betrachteten Pfad) verwenden, um die Übertragungsfunktion zu erzeugen.
Oder ich schreibe den Algorithmus, um zwei Stufen zu verfolgen. Dies ist komplizierter und wäre kein echtes Markov-Modell mehr, da jede Übertragungsfunktion (dh vom ME-Modell) von den vorhergehenden zwei Stufen und nicht von einer Stufe abhängen würde.
Es fällt mir auf, dass die zweite genauer sein wird, obwohl sie komplizierter sein wird.
Beispiele dafür habe ich bei meiner Literaturrecherche noch nicht gefunden. Wurde es versucht? Hat der zweistufige Ansatz die Gesamtgenauigkeit verbessert?
quelle