POS-теггинг
POS-теггинг (от англ. part-of-speech tagging, «разметка частей речи») — это процесс автоматического присвоения каждому слову (токену) в тексте грамматической метки, указывающей на его часть речи (существительное, глагол, прилагательное, предлог и т. д.) и, в ряде случаев, дополнительные морфологические характеристики (род, число, падеж, время, лицо). POS-теггинг является одним из базовых этапов обработки естественного языка (Natural Language Processing, NLP) и широко применяется в компьютерной лингвистике, информационном поиске, машинном переводе, анализе тональности и извлечении информации.
История и развитие
Ранние подходы
Первые работы по автоматической разметке частей речи относятся к 1960-м годам. В 1963 году американский лингвист Генри Кучера (Henry Kučera) и программист Уильям Фрэнсис (William Francis) создали Брауновский корпус (Brown Corpus) — один из первых машиночитаемых текстовых корпусов английского языка объёмом около 1 миллиона слов. Для его разметки использовались правила, написанные вручную, и словарь с грамматической информацией. Однако точность такого подхода была ограничена из-за омонимии (например, слово «run» может быть и глаголом, и существительным).
Статистические методы
В 1980-е годы с развитием корпусной лингвистики и появлением размеченных вручную корпусов (например, Penn Treebank для английского языка) стали применяться статистические методы. Одним из наиболее известных алгоритмов стал скрытый марковский процесс (Hidden Markov Model, HMM). В 1992 году Эрик Брилл (Eric Brill) предложил трансформационный метод обучения на основе правил (Brill Tagger), который сочетал статистику и лингвистические правила, достигая точности около 95% для английского языка.
Современные методы
С 2010-х годов доминирующим подходом стали нейросетевые модели, в частности рекуррентные нейронные сети (RNN) и LSTM (Long Short-Term Memory). В 2018 году появление архитектуры Transformer (модели BERT, GPT и их аналоги) позволило достичь точности POS-теггинга, близкой к человеческой (более 97% для английского языка). Для русского языка современные модели (например, RuBERT, BERT-base-multilingual) также показывают высокие результаты — около 96–98% точности на стандартных корпусах (например, НКРЯ — Национальный корпус русского языка).
Классификация методов POS-теггинга
По типу используемых данных
- Правила (rule-based) — основаны на лингвистических правилах, словарях и морфологических анализаторах. Пример: система AOT (Автоматическая обработка текста) для русского языка. Точность ограничена (около 80–90% для русского), но не требует размеченных корпусов.
- Статистические (statistical) — используют вероятностные модели (HMM, CRF — Conditional Random Fields). Требуют размеченного корпуса для обучения. Пример: Stanford POS Tagger.
- Гибридные (hybrid) — комбинируют правила и статистику. Пример: Brill Tagger.
- Нейросетевые (neural) — основаны на глубоком обучении (RNN, LSTM, Transformer). Требуют больших размеченных корпусов, но обеспечивают наивысшую точность.
По языку разметки
- Универсальные тегсеты (Universal Dependencies) — международный стандарт, включающий 17 основных частей речи (NOUN, VERB, ADJ, ADV, ADP и др.). Применяется для многих языков, включая русский.
- Языкозависимые тегсеты — например, для русского языка используется тегсет НКРЯ (около 100 тегов, включая род, число, падеж, одушевлённость и т. д.) или тегсет системы Mystem (Яндекс).
- Специализированные тегсеты — для конкретных задач (например, для медицинских текстов или юридических документов).
Устройство и процесс работы
Основные этапы
- Токенизация — разбиение текста на отдельные слова и знаки препинания (токены).
- Лемматизация (опционально) — приведение слова к начальной форме (например, «бежал» → «бежать»).
- Извлечение признаков — для каждого токена вычисляются признаки: само слово, его контекст (соседние слова), морфологические характеристики (например, окончание), а также статистические данные (частота встречаемости).
- Классификация — на основе модели (правила, HMM, нейросеть) каждому токену присваивается тег части речи.
- Постобработка — корректировка ошибок (например, согласование по роду и числу).
Пример для русского языка
Рассмотрим предложение: «Красивая девушка быстро бежала по улице».
- «Красивая» → ADJ (прилагательное), женский род, единственное число, именительный падеж.
- «девушка» → NOUN (существительное), женский род, единственное число, именительный падеж.
- «быстро» → ADV (наречие).
- «бежала» → VERB (глагол), прошедшее время, женский род, единственное число.
- «по» → ADP (предлог).
- «улице» → NOUN (существительное), женский род, единственное число, дательный падеж.
Применение
В информационном поиске
POS-теггинг позволяет различать омонимы (например, «замок» — существительное в значении «крепость» или «замок» — существительное в значении «запирающее устройство») и улучшает точность поисковых систем. В российских поисковых системах (Яндекс, Mail.ru) POS-теггинг используется для анализа запросов и ранжирования результатов.
В машинном переводе
Правильное определение части речи необходимо для выбора корректного перевода. Например, английское слово «light» может быть существительным («свет»), прилагательным («лёгкий») или глаголом («зажигать»). POS-теггинг помогает снять эту неоднозначность.
В анализе тональности (sentiment analysis)
Части речи влияют на эмоциональную окраску текста. Например, прилагательные («хороший», «плохой») и глаголы («любить», «ненавидеть») часто являются ключевыми индикаторами тональности. POS-теггинг позволяет выделить эти слова для дальнейшего анализа.
В извлечении информации (Named Entity Recognition, NER)
POS-теггинг помогает идентифицировать границы именованных сущностей (например, «Москва» — имя собственное, существительное). В российских системах (например, в проекте «Томита-парсер» от Яндекса) POS-теггинг используется как предварительный этап для извлечения фактов из текстов.
В образовании и лингвистике
Автоматическая разметка корпусов (например, НКРЯ) позволяет лингвистам изучать грамматические закономерности, а также создавать учебные материалы для изучающих русский язык как иностранный.
Инструменты и программное обеспечение
Для русского языка
- Mystem (Яндекс) — морфологический анализатор, выполняющий POS-теггинг и лемматизацию. Распространяется бесплатно, поддерживает русский и английский языки.
- AOT (Автоматическая обработка текста) — система, разработанная в Институте русского языка им. В. В. Виноградова РАН. Включает морфологический анализатор и POS-теггер.
- Stanza (Stanford NLP) — библиотека, поддерживающая русский язык на основе модели Universal Dependencies. Точность около 96%.
- NLPub (SberDevices) — библиотека для русского языка, включающая POS-теггинг на основе нейросетей.
Для английского и других языков
- Stanford POS Tagger — один из самых популярных инструментов, основанный на CRF.
- NLTK (Natural Language Toolkit) — библиотека для Python, включает POS-теггер на основе HMM и CRF.
- spaCy — библиотека для NLP, поддерживающая POS-теггинг для 60+ языков, включая русский.
- Hugging Face Transformers — платформа, предоставляющая предобученные модели (BERT, RoBERTa) для POS-теггинга.
Оценка качества
Метрики
- Точность (accuracy) — доля правильно размеченных токенов. Для английского языка современные модели достигают 97–98%, для русского — 96–98%.
- F1-мера — среднее гармоническое точности и полноты. Используется для оценки качества на несбалансированных данных (например, редкие части речи, такие как междометия).
- Скорость — количество токенов в секунду. Для промышленных систем (например, Яндекс.Поиск) требуется обработка тысяч токенов в секунду.
Факторы, влияющие на качество
- Омонимия — слова, имеющие несколько грамматических значений (например, «стекло» — существительное или глагол). Для русского языка, обладающего развитой системой окончаний, омонимия встречается реже, чем в английском, но всё же составляет до 10–15% токенов.
- Неологизмы и заимствования — слова, отсутствующие в словаре (например, «хайп», «лайк»). Современные нейросетевые модели лучше справляются с ними благодаря контексту.
- Диалекты и разговорная речь — отклонения от литературной нормы (например, «чо» вместо «что»). Для русского языка такие случаи обрабатываются хуже.
Интересные факты
- Первый POS-теггер для русского языка был создан в 1980-х годах в Институте русского языка АН СССР под руководством А. А. Зализняка. Он использовал грамматический словарь, содержащий около 100 000 слов.
- В 2020 году команда Яндекса разработала модель на основе BERT, которая достигла точности 98,5% на тестовом корпусе НКРЯ.
- POS-теггинг используется в системах автоматической проверки орфографии (например, в Microsoft Word и Яндекс.Браузере) для выявления грамматических ошибок, связанных с неправильным согласованием частей речи.
- В 2023 году в рамках проекта «Универсальные зависимости» (Universal Dependencies) был размечен корпус русского языка объёмом более 1,5 миллиона слов, что позволило улучшить качество POS-теггинга для русского языка.
Источники
- Kučera H., Francis W. N. Computational Analysis of Present-Day American English. — Brown University Press, 1967.
- Brill E. A Simple Rule-Based Part of Speech Tagger // Proceedings of the Third Conference on Applied Natural Language Processing. — 1992.
- Национальный корпус русского языка (НКРЯ) — http://ruscorpora.ru
- Jurafsky D., Martin J. H. Speech and Language Processing. — 3rd ed. (draft), 2023.
- Universal Dependencies (UD) — https://universaldependencies.org
- Mystem — морфологический анализатор Яндекса — https://tech.yandex.ru/mystem
- Manning C. D. et al. The Stanford CoreNLP Natural Language Processing Toolkit // Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. — 2014.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →