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

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

Сначала мы поговорим о маркировке данных в целом, а затем применим к нашему проекту: анализ твитов фондового рынка с использованием модели NER.

Введение в маркировку данных

В настоящее время большинство моделей машинного обучения представляют собой контролируемые модели обучения. Они в значительной степени полагаются на свои данные обучения, чтобы изучить обобщение данной задачи. С каждой итерацией обучения модель регулирует веса, чтобы предсказать правильные метки, предоставленные человеком-аннотатором.

Аннотаторам поручено использовать собственное суждение, чтобы комментировать каждый обучающий пример: спам ли это по электронной почте или нет? Это изображение кошка или собака?

Более сложным примером может быть идентификация объектов, таких как электронные письма, лица, названия компаний в каждом электронном письме. Здесь от маркировщика требуется предоставить диапазон (индекс начала, индекс окончания) для каждого объекта в тексте.

Как видите, процесс маркировки или тегирования варьируется от очень простого бинарного выбора до сложного и детального конкретного выбора. Чтобы аннотация прошла успешно, есть несколько требований:

  • Удобный интерфейс маркировки. В случае сложной маркировки маркировщики могут легко перегружаться. Время очень важно, и вы хотите закончить процесс быстро и правильно. Разработка или использование простого в использовании и эффективного инструмента аннотирования данных, безусловно, может вам помочь.
  • Консенсус в области знания предметной области. Каждый специалист по маркировке должен создавать согласованные и правильные теги. Если данные содержат область высокого уровня, такую ​​как здравоохранение, финансы, научные исследования, маркировщики должны иметь опыт предметной области для выполнения аннотации. Для этого проекта мне пришлось читать статьи, чтобы понять жаргон мира фондового рынка. Это знание также поможет в случае конфликта, когда несколько маркировщиков аннотируют один и тот же корпус: в конце концов, маркировщики могут совершать ошибки из-за недостатка знаний или предвзятости.
  • Оценка качества данных.Всегда проверяйте точность ваших ярлыков на протяжении всего этапа, потому что, как я понял в этом проекте, собранный мной набор данных хорошо работал с одними ярлыками, но не с другими. Пример, который я привожу: я включил сущность PERSON в метки, но набор данных не предоставил достаточно примеров для этой конкретной сущности, с другой стороны, было много примеров для имен COMPANY и их TICKERS.

Это не охватывает все требования к маркировке данных, но понимание этих моментов даст вам хорошее начало и избавит вас от многих головных болей.

Вот моя небольшая история: в предыдущем проекте НЛП я работал над разработкой модели для прогнозирования заслуживающих доверия источников новостей и предвзятых источников новостей на основе набора данных статей. Я обозначил данные следующим образом: у меня был список источников новостей, основанный на моих культурных знаниях о них: безусловно, есть хорошо зарекомендовавшие себя источники, которые большинство людей считают заслуживающими доверия, а остальные могут считаться менее заслуживающими доверия. Итак, я назвал статьи, основанные на общественном консенсусе, из-за отсутствия лучших слов.

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

Я надеюсь, что этот раздел помог вам понять, насколько важна маркировка данных, а теперь давайте немного попрактикуемся!

Аннотация NER

Существует много инструментов для текстовых аннотаций НЛП: платные, такие как Amazon Sagemaker Ground Truth или Prodigy, и с открытым исходным кодом, такие как Doccano. В этом уроке мы попробуем: Инструмент аннотации UBIAI.

Инструмент специализируется на NER, извлечении отношений и классификации текста. Он имеет множество интересных функций, таких как автоматическая маркировка с помощью правил, словарей и маркировка с помощью модели.

Определение меток

Но прежде чем приступить к работе, нам нужно знать, какие именно метки нам нужно извлечь: мы говорили о метках в разделе предварительной аннотации предыдущего эпизода. Общий spaCy не настраивается точно для текста фондового рынка, поэтому нам нужно переопределить метки:

  • COMPANY: названия компаний
  • ТИКЕР: специальный символ для каждой компании на фондовом рынке: тикер Apple — AAPL на фондовой бирже NASDAQ.
  • ВРЕМЯ: мы перегруппировали ярлыки ВРЕМЯ и ДАТА в один ярлык.
  • ДЕНЬГИ: не требует пояснений
  • MONEY_LABEL: это немного сложно, и это выяснилось после долгих исследований, ярлыки MONEY сами по себе не очень полезны, если не упоминать, к чему они относятся. Этот ярлык указывает просто на то, о чем ДЕНЬГИ. Например, является ли это значением целевой цены? Или новый рост стоимости акций компании? Этот ярлык относится к жаргону фондового рынка.
  • PERCENT: число, обозначающее процент, статистику.
  • КАРДИНАЛ: число само по себе, а не ВРЕМЯ, ДАТА, ДЕНЬГИ или что-то еще.
  • ПРОДУКТ: любое упоминание о продукте.
  • ЧЕЛОВЕК: имя реального человека, например генерального директора или журналиста.
  • GPE: геополитическая сущность.
  • СОБЫТИЕ: например, финансовый саммит.

Рабочий процесс

