7.2 KiB
Лабораторная работа №2. Классификация текстовых данных
Цель работы
Получить практические навыки обработки и классификации текстовых данных в среде Jupiter Notebook. Научиться проводить предварительную обработку текстовых данных и выявлять параметры обработки, позволяющие добиться наилучшей точности классификации. Научиться применять модели word embedding для классификации данных.
Задание
Классический подход к обработке текстов
-
В среде Jupyter Notebook создать новый ноутбук (Notebook)
-
Импортировать необходимые для работы библиотеки и модули
-
Загрузить обучающую и экзаменационную выборку в соответствие с вариантом
-
Вывести на экран по одному-два документа каждого класса.
-
Провести векторизацию выборки:
-
Векторизовать обучающую и тестовую выборки простым подсчетом слов (
CountVectorizer) -
Вывести и проанализировать первые 20 наиболее частотных слов каждого класса по-отдельности.
-
Применить процедуру отсечения стоп-слов и повторить пункт B. Записать в выводах получившиеся различия.
-
-
Используя конвейер (
Pipeline) реализовать baseline-модель (базовый варинат модели без специальной настройки гиперпараметров) Случайного леса. Оценить f1-меру такой модели. -
Провести настройку гиперпараметров модели путем полного перебора, воспользовавшись классом
GridSearchCV. Выявить значения гиперпараметров, обеспечивающие лучшее качество классификации на основе f1-меры. Должны быть исследованы следующие характеристики:-
Отсечение \ не отсечение стоп-слов
-
Взвешивание: TF, TF-IDF
-
Количество информативных терминов (max_features) - исследовать 5 значений: {100, 1000, 10000,
dict_vol}, гдеdict_vol- общее количества слов в выборке. -
Количество деревьев
n_estimators: {1, 5, 10, 20}. -
Глубина дерева
max_depth: {1, 5, 12, 25}
-
-
Для лучшего классификатора вывести
classification report
Подход на основе эмбеддингов
-
Исходную выборку к привести к векторному представлению word embedding согласно варианту.
-
Провести обучение и настройку Случайного леса с помощью
GridSearchCV, но при представлении текстов в виде word embedding. Настраивать требуется только параметры Случайного леса. Параметры векторизатора берем по умолчанию - весь словарь, без удаления стоп-слов. -
Для лучшего классификатора вывести
classification report -
По каждому пункту работы занести в отчет программный код и результат вывода.
-
По результатам классификации занести в отчет выводы о:
-
схожести или различии разных классов с точки зрения самых встречающихся слов до и после удаления стоп-слов.
-
лучшей модели при классическом подходе к классификации текстов. Указать значение f1-меры и значения гиперпараметров модели
-
лучшей модели при использовании эмбеддингов. Указать значение f1-меры и значения гиперпараметров модели
-
Объяснить различия (если имеются) в качестве классификации разных классов.
-
Объяснить различия (какие имеются и почему) в качестве классификации классическим подходом и при использовании эмбеддингов.
-
Варианты заданий
| Вариант | Класс |
|---|---|
| 1 | 2, 3, 8 |
| 2 | 6, 10, 11 |
| 3 | 1, 9, 17 |
| 4 | 7, 12, 18 |
| 5 | 4, 14, 18 |
| 6 | 1, 15, 16 |
| 7 | 3, 7 , 13 |
| 8 | 5, 16, 20 |
| 9 | 6, 17, 19 |
| 10 | 3, 5, 15 |
| 11 | 7, 14, 20 |
| 12 | 2, 12, 13 |
Названия классов
| № класса | Название класса |
|---|---|
| 1 | 'alt.atheism' |
| 2 | 'comp.graphics' |
| 3 | 'comp.os.ms-windows.misc' |
| 4 | 'comp.sys.ibm.pc.hardware' |
| 5 | 'comp.sys.mac.hardware' |
| 6 | 'comp.windows.x' |
| 7 | 'misc.forsale' |
| 8 | 'rec.autos' |
| 9 | 'rec.motorcycles' |
| 10 | 'rec.sport.baseball' |
| 11 | 'rec.sport.hockey' |
| 12 | 'sci.crypt' |
| 13 | 'sci.electronics' |
| 14 | 'sci.med' |
| 15 | 'sci.space' |
| 16 | 'soc.religion.christian' |
| 17 | 'talk.politics.guns' |
| 18 | 'talk.politics.mideast' |
| 19 | 'talk.politics.misc' |
| 20 | 'talk.religion.misc' |
| Вариант | Word embedding |
|---|---|
| 1 | glove-wiki-gigaword-50 |
| 2 | glove-wiki-gigaword-100 |
| 3 | glove-wiki-gigaword-200 |
| 4 | glove-wiki-gigaword-300 |
| 5 | word2vec-google-news-300 |
| 6 | glove-wiki-gigaword-200 |
| 7 | glove-twitter-100 |
| 8 | glove-twitter-200 |
| 9 | glove-twitter-100 |
| 10 | glove-twitter-25 |
| 11 | word2vec-google-news-300 |
| 12 | glove-twitter-50 |
Контрольные вопросы
- Особенности задачи классификации текстовых данных.
- Этапы предварительной обработки данных.
- Что такое word embedding, как они получаются?
- Как влияет размер словаря терминов на точность классификации?
- Какие способы выявления информативных терминов вам известны?
- Как влияет способ взвешивания терминов на точность классификации?