task2 (1126916)
Текст из файла
Практическое задание №2 по курсу “Обработка текстов”.Осень 2015Постановка задачиЦелью задания является создание системы, позволяющей определять возрастпользователей социальной сети Вконтакте по текстам их комментариевСистема должна классифицировать пользователей в один из 5 заданных возрастныхинтервалов:◦ <=18 лет (обозначение «00-18»)◦ 19-25 лет (обозначение «19-25»)◦ 26-35 лет (обозначение «26-35»)◦ 36-45 лет (обозначение «36-45»)◦ >=45 лет (обозначение «45-99»)Вход:список текстов комментариев пользователейВыход:возрастной интервалРешение задачиПрактические аспектыРешения должны быть написаны на языке Python 3.5. Можно использовать все стандартныебиблиотеки, а также: NLTK - инструменты для обработки текстов scikit-learn - алгоритмы машинного обучения numpy - работа с многомерными массивамиДоступ в Интернет на проверяющей машине закрыт.
По требованию может бытьпредоставлен доступ к https://api.ispras.ruТеоретические аспектыПредполагается использование алгоритмов машинного обучения. Для обучения алгоритматребуется придумать признаки и дать ему на вход правильные примеры - обучающийкорпус.Тренировочный корпусТренировочный корпус доступен для скачивания в формате json. Для чтения информации изэтого файла рекомендуется использовать стандартную библиотеку json.Тренировочный корпус состоит из двух файлов: Train.txt.json содержит список (в json формате) примеров.
Каждый пример – этосписок текстов (строк). Таким образом, данный файл содержит список списков строк.Например:[["текст пользователя 1", "еще один текст пользователя 1"],["пользователь2","написал","3 сообщения"],["сообщения","пользователя 3"]]Train.lab.json содержит список (в json формате) соответствующих каждомупользователю значений возрастного интервала.Например:["45-99", "00-18", "26-35"]Требования к решениюЗагружаемый файл должен представлять собой zip архив с любым именем. Архив долженобязательно содержать: Файл age_detector.py.
В нем должен содержаться класс AgeDetector. В классе должныприсутствовать методы:◦ train(self, instances, labels). На вход подается список примеров (список списковстрок, instances) и список соответствующих значений возрастного интервала(labels). Метод ничего не возвращает.◦ сlassify(self, instances). На вход подается список примеров (список списков строк,instances). Метод должен вернуть список, содержащий строковые значениявозрастных интервалов, соответствующие пользователям из instances. (Пустой) файл __init__.py (Требования к пакетам Python) Описание применяемых алгоритмов в файле description.txt Все используемые внешние библиотеки, кроме библиотек пакета NTLK, scikit-learn иnumpy (они доступны автоматически)Все файлы должны быть в кодировке UTF-8.Формат файлов тренировочного корпуса соответствует спецификации методов train иclassify.Проверка решенияРезультаты тестирования появятся на личной странице, как только закончится обучение итестирование.
При загрузке нового классификатора обучение будет производиться накорпусе, размеченном автором классификатора, плюс все дискуссии, размеченные в течениепредшествующей загрузке недели.В течение недели студенты не видят прогресс своих коллег и могут посмотреть только свойрезультат. В конце каждой недели (каждый вторник в 23.59.59) будет производитьсяпереобучение последнего присланного решения. Результаты тестирования будут показаны всводной таблице.Ограничения1. каждую неделю можно послать только 10 версий программы (внимание! Итоговоетестирование будет проводиться на последнем загруженном решении)2.
размер архива не может превышать 15МбВ связи с первым ограничением, для тестирования на локальной машине рекомендуетсяиспользовать метод перекрестной проверки (http://en.wikipedia.org/wiki/Crossvalidation_(statistics)). В библиотеке scikit-learn есть функции, которые могут помочь виспользовании этого метода (например, Kfold()).Оценка качестваДля оценки качества используются мера accuracy. Описание в документации к библиотекеhttp://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.htmlBaselineBaseline 1. В качестве классификатора используется наивный байесовский классификатор. Вкачестве признаков используются униграммы слов.Baseline 2. Еще одно решениеПодсчет очковКак и для первого задания, в конце каждой недели вы сможете посмотреть, насколькохороший классификатор вы сделали по сравнению с другими предложенными решениями.Эти результаты нужны только для понимания текущей ситуации.
Окончательный подсчеточков будет произведен при наступлении второго дедлайна..
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.