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

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

Задача
Провести структуризацию разнородных текстовых данных. Решение задач оптического распознавания символов, извлечения текстовой, табличной и графической информации. Построение аналитических моделей для автоматизации работы с документами, автоматической генерации отчётов и поиска документов.

Решение
Реализовано: 
Алгоритм выделения именованных сущностей и кореференции с использованием подходов, основанных на машинном обучении (Bi-LSTM, CRF, language models), решение задачи OCR с применением методов машинного обучения, построение онтологии с использованием neo4j, поисковый движок на основе elasticsearch.

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

Клиент:
Ведущая нефтедобывающая компания России

Сфера деятельности:
Обработка естественных языков

Технологии:
Python, C#, Keras, TensorFlow, PyTorch, sklearn, pandas, NumPy

Размер команды:
7+

Продолжительность:
1 год

Обработка естественных языков

Решение задач:

  • Извлечение именованных сущностей.
  • Разрешение кореференции (определение кластеров упоминаний сущностей).
  • Анализ тональности текста.
  • Извлечение тематической информации.
  • Извлечение ключевых фраз/значений.
  • Интеллектуальный поиск документов.
  • Кластеризация/классификация документов.
  • Построение тематических графов, сетевой анализ (пример: графы статей/соавторов).
  • Построение графов бизнес-процессов.

Кейс 1: Структурирование документов

Цель проекта
Приведение документов к структурированному виду: автоматическое извлечение объектов (люди, организации и др.), связеё между объектами, информации предметной области (ключевые факты, цифры и пр.). Создание сервиса для работы с документами.

Описание проекта
Имеется большой массив документов. Необходимо провести предобработку (решить задачу обработки и подготовки документов различных форматов), извлечь семантические атрибуты и именованные сущности для упрощения анализа документов и поиска по ним.

Технологии, использованные в проекте
  • TensorFlow
  • Keras
  • PostgreSQL
  • Vue.js
  • Django/Flask
Исходное состояние
Текстовые данные различных форматов. Данные не структурированы.

Результат работы алгоритмов
  • Данные приведены к единому формату. Данные, представленные в виде изображений (PDF-файлы отсканированных документов), обработаны и извлечён текст.
  • Извлечены основные сущности и выделены их типы (люди, организации).
  • Извлечены цепочки упоминаний сущностей и выделены их отношения (повторные упоминания сущностей посредством местоимений и т. д.).
  • Извлечена ключевая информация (key phrases, key values).
  • Извлечены объекты и свойства предметной области (по согласованию с заказчиком).
  • Аналитический модуль встроен в существующую систему заказчика.

Кейс 2: Анализ и поиск документов

Цель проекта
Структурированные документы должны быть загружены в поисковый движок, должен быть реализован интеллектуальный алгоритм ранжирования (настраиваемые веса тем или иным типам атрибутов и объектов).

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

Технологии, использованные в проекте
  • TensorFlow
  • Keras
  • Vue.js
  • Django/Flask
  • Plotly/D3.js
  • Elasticsearch
Исходное состояние
Структурированные данные в едином формате. Решена проблема OCR.

Результат
  • Данные подготовлены в едином формате для загрузки в поисковый движок.
  • Все атрибуты данных (сущности, кореференции, атрибуты, ключевые фразы, ключевые значения) представлены в виде JSON для удобства проведения аналитики/работы с поисковым движком.
  • Реализована автоматическая генерация отчетов (презентаций PowerPoint) по результатам аналитики.
  • Реализовано автоматическое заполнение документов (ключевых значений, таблиц и др.).
  • Реализована автоматическая обработка документов (кластеризация — последующая классификация, тематическое моделирование, сентиментальный анализ).
  • Реализованы модули аналитики и поиска, встраиваемые в конечную систему заказчика.
  • Реализован веб-сервис, служащий графический интерфейсом для пользователя.

Кейс 3: Сбор данных из открытых источников с последующей обработкой

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

Описание проекта
Необходимо cобирать данные из большого числа открытых источников по заданной тематике: парсинг веб-страниц, извлечение объектов и атрибутов по заранее согласованному списку, сентиментальный анализ данных из соцсетей.

Технологии, использованные в проекте
  • TensorFlow
  • Keras
  • Vue.js
  • Django/Flask
  • BeautifulSoup
  • Selenium
  • NLTK
  • sklearn
Исходное состояние
Тематика данных (сбор информации о конкретных объектах, свойствах, областях).

Результат
  • Автоматический сбор информации из открытых источников.
  • Система круглосуточного мониторинга веб-сайтов.
  • Анализ социальных сетей (сентиментальный анализ комментариев, извлечение информации) с заданной периодичностью.
  • Заполнение баз данных с целью извлечения информации о конкретных объектах и свойствах (согласованных с заказчиком).
  • Автоматическое построение отчетов с результатами мониторинга: построение графиков, диаграмм.
  • Реализованы модули аналитики и поиска, произведена интеграция в конечную систему заказчика.
  • Заполнена база данных.
  • Графический веб-интерфейс для просмотра результатов мониторинга.

Кейс 4: Построение графов бизнес-процессов

Цель проекта
Разработать обработчик данных (таких как отчеты, документация и т. д.), целью которого являются извлечение информации о бизнес-процессах компании и перевод текстового описания в графовое представление (другие форматы представления, анализ технологической карты).

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

Технологии, использованные в проекте
  • TensorFlow
  • Keras
  • Vue.js
  • Django/Flask
  • sklearn
  • NetworkX
  • Neo4J
Исходное состояние
Данные о бизнес-процессах компании. Определение масштаба и детализации построения онтологии бизнес-процессов.

Результат
  • Перевод текстового описания бизнес-процессов в формат свойств и объектов, процессов, агентов и т. д.
  • Построение онтологии бизнес-процессов на нескольких уровнях детализации (каждый объект или процесс может иметь внутреннюю структуру более низкого (детального) уровня).
  • Перевод онтологии в различные нотации бизнес-процессов.
  • Анализ бизнес-процессов.
  • Реализация системы с графическим представлением бизнес-процессов.
  • Реализация системы автоматизированной генерации онтологии бизнес-процессов на основе документов заказчика.

Кейс 5: Сетевой анализ документов

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

Цель проекта
Подготовка, обработка и анализ документов с целью проведения сетевого анализа. Пример: анализ цитирований, соавторов, лабораторий.

Технологии, использованные в проекте
  • TensorFlow
  • Keras
  • Vue.js
  • Django/Flask
  • sklearn
  • NetworkX
  • Neo4J
Исходное состояние
Данные в виде статей в журналах, сборниках трудов конференций и т. д.

Результат
  • Реализация обработки данных (извлечение ключевых атрибутов: авторы, название, год, список цитирования и т. д.).
  • Реализация модуля подготовки данных для построения графа (выбор структур данных для хранения, подготовка алгоритмов сортировки/группировки).
  • Построение графа — результата проведения сетевого анализа (представлено в виде веб-сервиса для тонкой настройки представления результатов по различным атрибутам).
  • Веб-сервис с графическим представлением.