Классификация текстов и анализ тональности — различия между версиями
(→Извлечение признаков из текстов) |
(→Наивная байесовская модель) |
||
Строка 67: | Строка 67: | ||
Далее все вероятности подсчитываются по методу максимального правдоподобия. | Далее все вероятности подсчитываются по методу максимального правдоподобия. | ||
+ | |||
+ | <math>c = argmax_{c \in C} P(c)\prod_{k=1}^{n} P(t_k|c)</math> | ||
Преимущества метода: | Преимущества метода: | ||
Строка 73: | Строка 75: | ||
* легкая интерпретируемость результатов работы алгоритма. | * легкая интерпретируемость результатов работы алгоритма. | ||
− | Недостатками являются | + | Недостатками являются частое низкое качество классификации и неспособность учитывать зависимость результата классификации от сочетания признаков. |
+ | |||
+ | ===== Многомерная модель ===== | ||
+ | В многомерной(multivariate) модели документ – это вектор бинарных атрибутов, показывающих, встретилось ли в документе то или иное слово. Когда мы подсчитываем правдоподобие е документа, мы перемножаем вероятности того, что встретилось каждое слово из документа и вероятности того, что не встретилось каждое (словарное) слово, которое не встретилось. Получается модель многомерных испытаний Бернулли. Наивное предположение в том, что события «встретилось ли слово» предполагаются независимыми. | ||
+ | |||
+ | Математически: пусть <math>V = \{w_t\}_{t=1}^{|V|}</math> – словарь. Тогда документ <math>d_i</math> – это вектор длины <math>|V|</math>, состоящий из битов <math>B_{it}</math>. <math>B_{it} = 1</math> тогда и только тогда, когда слово <math>w_{t}</math> встречается в документе <math>d_{i}</math>. | ||
+ | |||
+ | Правдоподобие принадлежности <math>d_{i}</math> классу <math>c_{j}</math>: | ||
+ | |||
+ | <math>P(d_i|c_j) = \prod_{t=1}^{|V|}(B_{it} \times P(w_t|c_j) + (1 - B_{it}) \times (1 - P(w_t|c_j)))</math> | ||
+ | |||
+ | Для обучения такого классификатора нужно обучить <math>P(w_t|c_j)</math>. | ||
+ | |||
+ | Пусть дан набор документов <math>D = \{d_{i}\}</math>, которые уже распределены по классам <math>c_{j}</math> (возможно, даже вероятностно распределены), дан словарь <math>V = \{w_t\}</math>, и мы знаем биты <math>B_{it}</math> (знаем документы). | ||
+ | |||
+ | Тогда можно подсчитать оптимальные оценки вероятностей того, что то или иное слово встречается в том или ином классе (при помощи лапласовой оценки): | ||
+ | |||
+ | <math>P(w_i|c_j) = \frac{1 + \sum_{i=1}^{|D|} B_{it} \times P(c_j|d_i)}{2 + \sum_{i=1}^{|D|} P(c_j|d_i)}</math> | ||
+ | |||
+ | Априорные вероятности классов можно подсчитать как <math>P(c_j) = \frac{1}{|D|}\sum_{i=1}^{|D|}P(c_j|d_i)</math>. Классификация происходит как обычно - максимизацией правдоподобия: <math>c = argmax_{j}P(c_j)P(d_i|c_j) = argmax_{j}(\log{\sum_{i=1}^{|D|}P(c_j|d_i)} + \sum_{t=1}^{|V|}\log{(B_{it} \times P(w_t|c_j) + (1 - B_{it}) \times (1 - P(w_t|c_j)))})</math>. | ||
+ | |||
+ | ===== Мультиномиальная модель ===== | ||
+ | В мультиномиальной(multinomial) модели документ – это последовательность событий. Каждое событие – это случайный выбор одного слова из того самого «bag of words». Когда мы подсчитываем правдоподобие документа, мы перемножаем вероятности того, что мы достали из мешка те самые слова, которые встретились в документе. Наивное предположение в том, что мы достаём из мешка разные слова независимо друг от друга. Получается мультиномиальная генеративная модель, которая учитывает количество повторений каждого слова, но не учитывает, каких слов нет в документе. | ||
+ | |||
+ | Математически: пусть <math>V = \{w_t\}_{t=1}^{|V|}</math> – словарь. Тогда документ <math>d_i</math> – это вектор длины <math>|V|</math>, состоящий из слов, каждое из которых «вынуто» из словаря с вероятностью <math>P(w_t|c_j)</math>. | ||
+ | |||
+ | Правдоподобие принадлежности <math>d_{i}</math> классу <math>c_{j}</math>: | ||
+ | |||
+ | <math>P(d_i|c_j) = P(|d_i|) \times |d_i|! \times \prod_{t=1}^{|V|}\frac{P(w_t|c_j)^{N_{it}}}{N_{it}!}</math>, где 𝑁𝑖𝑡 – количество вхождений <math>w_t<\math> в <math>d_i)</math>. | ||
+ | |||
+ | Для обучения такого классификатора тоже нужно обучить вероятности <math>P(w_t|c_j)</math>. | ||
+ | |||
+ | Пусть дан набор документов <math>D = \{d_{i}\}</math>, которые уже распределены по классам <math>c_{j}</math> (возможно, даже вероятностно распределены), дан словарь <math>V = \{w_t\}</math>, и мы знаем вхождения <math>N_{it}</math>. | ||
+ | |||
+ | Тогда можно подсчитать апостериорные оценки вероятностей того, что то или иное слово встречается в том или ином классе (не забываем сглаживание – правило Лапласа): | ||
+ | |||
+ | <math>P(w_t|c_j) = \frac{1 + \sum_{i=1}^{|D|} N_{it} \times P(c_j|d_i)}{|V| + \sum_{s=1}^{|V|}\sum_{i=1}^{|D|} N_{is}P(c_j|d_i)}</math>. | ||
+ | |||
+ | Априорные вероятности классов можно подсчитать как <math>P(c_j) = \frac{1}{|D|}\sum_{i=1}^{|D|}P(c_j|d_i)</math>. | ||
+ | Тогда классификация будет происходить как <math>c = argmax_{j}P(c_j)P(d_i|c_j) = argmax_{j}(\log{\sum_{i=1}^{|D|}P(c_j|d_i)} + \sum_{t=1}^{|V|}N_{it}\log{P(w_t|c_j)})</math>. | ||
==== [[Метод опорных векторов (SVM)]] ==== | ==== [[Метод опорных векторов (SVM)]] ==== |
Версия 19:47, 23 января 2020
Классификация текстов (документов) (Document classification) — задача компьютерной лингвистики[1], заключающаяся в отнесении документа к одной из нескольких категорий на основании содержания документа.
Анализ тональности текста (Sentiment analysis) — задача компьютерной лингвистики, заключающаяся в определении эмоциональной окраски (тональности) текста и, в частности, в выявлении эмоциональной оценки авторов по отношению к объектам, описываемым в тексте.
Содержание
Задачи классификации текстов
Классификация текстов применяется, в том числе, для:
- Разделения веб страниц и сайтов по тематическим каталогам;
- Борьбы со спамом;
- Определение языка текста;
- Показа более релевантной рекламы;
Задачи анализа тональности текста
Основной задачей анализа тональности текста является определение его эмоциональной окраски. Это необходимо, в том числе, для:
- Анализа отзывов о товарах и услугах;
- Определение языка вражды[2];
В общем случае, задача анализа тональности текста эквивалентна задаче классификации текста, где категориями текстов могут быть тональные оценки. Примеры тональных оценок:
- позитивная;
- негативная;
- нейтральная;
Под «нейтральной» подразумевается, что текст не содержит эмоциональной окраски.
Классификация текстов методами машинного обучения
Постановка задачи
Имеется множество категорий (классов, меток)
.Имеется множество документов
.Неизвестная целевая функция
.Необходимо построить классификатор
, максимально близкий к .Имеется некоторая начальная коллекция размеченных документов
, для которых известны значения . Обычно её делят на «обучающую» и «проверочную» части. Первая используется для обучения классификатора, вторая — для независимой проверки качества его работы.Классификатор может выдавать точный ответ
или степень подобия .Этапы подготовки
Предобработка текста
Предобработка текста переводит текст на естественном языке в формат удобный для дальнейшей работы. Применяются следующие операции:
- Перевод всех букв в тексте в нижний или верхний регистры;
- Удаление чисел или замена на текстовый эквивалент;
- Удаление пунктуации;
- Удаление редких и слишком частых слов;
- Стемминг или Лемматизация;
Извлечение признаков из текстов
Большинство математических моделей работают в векторных пространствах больших размерностей, поэтому необходимо отобразить текст в векторном пространстве. Основным походом является мешок слов (bag-of-words): для документа формируется вектор размерности словаря, для каждого слова выделяется своя размерность, для документа записывается признак насколько часто слово встречается в нем, получаем вектор. Наиболее распространенным методом для вычисления признака является TF-IDF[3] и его вариации (TF — частота слова, term frequency, IDF — обратная частота документа, inverse document frequency). Плюсами мешка слов является простая реализация, однако данный метод теряет часть информации, например, порядок слов. Для уменьшения потери информации можно использовать мешок N-грамм (добавлять не только слова, но и словосочетания), или использовать методы векторных представлений слов(Word2vec) это, например, позволяет снизить ошибку на словах с одинаковыми написаниями, но разными значениями и наоборот.
Алгоритмы классификации
Наивная байесовская модель
Пусть
— вероятность того, что документ, представленный вектором , соответствует категории для . Задача классификатора заключается в том, чтобы подобрать такие значения и , при которых значение вероятности будет максимальным:
Для вычисления значений
пользуются теоремой Байеса:
где
– априорная вероятность того, что документ отнесен к категории ; – вероятность найти документ, представленный вектором , в категории ; – вероятность того, что произвольно взятый документ можно представить в виде вектора признаков .По сути
является отношением количества документов из обучающей выборки , отнесенных в категорию c_i , к количеству всех документов из .не зависит от категории , а значения заданы заранее, поэтому знаменатель — это константа, не влияющая на выбор наибольшего из значений .
Вычисление
затруднительно из-за большого количества признаков , поэтому делают «наивное» предположение о том, что любые две координаты, рассматриваемые как случайные величины, статистически не зависят друг от друга. Тогда можно воспользоваться формулой
Далее все вероятности подсчитываются по методу максимального правдоподобия.
Преимущества метода:
- высокая скорость работы;
- простая реализация алгоритма;
- легкая интерпретируемость результатов работы алгоритма.
Недостатками являются частое низкое качество классификации и неспособность учитывать зависимость результата классификации от сочетания признаков.
Многомерная модель
В многомерной(multivariate) модели документ – это вектор бинарных атрибутов, показывающих, встретилось ли в документе то или иное слово. Когда мы подсчитываем правдоподобие е документа, мы перемножаем вероятности того, что встретилось каждое слово из документа и вероятности того, что не встретилось каждое (словарное) слово, которое не встретилось. Получается модель многомерных испытаний Бернулли. Наивное предположение в том, что события «встретилось ли слово» предполагаются независимыми.
Математически: пусть
– словарь. Тогда документ – это вектор длины , состоящий из битов . тогда и только тогда, когда слово встречается в документе .Правдоподобие принадлежности
классу :
Для обучения такого классификатора нужно обучить
.Пусть дан набор документов
, которые уже распределены по классам (возможно, даже вероятностно распределены), дан словарь , и мы знаем биты (знаем документы).Тогда можно подсчитать оптимальные оценки вероятностей того, что то или иное слово встречается в том или ином классе (при помощи лапласовой оценки):
Априорные вероятности классов можно подсчитать как
. Классификация происходит как обычно - максимизацией правдоподобия: .Мультиномиальная модель
В мультиномиальной(multinomial) модели документ – это последовательность событий. Каждое событие – это случайный выбор одного слова из того самого «bag of words». Когда мы подсчитываем правдоподобие документа, мы перемножаем вероятности того, что мы достали из мешка те самые слова, которые встретились в документе. Наивное предположение в том, что мы достаём из мешка разные слова независимо друг от друга. Получается мультиномиальная генеративная модель, которая учитывает количество повторений каждого слова, но не учитывает, каких слов нет в документе.
Математически: пусть
– словарь. Тогда документ – это вектор длины , состоящий из слов, каждое из которых «вынуто» из словаря с вероятностью .Правдоподобие принадлежности
классу :, где 𝑁𝑖𝑡 – количество вхождений .
Для обучения такого классификатора тоже нужно обучить вероятности
.Пусть дан набор документов
, которые уже распределены по классам (возможно, даже вероятностно распределены), дан словарь , и мы знаем вхождения .Тогда можно подсчитать апостериорные оценки вероятностей того, что то или иное слово встречается в том или ином классе (не забываем сглаживание – правило Лапласа):
.
Априорные вероятности классов можно подсчитать как
. Тогда классификация будет происходить как .Метод опорных векторов (SVM)
Будем представлять каждый документ, как вектор, задаваемый своим содержимым в общем векторном пространстве. После этого будем строить разделяющую гиперплоскость для каждого известного класса.
Преимущества метода:
- один из наиболее качественных методов;
- возможность работы с небольшим набором данных для обучения;
- сводимость к задаче выпуклой оптимизации, имеющей единственное решение.
Недостатки метода: сложная интерпретируемость параметров алгоритма и неустойчивость по отношению к выбросам в исходных данных.
Оценка качества классификации
Для оценки качества классификации, как и для оценки качества работы многих других алгоритмов машинного обучения вычисляется точность и полнота.
Применение семантических тезаурусов для анализа тональности текстов
Существуют тезаурусы[4], размеченные силами людей с учётом эмоциональной окраски слов, содержащихся в них. Такие словари позволяют определять тональность текста без применения алгоритмов машинного обучения. Тональность текста определяется как сумма тональностей слов, содержащихся в размеченных словарях.
Основной проблемой методов, основанных на словарях является трудоёмкость построения словаря: отдельного для каждого нового языка и каждой новой тематики.
Известные тезаурусы: