Стоит задача:
Разбирать документы из относительно неструктурированного вида и трансформировать данные из них в структурированный вид для загрузки в БД, при этом список полей в БД конечен и заранее известен.
Нюансы:
1) Документы могут быть в разных форматах, например Excel, PDF, а иногда это просто веб-страница на сайте
2) Как следствие, данные поступающие из различных источников представлены в разном виде. При этом, если в excel'ке данные более структурированные (почти все содержится в таблице), то в PDF'е часть данных может быть представлена текстом и быть общей для всех представленных элементов
3) Задача повторяющаяся, то есть в любом формате со временем будет несколько документов
4) Есть вероятность, что в каких-то документах недостаточно данных для полного заполнения БД, тогда в идеале должна быть возможность добавить дополнительный документ
Чтобы было нагляднее возьмем пример: спецификации каких-нибудь железок, к примеру жестких дисков. Хотим составить БД со спеками дисков. Есть определенный набор параметров, который мы хотим в нашу базу занести.
У самсунга на сайте есть PDF'ки со спецификациями их дисков (как пример,
983-я серия. Большая часть нужных спецификаций лежит в таблице. Там представлены диски сразу в двух форм-факторах, соответственно, например, размерные характеристики будут общими для двух разных семейств: 2.5" и М.2 дисков. А какая-то информация, например, интерфейс или наработка на отказ, будет общей для всех дисков. В таком случае, ячейки будут объединяться. А какая-то часть информации будет доступна в тексте, а не таблице, и ее оттуда тоже надо вытащить.
А вот у тошибы спецификации представлены прямо на
сайте. Но информация там структурирована по другому и объем ее отличается. А у условного производителя XYZ на сайте будут лежать эксели и информация будет структурирована иным образом.
Вопрос:
Какая дисциплина позволяет решить задачу по наполнению данными БД? Изучение описание таких дисциплин (процессов), как Data Mining, Data Wrangling и прочим не помогуают понять, в какую сторону именно смотреть. То есть тут с одной стороны не надо ничего предсказывать и искать insights, про которые по идее говорит Data Mining, с другой стороны для Data Wrangling'а информация слишком плохо структурирована. То есть скорее всего нужен какой-то инструмент эксплуатирующий машинной обучение / нейронные сети (для повышения качества вычленения информации, особенно из нетабличных блоков), но непонятно как спросить у гугла про правильный инструмент или как поставить задачу разработчикам. Идеальный ответ - какой инструмент (если он существует) решает такую задачу, а если не существует, то какого профиля разработчиков искать, чтобы разработать приложение, рещающее данную задачу.
Спасибо.