Я заинтригован концепцией модели максимальной энтропии Маркова (MEMM), и я думаю об использовании ее для тегера части речи (POS). В настоящее время я использую традиционный классификатор Maximum Entropy (ME), чтобы пометить каждое отдельное слово. При этом используется ряд функций, в том числе два предыдущих тега.
MEMM используют алгоритм Витерби, чтобы найти оптимальный путь через цепь Маркова (то есть найти полный оптимальный набор тегов для предложения, а не отдельные оптимумы для каждого слова). Читая об этом, это, кажется, имеет удивительную элегантность и простоту. Однако каждый этап зависит только от «результатов» предыдущего этапа (т. Е. В соответствии с цепью Маркова).
Однако моя модель ME использует два предыдущих этапа (т. Е. Теги для двух предыдущих слов). Кажется, у меня есть два возможных подхода:
Как и в обычной реализации Витерби, используйте набор путей, сохраненных в соответствии с одним (предыдущим) этапом. Мой классификатор ME использовал бы эту и «замороженную» стадии перед этим (замороженные в рассматриваемом пути) для получения передаточной функции.
Или я пишу алгоритм для отслеживания двух этапов. Это более сложно и больше не будет истинной марковской моделью, потому что каждая передаточная функция (т.е. из модели ME) будет зависеть от двух предыдущих этапов, а не от одного этапа.
Меня поражает, что второе будет точнее, хотя и сложнее.
Я еще не нашел каких-либо примеров этого во время поиска литературы. Это было опробовано? Дает ли двухэтапный подход улучшение общей точности?