Punktowe wzajemne informacje na temat tekstu

Zastanawiałem się, jak można obliczyć punktowe wzajemne informacje dla klasyfikacji tekstu. Mówiąc dokładniej, chcę sklasyfikować tweety w kategoriach. Mam zbiór danych tweetów (które są adnotowane) i mam słownik dla kategorii słów, które należą do tej kategorii. Biorąc pod uwagę te informacje, jak można obliczyć PMI dla każdej kategorii na tweeta, aby zaklasyfikować tweeta do jednej z tych kategorii.

Author: mbatchkarov, 2012-11-21

1 answers

PMI jest miarą związku między cechą (w Twoim przypadku słowem) i klasą (kategorią), a nie między dokumentem (tweetem) a kategorią. Wzór jest dostępny na Wikipedii :

                  P(x, y)
pmi(x ,y) = log ------------ 
                  P(x)P(y)

W tym wzorze {[2] } jest zmienną losową, która modeluje występowanie słowa, a Y modeluje występowanie klasy. Dla danego słowa x i danej klasy y, możesz użyć PMI, aby zdecydować, czy funkcja ma charakter informacyjny, czy nie. ta podstawa. Posiadanie mniejszej liczby funkcji często poprawia wydajność algorytmu klasyfikacji i znacznie przyspiesza jego działanie. Etap klasyfikacji jest jednak oddzielny - PMI pomaga tylko wybrać lepsze funkcje, które będą wykorzystywane w algorytmie uczenia się.


Edytuj: Jedną z rzeczy, o której nie wspomniałem w oryginalnym poście, jest to, że PMI jest wrażliwy na częstotliwości słów. Przepisz wzór jako

                  P(x, y)             P(x|y)
pmi(x ,y) = log ------------ = log ------------ 
                  P(x)P(y)             P(x)

Gdy x i y są doskonale skorelowane, P(x|y) = P(y|x) = 1, więc pmi(x,y) = 1/P(x). Mniej częste x-es (słowa) będą miały wyższy wynik PMI niż częste x - es, nawet jeśli oba są doskonale skorelowane z y.

 28
Author: mbatchkarov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-12 20:07:58