Блог

Полезные статьи и новости о жизни WaveAccess

Интеллектуальный анализ текста: как использовать

Одной из распространенных text mining задач является поиск релевантных документов и извлечение из них полезной информации. Автоматизация этой задачи особо актуальна в силу постоянно растущего объема документов. И даже если невозможно достичь полной автоматизации, полученные в автоматическом режиме рекомендации заметно увеличивают продуктивность эксперта и позволяют экономить колоссальные суммы. Типичная система, решающая такие задачи, состоит из 2-х частей:

  1. Сбор и стандартизация документов; 

  2. Классификации и анализ документов.

Рассмотрим данные задачи подробнее.

Text mining_by_WaveAccess

1. Сбор и стандартизация документов

Цели данного этапа:

  • систематический сбор документов с извлечением информации о структуре текста;

  • получение метаинформации о документах (дата создания, заголовок и т.д.); 

  • приведение текста и метаинформации к стандартизованному виду.

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

Но часто мы сталкиваемся и с другими примерами, требующими большей подготовки:

Данные поставляются в виде сканов исходных документов

  • В этом случае используют движок оптического распознавания текста (например, Tesseract) с последующим выделением в тексте абзацев и параграфов. Особую сложность при распознании обычно вызывают нестандартные символы и форматирование текста (несколько колонок, таблица в тексте и др.), которые затрудняют объединение частей отсканированного текста в единый осмысленный документ. Кроме того, иногда сканы содержат несколько документов. Поэтому по определенным признакам необходимо выделять начало и конец отдельного документа.

Данные предоставляются в виде PDF или DJVU

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

Сбор информации из web-источников

  • Зачастую не все сайты или системы, которые содержат необходимую информацию, имеют API — предоставляется только пользовательский интерфейс. В этом случае возникает необходимость в веб-скрапинге (web scraping): метод заключается в анализе веб-станиц и извлечении из них полезной информации. В некоторых случаях, кроме анализа html-кода, для решения специфических задач дополнительно используются системы машинного зрения.

Данные загружаются пользователями вручную

  • Как правило, в этом случае пользователю необходимо автоматически обработать какое-то количество документов локально. Поэтому система должна поддерживать работу с большим числом форматов документов для удобства пользователя.

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

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

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

2. Классификация и анализ документов

После выбора документов (возможно, с предварительной фильтрацией) их обрабатывают, используя разнообразные text mining алгоритмы. В результате обработки появляется ясность: интересует ли нас данный документ, какую информацию он содержит. Например, упоминается ли продукт компании в тексте, и если да, то в положительном или отрицательном контексте. В результате формируется отчет по документам для ручной или дальнейшей автоматической обработки.

Основные подходы и алгоритмы для анализа текстов можно разделить на следующие группы:

  • нормализация и предварительная обработка текста;

  • поиск сущностей и отношений на основе систем правил;

  • статистические методы и машинное обучение.

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

Нормализация и предварительная обработка текста

Данный этап выполняется перед работой других алгоритмов и заключается в следующем:

  • разделение предложений на слова;

  • удаление шумовых слов (stop words) из текста: к ним относятся частицы, предлоги, междометия и т.д.;

  • нормализация формы слов и определение частей речи: приведение слов текста к нормальной форме (например "люди" => "человек" или "гулял" => "гулять").

Выполнение этих задач сильно зависит от языка текста. Не всегда необходимо выполнять все этапы. Например, некоторые алгоритмы могут извлечь пользу и из stop-слов.

Система правил

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

  • "выделить продукты в пределах 3-х предложений от названия компании";

  • "выделить услуги, подходящие под шаблон: <название компании> предоставляет <название услуги>";

  • "отсеять документы, в которых менее 3-х упоминаний продуктов компании".

Особенности языков  

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

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

Так, в русском языке наличие окончаний и суффиксов делает очевидным род слов:

| Шустрый коричневый лис перепрыгивает через ленивого пса. 

Но алгоритму сложнее понять, что слова "ленивый", "ленивому", "ленивая" можно считать за одно; то же происходит и со словом "перепрыгнуть". 

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

The quick brown fox jumps over the lazy dog.

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

Преимущества и недостатки системы правил

Преимущества

  • Отсутствует необходимость в наборе обучающих данных и их разметке;
  • Для пользователя принятые системой решения прозрачны, интерпретировать их легко.

Недостатки

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

Статистические методы и машинное обучение

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

Алгоритмы предварительной обработки текста. 

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

  1. One-hot encoding — простейший алгоритм, переводящий слова текста в вектора длинной N с ненулевым значением в i-й позиции. Где N — размер словаря языка, а i — номер слова в этом словаре.

  2. Word2vec — группа алгоритмов, которая также переводит слово в вектор. Но итоговый вектор имеет намного меньшую размерность, чем в случае one-hot encoding, и содержит вещественные числа. При этом слова, близкие по смыслу, будут иметь вектора, близкие друг к другу.

  3. Bag of words — данный алгоритм строит вектор частот встречаемости слов в тексте. Это позволяет получить вектор, описывающий текст в целом, но почти полностью игнорируется информация о структуре текста.

  4. TF-IDF — для каждого текста строит вектор, каждый элемент которого определяется как отношение частоты слова в тексте к обратной частоте слова во всех документах. Мера обратной частоты может определяться разными способами, но ее основная идея следующая. Если слово широко употребляется в языке, то оно часто встречается в документах и вряд ли имеет ценность для их классификации. Поэтому такие слова будут иметь меньшую обратную частоту. Редкие слова, напротив, будут иметь большую обратную частоту.

Алгоритмы поиска именованных сущностей и связей между ними. 

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

  1. Hidden Markov Model (HMM) — представляет статистическую модель в виде направленного графа.

  2. Conditional random field (CRF) — как и HMM, является статистической моделью, но использует ненаправленный граф.

  3. Нейронные сети, в частности LSTM и CNN. LSTM учитывает контекст за счет того,  что она является рекуррентной и хранит информацию о контексте в процессе работы. СNN извлекает данные на основе паттернов, выявляющих существенные признаки.

  4. Общие методы машинного обучения. При использовании скользящего окна становится возможным использование общих методов, таких как logistic regression, support vector machines, naive bayes, decision tree и другие, которые требуют на вход фиксированный набор признаков.

Алгоритмы классификации и тематического моделирования документов.

Целью является краткое описание обработанных документов. Например, определение типа документа или тем документов. Для этого можно использовать:

  1. Latent Dirichlet Allocation (LDA) — статистическая модель, основанная на распределении Дирихле, рассматривает текст как смесь тематик.

  2. Latent Semantic Analysis (LSA) — метод, основанный на представлении корпуса в виде терм-документной матрицы и ее разложении с целью определения тем документов.

  3. Additive Regularization of Topic Models (ARTM) — данный метод использует существующие статистические модели, но добавляет к ним регуляризацию, чтобы лучше учитывать структуру теста.

  4. Общие методы машинного обучения используют в качестве входных данных результаты работы Bag of words, TF-IDF или других алгоритмов.

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

Преимущества и недостатки статистических методов и машинного обучения

Преимущества

  • Автоматический поиск связей между особенностями текста и требуемым результатом;
  • Возможность учитывать сложные связи в тексте;
  • Способность к обобщению (то есть к правильной обработке случаев, которых не было в обучающей выборке).

Недостатки

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

Хотите узнать, как text mining можно применить в вашем проекте?

Мы расскажем!

Свяжитесь с нами: hello@wave-access.com

Заказать звонок

Удобное время:

Отменить

Пишите!

Присоединить
Файл не больше 30 Мб.
Отменить