CoderCastrov logo
CoderCastrov
Искусственный интеллект

Как обеспечить свой бизнес, основанный на данных, текстовыми данными? — Часть 2, Стратегии и инструменты

Как обеспечить свой бизнес, основанный на данных, текстовыми данными? — Часть 2, Стратегии и инструменты
просмотров
6 мин чтение
#Искусственный интеллект

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

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

Варианты сбора данных

Внутреннее решение

Как мы упоминали в первой части этой серии, сбор данных следует рассматривать как процесс. Поэтому большинство наших клиентов хотят создать свои внутренние возможности. Таким образом, они могут быть гибкими и быстро реагировать на изменения в требованиях. Если вы выбираете внутреннее решение, есть множество инструментов, которые можно использовать. Нашим любимым является Scrapy, язык скрапинга и парсинга веб-страниц. Это зрелый и хорошо поддерживаемый фреймворк на языке Python с отличной документацией.

Основы Scrapy и парсинга веб-страниц можно изучить за короткое время. Несколько минут поиска в Интернете предоставят вам отличные учебники. Нашим любимым ресурсом является Web Scraping with Python Митчелла.

Если ваша компания не использует Python и/или вас интересуют другие технологии, обратите внимание на Apache Nutch и sparkler, который является краулером на базе Spark.

Независимо от выбранного инструмента, вам придется управлять своими парсерами и инфраструктурой вокруг них. Ваша команда разработчиков должна быть готова к этим потребностям! Вы также можете использовать облачные решения, например, Scrapy Cloud от Scrapinghub.

Аутсорсинг

Парсинг и обход веб-страниц кажутся простыми задачами. Ведь Google уже давно этим занимается! Но это только частично верно. Google может делать это, нанимая армию разработчиков и используя, вероятно, самую большую аппаратную инфраструктуру в мире. Однако мы узнали на своих ошибках, что парсинг не так прост. Мы уже обсуждали проблему современных JavaScript-фреймворков и заблокированных сайтов. Есть сайты, которые блокируют определенные IP-адреса после определенного количества запросов, поэтому хорошая тактика - это смена IP-адреса. Сайты постоянно меняются, поэтому парсеры должны быть поддерживаемыми, если вам нужны актуальные данные.

Если вы хотите получить данные из большего количества источников и регулярно обновлять свои данные, вам нужно управлять своими парсерами. Есть компании, специализирующиеся на таких задачах! Парсинг и обход - это высокоспециализированные навыки, и большинству компаний не нужны сотрудники с такими навыками постоянно. Вероятность того, что самый простой способ собрать ваши данные - это не конкурировать с такими специализированными компаниями, а стать их клиентом. Конечно, есть множество фирм, предлагающих подобные решения. Чтобы найти наиболее подходящую, не забывайте, что Google - ваш друг!

Краудсорсинг, привлечение армии разработчиков

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

Варианты аннотации

Важность аннотации

Зачем нам нужна аннотация? В индустрии обычно используются супервизируемые алгоритмы, которым требуются помеченные или аннотированные данные. Исходные данные должны быть очищены и помечены, прежде чем они смогут использоваться для обучения алгоритма. Когда вы читаете о правиле 80% в науке о данных, статьи обычно говорят вам, что 80% каждого проекта тратится на сбор, очистку и преобразование данных. В случае проектов, связанных с текстовыми данными, это не так. Реальность подсказывает, что даже больше времени требуется, чтобы правильно подготовить и аннотировать ваши данные. Мы бы сказали, что 90–95% времени следует уделить сбору, очистке, преобразованию и аннотации ваших данных. Иногда даже больше.

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

Хорошее программное обеспечение для аннотации позволяет загружать тексты в исходном формате, управлять аннотаторами и определять аннотацию, то есть какие метки могут присваивать аннотаторы текстам или словам. Аннотаторы должны быть готовы к своим задачам, что означает, что им нужно некоторое обучение и руководство на руках во время работы. Это хорошая практика контроля качества аннотации, чтобы пометить каждый элемент или определенный процент всего корпуса как минимум тремя аннотаторами и измерить их согласованность. Легко подумать, что аннотация - это утомительная и очень трудоемкая задача - и это так! Однако, благодаря последним достижениям в области активного обучения, затраты и временные рамки задач аннотации могут быть существенно сокращены. (Подробнее об этой теме можно прочитать в книге Роберта Манро, Машинное обучение с участием человека). Учитывая вашу стратегию аннотации, вы должны иметь в виду все эти вопросы! Независимо от того, создаете ли вы свое собственное решение, запускаете ли свои задачи аннотации на сайтах краудсорсинга или нанимаете специализированную компанию.

Внутреннее решение

Если вы хотите сохранить задачу разметки данных внутри вашей организации, вам понадобится хорошее инструмент разметки. Вы можете найти бесплатные инструменты с открытым исходным кодом, такие как doccano. Он не поддерживает активное обучение из коробки, поэтому это хорошая задача для ваших разработчиков Python, чтобы интегрировать его с библиотекой активного обучения. Создатели Spacy создали Prodigy, инструмент разметки, который поддерживает активное обучение. Он не бесплатный, но имеет разумную цену.

Теперь у вас есть данные и инструмент разметки, и вы готовы спланировать вашу задачу разметки. Прочитайте книгу Natural Language Annotation for Machine Learning by Pustejovsky and Stubbs, чтобы узнать больше об этом. Имейте в виду, что разметка не является черной магией, но вам нужен опыт, чтобы правильно спланировать и выполнить ее.

Краудсорсинг

Если создание внутренних компетенций не является жизнеспособным вариантом, стоит рассмотреть возможность краудсорсинга. Вам все равно понадобится кто-то, кто описывает задачи, управляет процессом аннотации и заботится о вопросах качества, но вам не нужно иметь дело с аннотаторами. Инструменты, такие как Amazon Mechanical Turk, позволяют разбивать задачи на маленькие микрозадачи и предлагать их удаленным работникам через платформу. Вам не нужно нанимать работников и включать их в список оплаты, так как это задача краудсорсингового сайта. Обычно вы можете установить определенный уровень опыта, чтобы выбирать среди кандидатов на основе их экспертизы. Хорошей практикой является предоставление работникам хороших инструкций и пробного задания перед принятием их заявки.

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

Аутсорсинг

Существуют компании-аннотаторы, которые предлагают решения проблемам краудсорсинга. Такие компании нанимают (постоянно или на ограниченный срок) большое количество аннотаторов, поэтому их сотрудники хорошо обучены, точны и получают более высокую зарплату, чем работники сайтов краудсорсинга. Они могут помочь и в планировании задачи аннотации. Кроме того, такие компании хорошо осведомлены о правовой среде, такой как GDPR. Полное аутсорсинг задачи аннотации компании может показаться дорогим шагом, однако иногда это лучший способ получить данные. Рынок таких компаний огромен, и их отыскать относительно легко - можно обратиться к глобальному поставщику (например, Appen) или найти местные компании в своем регионе.

Нужна помощь? Наймите нас!

Рассмотрение таких вариантов может быть пугающим. Не паникуйте! Свяжитесь с нами, и мы поможем вам принять правильное решение, чтобы ваши алгоритмы работали на лучшем топливе.

Источники

Изображение заголовка было загружено по следующей ссылке: https://www.flickr.com/photos/sfupamr/14601885300

Подписаться на нашу рассылку

Получайте основные моменты о NLP, AI и прикладной когнитивной науке прямо в свой почтовый ящик.


Опубликовано на https://crowintelligence.org 19 июня 2020 года.