Intryguje mnie koncepcja modelu Maksymalnej Entropii Markowa (MEMM) i zastanawiam się nad użyciem go do taggera części mowy (POS). W tej chwili używam konwencjonalnego klasyfikatora Maximum Entropy (ME) do oznaczania każdego słowa. Wykorzystuje szereg funkcji, w tym dwa poprzednie tagi.
MEMM używają algorytmu Viterbi do znalezienia optymalnej ścieżki w łańcuchu Markowa (tj. Do znalezienia pełnego optymalnego zestawu znaczników dla zdania, a nie indywidualnych optymalnych dla każdego słowa). Czytając o tym, wydaje się, że ma cudowną elegancję i prostotę. Jednak każdy etap opiera się tylko na „wynikach” poprzedniego etapu (tj. Zgodnie z łańcuchem Markowa).
Jednak mój model ME wykorzystuje poprzednie dwa etapy (tj. Tagi dla poprzednich dwóch słów). Wygląda na to, że mam dwa możliwe podejścia:
Podobnie jak w przypadku tradycyjnej implementacji Viterbi, użyj zestawu ścieżek przechowywanych zgodnie z jednym (poprzednim) etapem. Mój klasyfikator ME użyłby tego i „zamrożonego” etapu wcześniej (zamrożonego na rozważanej ścieżce) do wytworzenia funkcji przenoszenia.
Albo piszę algorytm, aby śledzić dwa etapy. Jest to bardziej skomplikowane i nie byłoby już prawdziwym modelem Markowa, ponieważ każda funkcja przenoszenia (tj. Z modelu ME) zależałaby od dwóch poprzednich etapów, a nie jednego etapu.
Uderza mnie, że sekunda będzie dokładniejsza, choć będzie bardziej skomplikowana.
Nie znalazłem jeszcze żadnych przykładów tego podczas przeszukiwania literatury. Czy próbowano? Czy podejście dwustopniowe poprawiło ogólną dokładność?