Очистка данных играет важную роль в ходе их анализа. От эффективности очистки данных во многом зависит точность моделей и конечные выводы, к которым приходит исследователь. В реальной практике очистка данных составляет 50-80% аналитического процесса.
Традиционные методы очистки данных главным образом используются для обработки структурированных данных и предполагают восстановление отсутствующих значений, изменение формата данных и исправление содержательных ошибок, а также удаление ненужных данных. Информации о таких методах работы с данными много. Например, можно обратиться к статье известного инженера по обработке и анализу данных Кима Лим Ли (Kin Lim Lee), в которой описываются 8 кодов на языке Python, чаще всего используемых для очистки данных. Эти коды были написаны по функциям и могут быть использованы без изменения параметров. Каждый фрагмент преследует конкретную цель и сопровождается комментариями автора. Вы можете сохранить эту статью в закладках и использовать ее в качестве инструментария.
Однако следует признать, что в последнее время существенно увеличился объем неструктурированных (текстовых) данных. На сегодняшний день более 80% данных сохраняются в неструктурированном виде. Это обусловило спрос на высокоточные инструменты для очистки данных, встроенные в аналитическое ПО. Нам представляется, что наличие таких инструментов должно быть одним из основных требований при выборе программного обеспечения для текстового анализа.
В данной статье мы рассмотрим три основных способа очистки текстовых данных (проверка орфографии, расшифровка сокращений и выявление аномалий). Кроме того, речь пойдет о некоторых передовых методах обработки естественного языка, которые позволяют повысить эффективность процесса очистки данных.
Проверка орфографии:
Проверка орфографии предполагает исправление орфографических ошибок, жаргонизмов и “склеенных” слов. В социальных сетях жаргонизмы и сленговые единицы используются очень часто. Прежде чем приступать к анализу неформатированного текста, необходимо заменить их на нейтральные словарные единицы с целью улучшения качества данных. В результате проверки орфографии такие слова, как “ужс”, “пжлста” или “здрасте” будут приведены к стандартным формам “ужас”, “пожалуйста” и “здравствуйте”. Иногда в текстах также встречаются “склеенные” слова, например, “хорошеекачество” или “платьесильнобольшемерит”, которые появляются в результате быстрого ввода. Кроме того, орфографические ошибки могут возникать в результате простой перестановки букв (“сапсибо”). Особую трудность в ходе проверки орфографии представляет выявление и исправление семантических ошибок, когда слово написано правильно, но неверно используется в данном контексте, например, “макроэкономическая конъектура”. Слово “конъектура” действительно существует: оно означает “исправление или восстановление испорченного или не поддающегося прочтению текста на основании историко-лингвистических данных”. Однако в данном контексте оно ни при чем: нам нужна “конъюнктура” — «сложившаяся в данный момент ситуация в какой-либо области общественной жизни».
Модуль для анализа текстовых данных PolyAnalyst™ гарантирует высокий уровень точности автоматизированной проверки орфографии. Он не только выявляет ошибки, но и автоматически подбирает оптимальные варианты их исправления. На выходе данный инструмент создает модель соответствий между орфографическими ошибками или неверно использованными словами и их заменами. При необходимости эти исправления пользователь может просматривать и редактировать. Кроме того, предусмотрена возможность предварительной настройки инструмента для проверки орфографии, что позволяет управлять списком предлагаемых исправлений.
Расшифровка сокращений:
Еще одна важная операция, которую приходится выполнять в процессе очистки данных, — расшифровка сокращений разных типов. Чаще всего встречаются пропуски начальных, конечных или промежуточных букв или целых слов: оч (очень), мб (может быть), спок (спокойной ночи), руб (рубли, рублей) и др. Некоторые аббревиатуры заимствуются из других языков, например: ИМХО (от анг. “in my humble opinion”), ОМГ (от анг. “Oh my God!”). Расшифровка сокращений осложняется тем, что иногда одна и та же аббревиатура может использоваться в разных значениях в зависимости от контекста. Например, “ASA” может означать “American Society of Anesthesiologists” , “Acoustical Society of America”, “American Standards Association” или “acetylsalicylic acid” (Aspirin).
Текстовый модуль PolyAnalyst™ способен распознавать любые сокращения, расшифровка которых приводится в анализируемом тексте. Если такой расшифровки нет, с помощью технологии машинного обучения на основе текстов одной тематики выявляются модели образования аббревиатур и акронимов. Например, при работе с англоязычными медицинскими сокращениями, пользовательская модель для их расшифровки может быть обучена на основе базы данных PubMed. Алгоритм можно научить обрабатывать аббревиатуры конкретной тематической области.
Выявление аномалий:
Наличие аномальных или фиктивных значений в данных может быть обусловлено системными ошибками или ошибками ввода. Обычно для выявления аномальных значений задается допустимый диапазон значений, и записи, которые находятся за пределами указанного диапазона, попадают в категорию “подозрительных”. Например, если в записях указывается, что некоторые сотрудники компании младше 18 лет, или что годовой доход отдельных лиц превышает 5 млн. долларов, то такие значения могут рассматриваться как аномальные. Приведем еще один пример из сферы данных об онлайн-транзакциях: если в данных содержатся сведения о том, что пользователь выполнил транзакцию до того, как был создан пользовательский аккаунт, такая запись также считается аномальной.
При работе с неструктурированными данными допустимый диапазон значений ограничить не так просто. Рассмотрим один классический пример. Согласно результатам опроса сотрудников одной компании, если верить комментариям в свободной форме, некоторые сотрудники весьма положительно оценивают ее деятельность. При этом в другом разделе анкеты, где их просят оценить компанию по цифровой шкале (т.е. данные здесь жестко структурированы), они выставляют значение “0”. Обычно причиной такой ошибки является неправильная настройка системы, используемая по умолчанию. Если сотрудник не выставляет рейтинг в анкете, некоторые системы автоматически заполняют пустую графу значением “0”. В связи с тем, что это значение находится в пределах допустимого диапазона, такие записи остаются вне поля зрения исследователя, а ошибки остаются незамеченными. Вручную выявить такие ошибки при работе с тысячами записей просто невозможно. Вместо этого в таких случаях пользователи могут выполнить анализ тональности отзывов с целью выявления аномалий. Анализ тональности текста представляет собой автоматизированный процесс, выполняемый с целью распознавания положительных, отрицательных и нейтральных оценок того или иного объекта в тексте (подробнее об этом здесь). Сравнив результаты анализа тональности с рейтингом, можно быстро выявить подобные расхождения и аномалии, вызванные системными ошибками.
Примеры очистки данных с помощью PolyAnalyst:
PolyAnalyst предоставляет возможность использования готового решения по очистке данных, которое может быть применено для обработки текстов большого объема. Проверка орфографии выполняется на основе хорошо продуманной системы словарей, которая позволяет алгоритму предлагать варианты исправления ошибок с учетом текущего контекста. Рассмотрим пример из реальной практики:
На рисунке выше представлены результаты проверки орфографии таблицы с данными о ремонте автомобилей. В таблице содержится 13 миллионов записей, и узлу проверки орфографии понадобилось 87 минут, чтобы выполнить задачу. Согласно выходным данным узла, в таблице обнаружено 26038 орфографических ошибок разных типов (см. раздел 1 на рисунке выше) . В верхней левой части окна отображается таблица, которая содержит все найденные узлом ошибки, уровень достоверности для каждого предлагаемого исправления, предлагаемые варианты корректировки, и количество ошибок каждого типа. Например, узел предлагает заменить слово “trans” словом “transmission” (раздел 2 на рисунке). Достоверность (Confidence) предлагаемой замены составляет 100%; таблица содержит 2860 записей с такой же орфографической ошибкой (колонка поддержки (Support), а по всей таблице данная ошибка встречается 3048 раз (колонка Frequency). В правой части окна отображается детальная информация по выбранной ошибке. В текстовой панели области детализации (раздел 3 на рисунке) отображается следующий текст “Customer states the vehicle has an oil leak please check and advice- sublet for trans fluid” (Клиент жалуется на течь масла из коробки передач). Слово “trans” может иметь несколько значений, например, оно может быть сокращением от слов “translate” (переводить), “transform” (преобразовать) или “transgender” (трансгендерный). Однако в данном контексте это сокращение используется в значении трансмиссии, а потому должно быть исправлено на “transmission”. Таблица содержит 2860 записей с такой ошибкой (раздел 4 на рисунке). Таким образом, PolyAnalyst™ предоставляет пользователям уникальные возможности для очистки и обработки данных больших объемов. Наши инструменты позволяют экономить время, выявлять ошибки и аномалии в текстах разных типов, и максимально точно исправлять ошибки с учетом контекста
Вывод:
Очистка данных — действительно один из самых важных этапов подготовки данных к анализу. Текстовые данные сложнее анализировать, но они наиболее информативны. Правильная подготовка текстовых данных позволяет исследователям делать корректные и значимые выводы. Надеемся, что данная статья была полезной и расширила ваше понимание процесса очистки данных. Если вас заинтересовал наш продукт PolyAnalyst™, или вы хотели бы заказать индивидуальную демоверсию с примером очистки данных или анализа тональности текста, свяжитесь с нами.