Изменения

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

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

2655 байт добавлено, 20:27, 23 января 2020
Классификация текстов методами машинного обучения
Недостатки метода: сложная интерпретируемость параметров алгоритма и неустойчивость по отношению к выбросам в исходных данных.
 
==== pLSA (Hoffmann, 1999) ====
Каждое слово <math>d</math> порождается некой темой <math>t \in T</math>. Lокумент порождается некоторым распределением на темах <math>p(t|d)</math>. Cлово порождается именно темой, а не документом - <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>p(w|d) = \frac{n_{wd}}{n_{d}}</math>, а требуется найти <math>\phi_{wt} = p(w|t), \theta_{td} = p(t|d)</math>. Правдоподобие выглядит следующим образом <math>p(D) = \prod_{d \in D}\prod_{w \in d}p(d, w)^{n_dw} = \prod_{d \in D}\prod_{w \in d}(\sum_{t \in T}p(w|t)p(t|d))^{n_dw}</math>.
 
Максимизировать такое правдоподобие следует ЕМ-алгоритмом. На Е-шаге ищемм, сколько слов <math>w</math> в документе <math>d</math> из темы <math>t</math>:
 
<math>n_{dwt} = n_{dw}p(t|d, w)=n_{dw}\frac{\phi_{wt}\theta_{td}}{\sum_{s \in T}\phi_{ws}\theta_{sd}}</math>
 
На М шаге пересчитываем параметры модели: <math>n_{wt} = \sum_d n_{dwt}</math>, <math>n_{td} = \sum_{w \in d} n_{dwt}</math>, <math>n_{t} = \sum_w n_{wt}</math>, <math>\theta_{td} = \frac{n_{td}}{n_d}</math>, <math>\phi_{wt} = \frac{n_{wt}}{n_t}</math>.
 
Параметров очень много, что явно введет к оверфиттингу, только если корпус не будет на порядки больше числа тем. Однако это решается регуляризацией(Есть целая наука о разных регуляризаторах для pLSA (К.В. Воронцов)).
 
В общем виде так: добавим регуляризаторы <math>R_{i}</math> в логарифм правдоподобия:
<math>\sum_{d \in D}\sum_{w \in d}n_{dw}\log{(\sum_{t \in T}\phi_{wt}\theta_{td})} + \sum_i \tau R_i(\Phi, \Theta)</math>
 
Тогда ЕМ-алгоритме на М-шаге появятся частные производные <math>R</math>:
 
<math>n_{wt} = \sum_{d \in D}n_{dwt} + \phi\frac{\partial R}{\partial \phi_{wt}}</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>.
 
=== Оценка качества классификации ===
Анонимный участник

Навигация