Извлечение именованных сущностей из текстов (проект)

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



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

Результатом работы будет программа на Python, извлекающая именованные сущности (названия локаций или организаций, ФИО людей) из текстов на русском языке, собранных из сообществ ВКонтакте.

Чему вы научитесь?

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

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

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

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

Для построения и обучения моделей: Weka и/или scikit-learn

Для обработки текстов: NLTK, Pymorphy, Tomita Parser

Для хранения текстов и результатов: mongodb, pymongo, json

  • отдельные библиотеки по машинному обучению на Python, если понадобится (например, pyBrain, Theano, FANN для нейронных сетей)
  • регулярные выражения и лингвистические правила, если понадобится

Предполагается использование (как минимум): SVM, Naïve Bayes, HMM, CRF, нейронных сетей.

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

  1. Задача выделения именованных сущностей. Метрики. Общая схема обучения и проверки модели (кросс-валидация, подбор параметров и т.п.)
  2. SVM, NaiveBayes.
  3. Нейронные сети. (базовое объяснение)
  4. HMM (скрытые Марковские модели). (базовое объяснение)

Направления развития

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

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

4-5: реализация алгоритма машинного обучения с f-мерой > 0.5 6-7: реализация алгоритма машинного обучения с f-мерой > 0.6 8-9: реализация алгоритма машинного обучения с f-мерой > 0.7 10: реализация алгоритма машинного обучения с f-мерой > 0.8 или реализация нескольких методов с f-мерой > 0.7 + 1 балл: использование лексико-синтаксических правил (Томита-парсер, LSPL и т.п.) + 1 балл: реализация пользовательского интерфейса (на любом ЯП) для ручной разметки корпуса и корректировки работы алгоритма. + 2 балла: извлечение информации о сущности (предварительно согласовать тип извлекаемой информации с ментором) Критерии могут варьироваться в зависимости от максимального результата по группе.

Ориентировочное расписание занятий

Пока неизвестно :)