Изменения

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

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

363 байта убрано, 00:29, 24 января 2020
м
Нет описания правки
'''Классификация текстов (документов)''' (англ. ''Document classification''(англ.)) {{---}} задача компьютерной лингвистики<ref>[https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%B3%D0%B2%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0 Компьютерная лингвистика]</ref>, заключающаяся в отнесении документа к одной из нескольких категорий на основании содержания документа.
'''Анализ тональности текста''' (англ. ''Sentiment analysis''(англ.)) {{---}} задача компьютерной лингвистики, заключающаяся в определении эмоциональной окраски (тональности) текста и, в частности, в выявлении эмоциональной оценки авторов по отношению к объектам, описываемым в тексте.
== Задачи классификации текстов ==
=== Этапы подготовки ===
==== Прежде всего следует предобработать текст. Подробно методы предобработки описаны в [[Обработка естественного языка|соответствующей статье]] ====Предобработка текста переводит текст на естественном языке в формат удобный для дальнейшей работы. Применяются следующие операции:* перевод всех букв в тексте в нижний или верхний регистры;* удаление чисел или замена на текстовый эквивалент;* удаление пунктуации;* удаление редких и слишком частых слов;* [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0#.D0.A1.D1.82.D0.B5.D0.BC.D0.BC.D0.B8.D0.BD.D0.B3 стемминг] или [http://neerc.ifmo.ru/wiki/index.php?title=%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B5%D1%81%D1%82%D0%B5%D1%81%D1%82%D0%B2%D0%B5%D0%BD%D0%BD%D0%BE%D0%B3%D0%BE_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0#.D0.9B.D0.B5.D0.BC.D0.BC.D0.B0.D1.82.D0.B8.D0.B7.D0.B0.D1.86.D0.B8.D1.8F Лемматизация];==== [[Векторное представление слов]] ====Большинство математических моделей работают в векторных пространствах больших размерностей, поэтому необходимо отобразить текст в векторном пространстве. Основным походом является мешок слов (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 = 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, support vector machine)'')]] ====Будем требуется представлять каждый документ, как вектор, задаваемый своим содержимым в общем векторном пространстве. После этого будем строить разделяющую строится разделяющая гиперплоскость для каждого известного класса.
Преимущества метода:
==== pLSA ====
pLSA (англ. ''Probabilistic latent semantic analysis (англ.)'') или вероятностный латентно-семантический анализ был разработан в 1999г.
Каждое слово <math>d</math> порождается некой темой <math>t \in T</math>. Документ порождается некоторым распределением на темах <math>p(t|d)</math>. Слово порождается именно темой, а не документом: <math>p(w|d, t) = p(w|d)</math>. Итого получается следующая функция правдоподобия: <math>p(w|d) = \sum_{t \in T}p(w|t)p(t|d)</math>.
<math>n_{td} = \sum_{w \in d}n_{dwt} + \theta\frac{\partial R}{\partial \theta_{td}}</math>.
Вместо pLSA почти всегда используют его улучшение - LDA<ref>[https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation LDA]</ref>(англ. ''Latent Dirichlet allocation(англ.)''), оно более ресурсоемкое, однако выдает лучшие результаты чем pLSA. Фактически это улучшение является байесовским вариантом pLSA, использующее вариационные приближения или сэмплирование(это основные подходы к выводу в сложных вероятностных моделях).
=== [[Оценка качества в задачах классификации]] ===Для [[Оценка качества в задачах классификации|оценки качества классификации]], как и для оценки качества работы многих других алгоритмов машинного обучения вычисляется точность, полнота, F-мера и accuracy.
== Применение семантических тезаурусов для анализа тональности текстов ==
4
правки

Навигация