Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

6.4 KiB

Лабораторная работа №2. Предварительная обработка текстовых данных

Цель работы

Получить практические навыки обработки текстовых данных в среде Jupiter Notebook. Научиться проводить предварительную обработку текстовых данных и выявлять параметры обработки, позволяющие добиться наилучшей точности классификации.

Задание

  1. В среде Jupyter Notebook создать новый ноутбук (Notebook)

  2. Импортировать необходимые для работы библиотеки и модули

  3. Загрузить обучающую и экзаменационную выборку в соответствие с вариантом

  4. Вывести на экран по одному-два документа каждого класса.

  5. Применить стемминг, записав обработанные выборки (тестовую и обучающую) в новые переменные

  6. Провести векторизацию выборки:

    1. Векторизовать обучающую и тестовую выборки простым подсчетом слов (CountVectorizer)
    2. Вывести и проанализировать первые 20 наиболее частотных слов всей выборки и каждого класса по-отдельности.
    3. Рассчитать сходство по коэффициенту Жаккара между тремя классами
    4. Применить процедуру отсечения стоп-слов и повторить пункты b-c.
    5. Провести пункты a – c для обучающей и тестовой выборки, для которой проведена процедура стемминга.
    6. Векторизовать выборки с помощью TfidfTransformer (с использованием TF и TF-IDF взвешиваний).
  7. Используя конвейер (Pipeline) реализовать модель Наивного Байесовского классификатора и выявить на основе показателей качества (значения полноты, точности, f1-меры и аккуратности), какая предварительная обработка данных обеспечит наилучшие результаты классификации. Должны быть исследованы следующие характеристики:

    • Наличие \ отсутствие стемминга
    • Отсечение \ не отсечение стоп-слов
    • Взвешивание: Count, TF, TF-IDF
    • Количество информативных терминов (max_features) - исследовать 5 значений: {100, 1000, 5000, 10000, dict_vol}, где dict_vol - общего количества слов в выборке.

    При проведении данного исследования предлагается зафиксировать все переменные кроме одной, а далее менять незафиксированную переменную для определения ее наилучего значения. После того как наилучшее значение найдено, фиксировать это значение, и переходить к следующей переменной. Например, ищем оптимальные значения для переменных A, B, C: фиксируем переменные А = 10, B = False, находим оптимальное значение переменной С. Пусть оптимальное значение С = 20,42. Теперь фиксируем B = False, C = 20,42, ищем оптимальное значение переменной A, и т.д.

  8. По каждому пункту работы занести в отчет программный код и результат вывода.

  9. По результатам классификации занести в отчет выводы о влиянии каждого из этапом предобработки данных (наличие стемминга, взвешивание терминов, стоп-слова, количество информативных терминов) и о наиболее подходящей их комбинации. Объяснить различия (если имеются) в качестве классификации разных классов.

Варианты заданий

Вариант Класс
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'

Контрольные вопросы

  1. Особенности задачи классификации текстовых данных.
  2. Этапы предварительной обработки данных.
  3. Алгоритм и особенности Наивного Байесовского метода.
  4. Как влияет размер словаря терминов на точность классификации?
  5. Какие способы выявления информативных терминов вам известны?
  6. Как влияет способ взвешивания терминов на точность классификации?