Во-первых, нам нужно создать проект, в котором будут размещаться наши данные и наша задача. Шаги для этого хорошо описаны в Документации. По сути, вы определите свой проект как проект аннотации на основе Span. Вы настроите его параметры, добавив метки для использования, а затем вам нужно будет импортировать набор данных в поддерживаемом формате: наш список — это предварительно аннотированный список словарей из модели NER по умолчанию Spacy. ознакомьтесь с предыдущей статьей для получения дополнительной информации о том, как предварительно обработать ваши данные.

Интерфейс аннотаций

Большая часть вашей работы будет находиться на вкладке «Аннотации». Вы можете добавлять метки непосредственно в интерфейсы Entities, Relations или Classification. Рабочий процесс прост: сначала выберите метку, а затем выделите мышью слова в текстовом интерфейсе документа. Если вы закончили, подтвердите свой документ и перейдите к следующему, как показано ниже:

Довольно просто.

На вкладке «Подробности» вы можете изменить настройки проекта, такие как имя и описание проекта, существующие метки для каждого типа задачи NLP (NER, REL или Classification).

Во вкладке «Документы» вы можете импортировать или удалять документы.

Теперь мы достигаем более интересных особенностей.

Интерфейс перед аннотацией

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

Я составил список тикеров и названий компаний из этого источника. Обратитесь к документации для более подробной информации, но вот как это будет выглядеть:

Другая функция — сопоставление на основе правил: вы можете использовать шаблоны, такие как регулярные выражения, для пометки слов. Перед предварительным аннотированием со словарем я использовал шаблон для тегов бегущих строк. Тикер — это символ, состоящий из одной-четырех заглавных букв. В твитах обычно упоминается тикер, которому предшествует знак доллара, но я не мог полагаться на эту информацию, потому что тикеры, естественно, не зависят от этого. Я также обнаружил, что некоторые жаргоны имеют ту же схему, что и прибыль на акцию или прибыль на акцию.

Как только вы закончите определение своих словарей и правил, вы готовы запустить предварительную аннотацию.

Интерфейс показателей

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

В частности, распределение меток документов было очень полезным для мониторинга процесса аннотирования: всего лишь пометив 100 документов, я понял, что COMPANY, TICKER, MONEY и MONEY_LABEL — единственные хорошо представленные метки в корпусе.

Маркировка с помощью модели

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

Допустим, вы пометили 100 документов, вы можете обучить модель NER на платформе. Впоследствии вы можете использовать эту модель для прогнозирования для каждого документа или автоматически аннотировать остальные документы, если вы удовлетворены производительностью!

Перейдите на вкладку «Модели», выберите «Распознавание именованных объектов», а затем нажмите «Добавить новую модель».

В список будет добавлена ​​новая модель.

Вы можете подготовить свою модель к обучению, открыв действие «Обучение модели» в столбце «Действие». Вы можете ввести некоторые базовые конфигурации, такие как процент отсева и коэффициент обучения/проверки. Не забудьте выбрать свою модель, щелкнув ее кнопку-флажок.

Вернитесь на вкладку «Аннотация», а затем нажмите кнопку «Обучить модель» в интерфейсе маркировки модели. После завершения обучения вы можете использовать кнопку прогнозирования, чтобы аннотировать текущий документ.

Почему это так полезно? Вы можете легко узнать, что ваша модель успешно изучает. В моем случае я подтвердил некоторые из своих наблюдений на вкладке «Метрики». Модель намного лучше учит наиболее представленные метки, такие как MONEY_LABEL и TICKER.

Ниже вы можете увидеть историю обучения модели. На вкладке «Модели» щелкните строку модели, и вы попадете на эту страницу.

Вы можете видеть, что модель немного колебалась в производительности. Нажмите на сведения об объекте для любой модели и убедитесь сами в индивидуальных баллах для каждой метки.

Модель работает хорошо с COMPANY, TICKER, MONEY_LABEL, TIME и CARDINAL.

Модель борется с ДЕНЬГАМИ и ПРОЦЕНТАМИ. Но есть возможности для улучшения. Есть проблема, особенно с ДЕНЬГАМИ, потому что они якобы были хорошо отобраны. Возможно, модель путает метку с другими числовыми объектами.

Модель недооснащена PRODUCT, EVENT и PERSON. Это проблематично, потому что в гипотезе нашего проекта мы, безусловно, считаем, что ЛИЧНОСТИ очень влиятельны на фондовом рынке (например, Илон Маск). Мы пришли к выводу, что текущий размеченный набор данных не очень хорошо представляет этот объект.

В случае реального проекта мы можем продолжать маркировать больше документов и обучать модель, и если мы не увидим значительного прогресса, мы должны переосмыслить наш набор данных.

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

Заключение

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

Вы также знаете, что эти обученные модели NER в инструменте UBIAI являются полноценными моделями? В этом эпизоде ​​мы уже проводили обучение модели. Однако мы также хотим улучшить текущую модель и изучить возможность обучения вашей собственной модели NER с использованием Spacy.

Если вам интересно узнать об этом инструменте и вы хотите попробовать его самостоятельно, вы можете запросить демонстрацию здесь.

Если у вас есть вопросы, не стесняйтесь обращаться ко мне через Linkedin или Twitter.

Удачного обучения и до встречи в следующей статье!