Для чего нужен проект?

FindImper помогает автоматически вычленить побуждения из текстов. Это полезно при анализе текста, например, лингвистом-экспертом.

Как подготовить данные для анализа?

На вход алгоритму нудно подать текстовый файл форматов txt, tsc, csv в любой кодировке. Данные в нём должны представлять собой таблицу с одним столбцом Text, но способов организовать сам текст есть два:

  • самый удобный: каждое предложение или реплика говорящего должны быть расположены на отдельной строке;
  • самый простой: весь текст может быть расположен на одной строке.

Для оценки качества работы алгоритма нужно добавить столбец Imperative, содержащий для каждой строки из столбца Text элементы вида "номер предложения: части императивного выражения через запятую"; каждый элемент, кроме последнего, должен заканчиваться точкой. Столбцы таблицы должны быть разделены символом табуляции. Проще всего это сделать, оформив всё в таблицу Excel (или аналогичную), а потом экспортировать ("сохранить как...") в текстовый файл с разделителем табуляцией.

Пример Пример

В каком формате вернётся результат?

На странице результата можно будет скачать текстовый файл, представляющий собой исходную таблицу с добавленным столбцом Imperative. Для каждого предложения текста из столбца Text через запятую указаны элементы побудительных конструкций. Для удобства можно импортировать данные из него в программу Excel или аналогичную.
В будущем планируется возможность выбрать, как будут организованы данные на выходе. по выбору возвращать каждое предложение на отдельной строке

Пример Пример

Как выбрать модель для анализа?

Разные модели используют разные алгоритмы, правила или данные для обучения. На данный момент лучше всего работают правиловые подходы: pymorphy и mystem. Если не знаете, что использовать, просто ничего не трогайте: по умолчанию используется pymorphy, обеспечивающий оптимальное соотношение качества и скорости работы.

Что вообще за модели?

Модели помогают компьютеру понимать язык.

  • pymorphy2 анализирует текст пословно, прибегая к данным корпуса OpenCorpora и предлагая гипотетические морфологические разборы слов.
  • MyStem — инструмент от компании Яндекс, также строящий гипотетические морфологические разборы слов, однако, в отличие от Pymorphy2, ещё и разрешающий омонимию на основе статистических данных из НКРЯ.
  • spaCy — современный инструмент для автоматической обработки естественного языка, обладающий большими возможностями лемматизации, морфологического разбора, синтаксического парсинга, извлечения именованных сущностей и т.д. Для русского языка использовалась предобученная модель, созданная на основе корпуса новостных и медийных текстов Nerus. Это синтетический корпус, размеченный обученной на небольшом корпусе вручную размеченных текстов нейронной сетью на основе архитектуры BERT. Набор граммем в этой модели соответствует универсальному формату CoNLL-U.
  • UDPipe — инструмент от Institute of Formal and Applied Linguistics (ÚFAL), Charles University. Использовалась модель, предобученная на корпусе SynTagRus 2.5, поэтому набор граммем также соответствует формату CoNLL-U.
  • Stanza — созданный Stanford NLP Group инструмент, также предлагающий широкие возможности для автоматического анализа естественного языка, в том числе на русском языке. Использованная модель была предобучена на русскоязычной части датасета Universal Dependencies v2.8, что означает, что её граммемы также соответствуют формату CoNLL-U.

В результатах таблица с какими-то числами, как их понять?

Для оценки качества работы алгоритмов используются вариации метрики ROUGE (Recall-Oriented Understudy for Gisting Evaluation), которая оценивает совпадения слов и их цепочек в эталонном и полученном текстах:

  1. rouge-n оценивает совпадения для последовательностей длины n слов;
  2. rouge-l находит максимально длинную совпадающую последовательность;
  3. rouge-su1 оценивает перекрытие последовательностей из двух слов, но позволяет пропуск одного слова между ними.

Больше об этих метриках можно прочитать в оригинальной статье.

Для каждой вариации рассчитывается три значения: полнота, точность и F-мера.

  1. полнота (precision) показывает, насколько полны наши результаты: не пропустили ли мы значительную часть элементов императивной конструкции;
  2. точность (recall) оценивает, насколько верна наша классификация: действительно ли то, что мы назвали частью императивной конструкции, является таковой;
  3. F-мера (F-score) является средним гармоническим точности и полноты и позволяет достигнуть сбалансированной оценки;

Каждая метрика принимает значения от 0 до 1, причём чем больше число, тем лучше результат. Мы советуем ориентироваться на полноту, чтобы затем вручную очистить результаты от случайных срабатываний, но конечный выбор остаётся за Вами.

Вместо результатов какая-то ерунда!

Качество результата может сильно зависеть от выбранной модели, поэтому есть смысл попробовать другую. Если выбранная модель не справляется, подготовьте небольшой, но разнообразный набор данных со столбцом Imperative, чтобы сравнить качество разных моделей и выбрать, какую применить для полного набора данных. Кроме того, важно помнить, что машины решает неоднозначные задачи (а определение наклонения без понимания текста — задача неоднозначная) хуже, чем человек, и результат работы нашего сайта в любом случае требует проверки.

Значок загрузки бесконечно мигает!

Морфологический, а особенно синтаксический разбор текстов требует времени, что отражает мигающий значок загрузки. Попробуйте для начала загрузить небольшой набор данных, чтобы проверить работу выбранной модели.

Как с вами связаться?

FindImper — развивающийся проект, поэтому мы всегда рады замечаниям и предложениям! Наши контакты вы можете найти на соответствующей странице.