Zastanawiałem się, w jaki sposób można obliczyć wzajemne informacje punktowe dla klasyfikacji tekstu. Dokładniej, chcę klasyfikować tweety w kategoriach. Mam zestaw danych z tweetami (które są opatrzone przypisami) i mam słownik na kategorię słów, które należą do tej kategorii. Biorąc pod uwagę te informacje, w jaki sposób można obliczyć PMI dla każdej kategorii na tweet, aby sklasyfikować tweet w jednej z tych kategorii.Poufna wzajemna informacja na temat tekstu
Odpowiedz
PMI jest miarą powiązania między cechą (w twoim przypadku wyrazem) a klasą (kategorią), a nie między dokumentem (tweetem) a kategorią. Formuła jest dostępny na Wikipedia:
P(x, y)
pmi(x ,y) = log ------------
P(x)P(y)
W tym wzorze, X
jest zmienną losową, że modele wystąpieniu słowo, a Y
modeluje wystąpienie klasy. Dla danego słowa x
i danej klasy y
można użyć PMI, aby zdecydować, czy dana funkcja ma charakter informacyjny, czy nie, i na tej podstawie można dokonać wyboru cech. Posiadanie mniejszej ilości funkcji często poprawia wydajność twojego algorytmu klasyfikacji i znacznie go przyspiesza. Etap klasyfikacji jest jednak oddzielny - PMI pomaga tylko wybrać lepsze funkcje, które można zastosować w algorytmie uczenia się.
Edit: Jedno nie wspomnieć w oryginalnym wątku jest to, że PMI jest wrażliwy na częstotliwościach słownych. Załóżmy przepisać wzór jak
P(x, y) P(x|y)
pmi(x ,y) = log ------------ = log ------------
P(x)P(y) P(x)
Kiedy x
i y
są doskonale skorelowane, P(x|y) = P(y|x) = 1
, więc pmi(x,y) = 1/P(x)
. Rzadziej x
-es (słowa) będzie miał wyższy wynik PMI niż częste x
-es, nawet jeśli oba są doskonale skorelowane z y
.
- 1. Czy usługa google-services.json jest poufna?
- 2. RMagic, ipython i Podsumowanie Informacja
- 3. Samouczki na temat hibernacji
- 4. Poradniki na temat javaagentów
- 5. Oprogramowanie do robienia notatek na temat programowania
- 6. Potrzebujesz wyjaśnienia na temat UIApplicationState
- 7. Każdy tutorial na temat libclangu?
- 8. Podstawowa wiedza na temat Node.JS?
- 9. Potrzebuję wyjaśnienia na temat Distribution.TestSuite
- 10. Dane empiryczne na temat refaktoryzacji?
- 11. Więcej szczegółów na temat Ember.js
- 12. Szukam wyjaśnienia na temat chomp
- 13. Informacja o istotności w Apache Solr
- 14. Szablon kątowy i .NET Częściowa informacja zwrotna
- 15. Temat lokalizację
- 16. Temat Control.Invoke
- 17. Dyskusja na temat nazewnictwa programu css (jqueryui)
- 18. mousedown. rozmnażanie na temat rodzeństwa event.targets
- 19. Wszechstronny przewodnik na temat testowania aplikacji szyn
- 20. Potrzebujesz porady na temat skutecznego nazewnictwa metod?
- 21. Więcej informacji na temat `({});` in C?
- 22. Jak zdobyć wszystkie kursy na temat Moodle?
- 23. Kilka pytań na temat operatorów bitowych
- 24. Zapytanie GeoFire na temat lokalizacji użytkownika
- 25. Uzyskiwanie danych formularza na temat przesyłania?
- 26. Uzyskaj szczegółowe informacje na temat intencji Oczekujących
- 27. Przygotowane oświadczenie na temat PostgreSQL w Railsach
- 28. Refleksje na temat metod nadpisywanych interfejsami
- 29. Przeczytaj szczegóły certyfikatu SSL na temat WP8
- 30. Szczegółowe informacje na temat formatu wielostrumieniowego Microsoft:
Następne pytanie. Mówisz "X jest zmienną losową, która modeluje wystąpienie słowa". Czy tak wiele razy słowo pojawia się w całym zestawie danych? na przykład Mam 250 000 zdań, x to ile razy słowo pojawia się w całym zestawie danych? A co z p (x, y), w jaki sposób powinienem to interpretować? ilość razy x i y występują razem w zdaniu? – Ojtwist
'P (x)' to prawdopodobieństwo wystąpienia słowa "x" (małe litery), które jest stosunkiem liczby dokumentów zawierających słowo do całkowitej liczby dokumentów. 'P (y)' oznacza prawdopodobieństwo klasy (kategorii) "y", która jest obliczana w podobny sposób. 'P (x, y)' jeśli stosunek między liczbą dokumentów, które są * obie * etykiety "y" i zawierają słowo "x" oraz całkowitą liczbę dokumentów. – mbatchkarov
Czy naprawdę potrzebujesz znormalizować liczenia jako prawdopodobieństwa, dzieląc przez liczbę dokumentów? Wiem, że otrzymujesz inną liczbę pmi(), ale względna pmi() pomiędzy różnymi parami (X, Y) pozostaje taka sama, a rzeczywista wartość pmi nic nie znaczy, tak czy inaczej? Mogę tylko zobaczyć, że normalizacja jest przydatna przy porównywaniu pmi w różnych zestawach dokumentów (z różną liczbą dokumentów). – kane