Преобразование информации из неструктурированной в структурированную

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

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

1.  Организация "Первый пример", сайт: https://exemplum_primum.org. Проводит исследования в области социального сиротства с 1 января 2016 года. Опубликовала 20 наборов в машиночитаемых форматах (CSV, XLSX) и 3 отчета в формате PDF.
2.  Организация "Второй пример". Сайта нет. Занимается исследованиями в области помощи инвалидам. Собирается в скором времени сделать сайт и начать публиковать результаты.
3.  Организация "Третий пример". Собирает данные по правонарушениям с 2014 г. Публикует результаты в виде интерактивной инфографики и в виде наборов данных (CSV, JSON) на своем сайте exemplum_tertium.org.
4.  Организация "Четвертый пример". Сайт: www.exemplum_quartum.org. Проводит исследования в правовой сфере. Публикует результаты в форматах DOCX и XLSX. Примечание: До 3 декабря 2015 года сайт организации находился по адресу quartum_exemplum.org. Теперь старая версия сайта преобразована в архив.
...
500. Организация "Пятисотый пример". Сайт: exemplum_quingentensimus.org. Проводит исследования в области благоустроенности городской среды. Публикует результаты своих исследований на сайте, но только в формате PDF и DOCX.

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

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

Рассмотрим структуру.

Каждый элемент обязательно содержит следующие пункты:

  • Название организации
  • Предмет исследований
  • Сайт организации (либо указание на его отсутствие)

Также опционально элементы могут содержать такие пункты, как:

  • Форматы публикации результатов работы
  • Дата начала исследовательской деятельности
  • Примечания

В формате JSON эту структуру можно представить так:

{
    "Наименование организации": Наименование,
    "ID": Уникальный номер элемента в списке,
    "URL сайта": http://... / null,
    "Дата начала исследований": ГГГГ-ММ-ДД / null,
    "Предмет исследований": Описание,
    "Темы": [тема1, тема2, ...],
    "Примечание": Текст примечания,
    "Форматы публикации": [формат1, формат2, формат3, ...],
}

С такой структурой в преобразованном виде этот список выглядел бы так:

[
  {
    "Наименование организации": "Первый пример",
    "ID": 1,
    "URL сайта": "https://exemplum_primum.org",
    "Дата начала исследований": 2016-01-01,
    "Предмет исследований": "Социальное сиротство",
    "Темы": ["Общество", "Сиротство"],
    "Примечание": null,
    "Форматы публикации": ["CSV", "XLSX", "PDF"]
  },
    {
    "Наименование организации": "Второй пример",
    "ID": 2,
    "URL сайта": null,
    "Дата начала исследований": null,
    "Предмет исследований": "Помощь инвалидам",
    "Темы": ["Инвалидность", "Общество"],
    "Примечание": "Собирается в скором времени сделать сайт и начать публиковать результаты.",
    "Форматы публикации": null,
  },
    {
    "Наименование организации":  "Третий пример",
    "ID": 3,
    "URL сайта": "https://exemplum_tertium.org",
    "Дата начала исследований": 2014-01-01,
    "Предмет исследований": "Правонарушения",
    "Темы": ["Правонарушения"],
    "Примечание": "Публикует результаты в виде интерактивной инфографики и в виде наборов данных",
    "Форматы публикации": ["CSV", "JSON"],
  },
    {
    "Наименование организации": "Четвертый пример",
    "ID": 4,
    "URL сайта": "https://www.exemplum_quartum.org",
    "Дата начала исследований": null,
    "Предмет исследований": "Правовая сфера",
    "Темы": ["Право", "Общество"],
    "Примечание": "До 3 декабря 2015 года сайт организации находился по адресу quartum_exemplum.org. Теперь старая версия сайта преобразована в архив",
    "Форматы публикации": ["DOCX", "XLSX"],
  },
    {
    "Наименование организации": "Пятисотый пример",
    "ID": 500,
    "URL сайта": "https://exemplum_quingentensimus.org",
    "Дата начала исследований": null,
    "Описание предмета исследований": "Городская среда",
    "Темы": ["Городская среда"],
    "Примечание": null,
    "Форматы публикации": ["DOCX", "PDF"],
  },
]