Открыть сервис

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-теггинга

По типу используемых данных

  1. Правила (rule-based) — основаны на лингвистических правилах, словарях и морфологических анализаторах. Пример: система AOT (Автоматическая обработка текста) для русского языка. Точность ограничена (около 80–90% для русского), но не требует размеченных корпусов.
  2. Статистические (statistical) — используют вероятностные модели (HMM, CRF — Conditional Random Fields). Требуют размеченного корпуса для обучения. Пример: Stanford POS Tagger.
  3. Гибридные (hybrid) — комбинируют правила и статистику. Пример: Brill Tagger.
  4. Нейросетевые (neural) — основаны на глубоком обучении (RNN, LSTM, Transformer). Требуют больших размеченных корпусов, но обеспечивают наивысшую точность.

По языку разметки

  • Универсальные тегсеты (Universal Dependencies) — международный стандарт, включающий 17 основных частей речи (NOUN, VERB, ADJ, ADV, ADP и др.). Применяется для многих языков, включая русский.
  • Языкозависимые тегсеты — например, для русского языка используется тегсет НКРЯ (около 100 тегов, включая род, число, падеж, одушевлённость и т. д.) или тегсет системы Mystem (Яндекс).
  • Специализированные тегсеты — для конкретных задач (например, для медицинских текстов или юридических документов).

Устройство и процесс работы

Основные этапы

  1. Токенизация — разбиение текста на отдельные слова и знаки препинания (токены).
  2. Лемматизация (опционально) — приведение слова к начальной форме (например, «бежал» → «бежать»).
  3. Извлечение признаков — для каждого токена вычисляются признаки: само слово, его контекст (соседние слова), морфологические характеристики (например, окончание), а также статистические данные (частота встречаемости).
  4. Классификация — на основе модели (правила, HMM, нейросеть) каждому токену присваивается тег части речи.
  5. Постобработка — корректировка ошибок (например, согласование по роду и числу).

Пример для русского языка

Рассмотрим предложение: «Красивая девушка быстро бежала по улице».

  • «Красивая» → 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-теггинга для русского языка.

Источники

  1. Kučera H., Francis W. N. Computational Analysis of Present-Day American English. — Brown University Press, 1967.
  2. Brill E. A Simple Rule-Based Part of Speech Tagger // Proceedings of the Third Conference on Applied Natural Language Processing. — 1992.
  3. Национальный корпус русского языка (НКРЯ) — http://ruscorpora.ru
  4. Jurafsky D., Martin J. H. Speech and Language Processing. — 3rd ed. (draft), 2023.
  5. Universal Dependencies (UD) — https://universaldependencies.org
  6. Mystem — морфологический анализатор Яндекса — https://tech.yandex.ru/mystem
  7. 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 →