124 строки
6.9 KiB
Markdown
124 строки
6.9 KiB
Markdown
# Лабораторная работа №2. Классификация текстовых данных
|
|
|
|
## Цель работы
|
|
|
|
Получить практические навыки обработки и классификации текстовых данных в среде Jupiter Notebook.
|
|
Научиться проводить предварительную обработку текстовых данных и выявлять параметры обработки, позволяющие добиться наилучшей точности классификации. Научиться применять модели word embedding для классификации данных.
|
|
|
|
## Задание
|
|
|
|
### Классический подход к обработке текстов
|
|
|
|
1. В среде Jupyter Notebook создать новый ноутбук (Notebook)
|
|
2. Импортировать необходимые для работы библиотеки и модули
|
|
3. Загрузить обучающую и экзаменационную выборку в соответствие с вариантом
|
|
4. Вывести на экран по одному-два документа каждого класса.
|
|
5. Провести векторизацию выборки:
|
|
|
|
* Векторизовать обучающую и тестовую выборки простым подсчетом слов (`CountVectorizer`)
|
|
|
|
* Вывести и проанализировать первые 20 наиболее частотных слов каждого класса по-отдельности.
|
|
|
|
* Применить процедуру отсечения стоп-слов и повторить пункт B. Записать в **выводах** получившиеся различия.
|
|
|
|
|
|
7. Используя конвейер (`Pipeline`) реализовать baseline-модель (базовый варинат модели без специальной настройки гиперпараметров) Случайного леса.
|
|
8. Провести настройку гиперпараметров модели путем полного перебора, воспользовавшись классом `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}
|
|
|
|
### Подход на основе эмбеддингов
|
|
|
|
8. Исходную выборку к привести к векторному представлению word embedding согласно варианту.
|
|
9. Провести обучение и настройку Случайного леса с помощью `GridSearchCV`, но при представлении текстов в виде word embedding. Сетку параметров выбрать ту же, что и в классическом подходе.
|
|
|
|
10. По каждому пункту работы занести в отчет программный код и результат вывода.
|
|
11. По результатам классификации занести в отчет выводы о:
|
|
|
|
1. схожести или различии разных классов с точки зрения самых встречающихся слов до и после удаления стоп-слов.
|
|
|
|
1. лучшей модели при классическом подходе к классификации текстов. Указать значение f1-меры и значения гиперпараметров модели
|
|
|
|
1. лучшей модели при использовании эмбеддингов. Указать значение f1-меры и значения гиперпараметров модели
|
|
|
|
1. Объяснить различия (если имеются) в качестве классификации **разных классов**.
|
|
|
|
1. Объяснить различия (какие имеются и почему) в качестве классификации **классическим подходом** и **при использовании эмбеддингов**.
|
|
|
|
|
|
|
|
## Варианты заданий
|
|
|
|
| Вариант | Класс |
|
|
| :--- | :---: |
|
|
| 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 |
|
|
|
|
## Контрольные вопросы
|
|
|
|
1. Особенности задачи классификации текстовых данных.
|
|
2. Этапы предварительной обработки данных.
|
|
3. Что такое word embedding, как они получаются?
|
|
4. Как влияет размер словаря терминов на точность классификации?
|
|
5. Какие способы выявления информативных терминов вам известны?
|
|
6. Как влияет способ взвешивания терминов на точность классификации?
|
|
|