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ść?
źródło