LR2 new
Этот коммит содержится в:
@@ -1,45 +1,58 @@
|
||||
# Лабораторная работа №2. Предварительная обработка текстовых данных
|
||||
# Лабораторная работа №2. Классификация текстовых данных
|
||||
|
||||
## Цель работы
|
||||
|
||||
Получить практические навыки обработки текстовых данных в среде Jupiter Notebook.
|
||||
Научиться проводить предварительную обработку текстовых данных и выявлять параметры обработки, позволяющие добиться наилучшей точности классификации.
|
||||
Получить практические навыки обработки и классификации текстовых данных в среде Jupiter Notebook.
|
||||
Научиться проводить предварительную обработку текстовых данных и выявлять параметры обработки, позволяющие добиться наилучшей точности классификации. Научиться применять модели word embedding для классификации данных.
|
||||
|
||||
## Задание
|
||||
|
||||
### Классический подход к обработке текстов
|
||||
|
||||
1. В среде Jupyter Notebook создать новый ноутбук (Notebook)
|
||||
2. Импортировать необходимые для работы библиотеки и модули
|
||||
3. Загрузить обучающую и экзаменационную выборку в соответствие с вариантом
|
||||
4. Вывести на экран по одному-два документа каждого класса.
|
||||
5. Провести векторизацию выборки:
|
||||
|
||||
A. Векторизовать обучающую и тестовую выборки простым подсчетом слов (CountVectorizer)
|
||||
* Векторизовать обучающую и тестовую выборки простым подсчетом слов (`CountVectorizer`)
|
||||
|
||||
B. Вывести и проанализировать первые 20 наиболее частотных слов всей выборки и каждого класса по-отдельности.
|
||||
* Вывести и проанализировать первые 20 наиболее частотных слов каждого класса по-отдельности.
|
||||
|
||||
C. Применить процедуру отсечения стоп-слов и повторить пункт B.
|
||||
* Применить процедуру отсечения стоп-слов и повторить пункт B. Записать в **выводах** получившиеся различия.
|
||||
|
||||
|
||||
D. Применить стемминг, записав обработанные выборки (тестовую и обучающую) в новые переменные
|
||||
|
||||
E. Провести пункт A для обучающей и тестовой выборки, для которой выполнен стемминг.
|
||||
|
||||
6. Рассчитать сходство по коэффициенту Жаккара между тремя классами для исходых выборок и для выборок после отсечения стоп-слов. При подсчете использовать все слова выборки.
|
||||
7. Используя конвейер (Pipeline) реализовать модель Наивного Байесовского классификатора и выявить на основе показателей качества
|
||||
(значения полноты, точности, f1-меры и аккуратности), какая предварительная обработка данных обеспечит наилучшие результаты классификации.
|
||||
Должны быть исследованы следующие характеристики:
|
||||
* Наличие \ отсутствие стемминга
|
||||
7. Используя конвейер (`Pipeline`) реализовать baseline-модель (базовый варинат модели без специальной настройки гиперпараметров) Случайного леса.
|
||||
8. Провести настройку гиперпараметров модели путем полного перебора, воспользовавшись классом `GridSearchCV`. Выявить значения гиперпараметров, обеспечивающие лучшее качество классификации на основе f1-меры. Должны быть исследованы следующие характеристики:
|
||||
* Отсечение \ не отсечение стоп-слов
|
||||
* Взвешивание: Count, TF, TF-IDF
|
||||
* Количество информативных терминов (max_features) - исследовать 5 значений: {100, 1000, 5000, 10000, dict_vol}, где dict_vol - общее количества слов в выборке.
|
||||
|
||||
* Взвешивание: 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}
|
||||
|
||||
При проведении данного исследования предлагается зафиксировать все переменные кроме одной, а далее менять незафиксированную переменную для определения ее наилучего значения.
|
||||
После того как наилучшее значение найдено, фиксировать это значение, и переходить к следующей переменной.
|
||||
Например, ищем оптимальные значения для переменных A, B, C: фиксируем переменные А = 10, B = False, находим оптимальное значение переменной С. Пусть оптимальное значение С = 20,42.
|
||||
Теперь фиксируем B = False, C = 20,42, ищем оптимальное значение переменной A, и т.д.
|
||||
### Подход на основе эмбеддингов
|
||||
|
||||
8. По каждому пункту работы занести в отчет программный код и результат вывода.
|
||||
9. По результатам классификации занести в отчет выводы о влиянии каждого из этапов предобработки данных (наличие стемминга, взвешивание терминов, стоп-слова, количество информативных терминов) и о наиболее подходящей их комбинации. Объяснить различия (если имеются) в качестве классификации разных классов.
|
||||
8. Исходную выборку к привести к векторному представлению word embedding согласно варианту.
|
||||
9. Провести обучение и настройку Случайного леса с помощью `GridSearchCV`, но при представлении текстов в виде word embedding. Сетку параметров выбрать ту же, что и в классическом подходе.
|
||||
|
||||
10. По каждому пункту работы занести в отчет программный код и результат вывода.
|
||||
11. По результатам классификации занести в отчет выводы о:
|
||||
|
||||
1. схожести или различии разных классов с точки зрения самых встречающихся слов до и после удаления стоп-слов.
|
||||
|
||||
1. лучшей модели при классическом подходе к классификации текстов. Указать значение f1-меры и значения гиперпараметров модели
|
||||
|
||||
1. лучшей модели при использовании эмбеддингов. Указать значение f1-меры и значения гиперпараметров модели
|
||||
|
||||
1. Объяснить различия (если имеются) в качестве классификации **разных классов**.
|
||||
|
||||
1. Объяснить различия (какие имеются и почему) в качестве классификации **классическим подходом** и **при использовании эмбеддингов**.
|
||||
|
||||
|
||||
|
||||
## Варианты заданий
|
||||
|
||||
@@ -83,11 +96,27 @@
|
||||
|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. Алгоритм и особенности Наивного Байесовского метода.
|
||||
3. Что такое word embedding, как они получаются?
|
||||
4. Как влияет размер словаря терминов на точность классификации?
|
||||
5. Какие способы выявления информативных терминов вам известны?
|
||||
6. Как влияет способ взвешивания терминов на точность классификации?
|
||||
|
||||
Ссылка в новой задаче
Block a user