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

Внимание! Регистрация будет закрыта в первой половине Ноября!

После регистрации и входа в систему появится поле для загрузки файла, личная страница со статистикой, а также ссылка на тренировочный корпус*.

  • На основной странице находится таблица с рейтингами студентов (имя студента, количество очков) и лучшими результатами за прошлую неделю (имя, достоверность, балл)
  • На личной странице есть статистика со всеми результатами в т.ч. результатами последнего тестирования (дата, описание, достоверность)

Для загрузки файла надо выбрать файл и заполнить форму (содержательное название алгоритма). Загружаемый файл должен представлять собой zip архив с любым именем. Архив должен обязательно содержать:

  • классификатор в файле solution.py. В файле должен содержаться класс SentimentAnalyzer. Кроме того в классе должен присутствовать метод getClasses (self,texts), который получает на вход список текстовых сообщений и возвращает список из {0,1}, где "0" означает отрицательный отзыв, а "1" - положительный.
  • дамп обученного классификатора в файле solution.pkl. Для созданий дампа нужно воспользоваться стандартным модулем cPickle.
  • описание применяемых алгоритмов в файле description.txt
  • все используемые внешние библиотеки, кроме библиотек пакетов NLTK, scikit-learn и BeautifulSoup (они доступны автоматически).

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

Результаты тестирования появятся на личной странице, как только закончится тестирование.

Ограничения:

  • каждую неделю можно послать только 10 версий программы
  • размер архива не может превышать 15Мб

Подсчет очков
В течении недели студенты не видят прогресс своих коллег и могут посмотреть только свой результат. В конце каждой недели (каждый четверг в 23.59.59) производится ранжирование (по F1 мере) всех присланных программ и начисляются очки: за 1 место – 10 очков, 2-9 и т.д. Все программы выше baseline получают по 1 очку. После этого результаты становятся доступны всем на главной странице.

Baseline
В качестве нижней границы используется один из стандартных алгоритмов классификации с N-граммами в качестве признаков. Его достоверность (accuracy) равна 0.7699.

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

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

Критерии выполнения задания

Для допуска к экзамену необходимо набрать 5 и более очков.

Дополнительные вопросы

Все вопросы относительно проверки заданий просьба присылать на fedorenko(-a-t-)ispras.ru или писать здесь в комментариях.

Для установки внешних модулей (NLTK, scikit-learn, BeautifulSoup) рекомендуется использовать easy_install из пакета setuptools.