Изменения

Перейти к: навигация, поиск

Классификация текстов и анализ тональности

1351 байт убрано, 19:12, 16 февраля 2020
м
Нет описания правки
Многие коммерческие системы используют данный подход, несмотря на то что он требует больших затрат, так как для хорошей работы системы необходимо составить большое количество правил. Зачастую правила привязаны к определенному домену (например, «ресторанная тематика») и при смене домена («обзор фотоаппаратов») требуется заново составлять правила. Тем не менее, этот подход является наиболее точным при наличии хорошей базы правил.
Подходы, основанные на '''словарях''', используют так называемые тональные словари (англ. ''affective lexicons'') для анализа текста. В простом виде тональный словарь представляет из себя список слов со значением тональности для каждого слова. Вот пример из базы ANEW<ref>[https://www.mdpi.com/2076-3417/8/2/274/html Анализ ANEW dataset]</ref>, переведенный на русский, где число означет валентность(1-9):
*счастливый - 8.21;
*хороший - 7.47;
Прежде всего следует предобработать текст. Подробно методы предобработки описаны в [[Обработка естественного языка|соответствующей статье]]
==== Векторное представление слов ====
Большинство математических моделей работают в векторных пространствах больших размерностей, поэтому необходимо отобразить текст в векторном пространстве. Основным походом является мешок слов (англ. ''bag-of-words''): для документа формируется вектор размерности словаря, для каждого слова выделяется своя размерность, для документа записывается признак насколько часто слово встречается в нем, получаем вектор. Наиболее распространенным методом для вычисления признака является TF-IDF<ref>[https://en.wikipedia.org/wiki/Tf%E2%80%93idf TF-idf]</ref> и его вариации (TF — частота слова, (англ. ''term frequency''), IDF — обратная частота документа, (англ. ''inverse document frequency'')). Плюсами мешка слов является простая реализация, однако данный метод теряет часть информации, например, порядок слов. Для уменьшения потери информации можно использовать мешок N-грамм (добавлять не только слова, но и словосочетания), или использовать более сложные в плане вычислений методы векторных представлений слов(Word2vec или его улучшение, fastText) это, например, позволяет снизить ошибку на словах с одинаковыми написаниями, но разными значениями и наоборот. Подробнее можно прочитать в [[Векторное представление слов|данной статье]].
=== Алгоритмы классификации ===
==== Байесовская классификация ====
[[Байесовская классификация]] является одним из самых простых,но не значит, что неэффективных, методов в классификации текстов.Данный алгоритм основан на принципе максимума апостериорной вероятности. Для классифицируемого объекта вычисляются функции правдоподобия каждого из классов, по ним вычисляются апостериорные вероятности классов. Объект относится к тому классу, для которого апостериорная вероятность максимальна. 
Пусть <math>P(c_i|d)</math> {{---}} вероятность того, что документ, представленный вектором <math>d = (t_1, ..., t_n)</math>, соответствует категории <math>c_i</math> для <math>i = 1, ..., |C|</math>. Задача классификатора заключается в том, чтобы подобрать такие значения <math>c_i</math> и <math>d</math>, при которых значение вероятности <math>P(c_i|d)</math> будет максимальным:
<math>c_m = \underset{c \in C}{\operatorname{argmax}} \, P(c|d)</math>
Для вычисления значений <math>P(c_i|d)</math> пользуются теоремой Байеса: <math>P(c_i|d) = \frac{P(d|c_i)P(c_i)}{P(d)}</math> где <math>P(c_i)</math> – априорная вероятность того, что документ отнесен к категории <math>c_i</math>; <math>P(d | c_i)</math> – вероятность найти документ, представленный вектором <math>d = (t_1, ..., t_n)</math>, в категории <math>c_i</math>; <math>P(d)</math> – вероятность того, что произвольно взятый документ можно представить в виде вектора признаков <math>d = (t_1, ..., t_n)</math>. По сути <math>P(c_i)</math> является отношением количества документов из обучающей выборки <math>L</math>, отнесенных Подробно байесовская классификация описана в категорию c_i , к количеству всех документов из <math>L</math>. <math>P(d)</math> не зависит от категории <math>c_i</math>, а значения <math>t_1, ..., t_n</math> заданы заранее, поэтому знаменатель {{---}} это константа, не влияющая на выбор наибольшего из значений <math>P(c_i[[Байесовская классификация|d)</math>соответствующей статье]]Вычисление <math>P(d | c_i)</math> затруднительно из-за большого количества признаков <math>t_1, ..., t_n</math> , поэтому делают «наивное» предположение о том, что любые две координаты, рассматриваемые как случайные величины, статистически не зависят друг от друга. Тогда можно воспользоваться формулой <math>P(d|c_i) = \prod_{k=1}^{n} P(t_k|c)</math> Далее все вероятности подсчитываются по методу максимального правдоподобия. <math>c = argmax_{c \in C} P(c)\prod_{k=1}^{n} P(t_k|c)</math>
Преимущества метода:
* легкая интерпретируемость результатов работы алгоритма.
Недостатками являются Недостатки метода:* частое низкое качество классификации и ;* неспособность учитывать зависимость результата классификации от сочетания признаков.
===== Многомерная модель =====
В многомерной(англ. ''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>.
===== Мультиномиальная модель =====
В мультиномиальной(англ. ''multinomial'') модели документ – это последовательность событий. Каждое событие – это случайный выбор одного слова из того самого мешка слов. Когда мы подсчитываем правдоподобие документа, мы перемножаем вероятности того, что мы достали из мешка те самые слова, которые встретились в документе. Наивное предположение в том, что мы достаём из мешка разные слова независимо друг от друга. Получается мультиномиальная генеративная модель, которая учитывает количество повторений каждого слова, но не учитывает, каких слов нет в документе.
Математически: пусть <math>V = \{w_t\}_{t=1}^{|V|}</math> – словарь. Тогда документ <math>d_i</math> – это вектор длины <math>|V|</math>, состоящий из слов, каждое из которых «вынуто» из словаря с вероятностью <math>P(w_t|c_j)</math>.
==== Метод опорных векторов ====
Для использования [[Метод опорных векторов(SVM)|метода опорных векторов]]((англ. ''SVM, support vector machine)'') требуется представлять каждый документ, как вектор, задаваемый своим содержимым в общем векторном пространстве. После этого строится разделяющая гиперплоскость для каждого известного класса.
Преимущества метода:
3
правки

Навигация