Систематизация и реформирование базы извлеченных знаний (командный проект)

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
Компания ИСИЭЗ НИУ ВШЭ
Учебный семестр Осень 2017
Учебный курс 3-й курс
Максимальное количество студентов, выбравших проект: 2-5



Что это за проект?

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


1. Продукция совхоза имени Ленина
a. Фрукты
i. Яблоки
ii. Сорт «Грени»

1.Фермерское хозяйство ООО «Солнышко» -> 2. Продукты -> 2.1. Голден-Смит, Яблоки; 2. 2. Сезонные, Яблоки; 2.3. Сезонные, Помидоры; 2.4. Сезонные, Груши; 2.5. Подмосковные, Огурцы.


привести к единому формату, причем так, чтобы с помощью sql-запроса можно было, например, получить всех «детей» какого-то элемента [в данном случае сорта] определенного вида продукции (тех же яблок или груш).

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

Алгоритм нахождения близости должен быть подобран студентами на основании проведенного ими анализа и сравнения (экспериментально) точности существующих средств по приведению формы слова к нормальной (мн. ч. к ед. ч. [data <=> datum], избавление от окончаний родов\падежей и т.п.) в контексте решаемой задачи; по приведению словарной базы к единому знаменателю: векторному\численному представлению, например, с помощью word2vec, sense2vec и подобных.

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

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

Чему научатся студенты? Что самое интересное в проекте?

Анализировать и приводить к стандартному виду большие объемы совершенно разрозненных данных. Работать с базами данных, разрабатывать сложные алгоритмы извлечения, обработки, стандартизации и сравнения данных. Применять и дорабатывать для практических нужд теоретические алгоритмы компьютерной лингвистики. Работать с инструментами машинного обучения на уровне, позволяющем решать реальные задачи. Модифицировать\обучать собственные модели данных. Работать с облачными сервисами БД (например, AWS). Командной работе (не только с программистами, но и с аналитиками и пр. специалистами); работе в крупном проекте, где каждый завершенный этап является важным элементом всего проекта и можно наглядно наблюдать практическую значимость проделанной работы.

Организация работы (Как студенты будут работать в команде?)

Работа над проектом будет состоять из следующих этапов:

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

Компоненеты (Из каких частей состоит проект?)

  • База извлеченных знаний, располагающаяся на облачном сервисе (с которой студентам предстоит работать);
  • Описание разработанной унифицированной структуры базы данных (небольшой технический отчет о том, какие функции используются для обработки первичных данных, для приведения их к стандартизированному виду, для разбиения на элементы структуры; краткое описание формата итоговых таблиц)
  • Описание работы с моделью и инструментами машинного обучения
  • Таблицы, полученные в результате обработки первичных данных
  • Таблицы с обработанными данными и проработанной структурой
  • Выполненные в ходе работы над проектом sql-запросы (с комментариями)
  • Полученные результаты машинного обучения
  • Дополнительные отчеты\листинги\пояснительные записки по проекту (если возникнет такая производственная необходимость)

Какие будут использоваться технологии?

PostgreSQL, REGEXP, алгоритмы нахождения близости (Jaccard Similarity, Sorensen–Dice coefficient), алгоритмы машинного обучения (посредством библиотек SpaCy/NLTK и т.п.)

Amazon Web Services

Какие начальные требования?

Знание SQL на уровне, достаточном для быстрого освоения более специфичных для наших задач возможностей PostgreSQL (в идеале — опыт работы с PostgreSQL) Желательно знание R (возможно, пригодится для понимания или написания некоторых функций). Знание Python (в идеале – опыт работы с машинным обучением)

Темы вводных занятий

  • Особенности работы с нашими хранилищами данных.
  • Особенности работы с имеющимися у нас структурами данных.

Критерии оценки

0-3: Не написаны запросы по обработке и\или структуризации данных. Данные обработаны крайне плохо. Нет возможности «достать» наследующие элементы структуры.

4-5: Написанные запросы работают, обрабатывая все или большую часть доступных данных, данные загружаются в правильном формате. По необъективным причинам в данных присутствует большое количество шума, мусора, и\или некоторая часть данных, доступная для структуризации, не была извлечена, обработана и структурирована. А также работа с данными производилась на локальных устройствах. Проект не имеет отчетности, код запросов представлен без комментариев.

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

8-10: Написанные запросы работают, извлекая все доступные данные из БД, данные загружаются в правильном формате на единое общедоступное облачное хранилище. Данные очищены от мусора и шума, обработаны и структуризированы в полном объеме. Код запросов полностью закомментирован (опуская комментирование встроенных функций и пр. очевидные вещи). Предоставлен достаточно детализированный отчет о полученной структуре данных, разработанных функциях и алгоритмах.

Похожие проекты

Контактная информация

Ментор: Кузьминов Илья Филиппович

Email: ikuzminov@hse.ru

Рабочий телефон: +7(495) 772-9590 доб. 12022