Z epopei do punktu – wektoryzacja dokumentów

W poprzednim wpisie stwierdziłem, że klasteryzacja jest przeprowadzana na punktach, skądś jednak te punkty muszą się wziąć, tutaj wkracza proces wektoryzacji.

Jedną z popularniejszych technik wektoryzacji tekstu jest algorytm TF-IDF (Term Frequency – Inverted Document Frequency).

Jaka jest zasada jego działania?

Celem działania algorytmu jest przedstawienie dokumentu w formie liczbowej, wektora wag przedstawiającego wpływ konkretnych słów zawartych w dokumencie na jego znaczenie merytoryczne, semantyczne. Algorytm wyznacza wektor opisujący dokument na podstawie tekstu przy czym każde słowo w tekście ma swoją wagę, zależną od częstotliwości występowania słowa w dokumencie oraz liczbie dokumentów w zbiorze w jakiej znajduje się słowo. Sam algorytm to tak naprawdę połączenie dwóch metod.

Term Frequency odpowiada za zliczanie występowania słowa w dokumencie. Działanie kroku Term Frequency pozwala także na odsianie pewnych słów z procesu wektoryzacji na podstawie częstotliwości ich występowania w dokumencie lub zbiorze, np. pod uwagę mogą nie być brane słowa, które występują w ponad 30% artykułów.

Celem takiej filtracji jest odsianie tzw. stop-words, słów które nie mają większego znaczenia semantycznego w tekście, są tylko spójnikami w zdaniach pomiędzy podmiotem i orzeczeniem, pomiędzy wyrazami stanowiącymi o sensie zdania.

Przykład z tego tekstu:

Działanie kroku Term Frequency pozwala także na odsianie pewnych słów z procesu wektoryzacji na podstawie częstotliwości ich występowania w dokumencie lub zbiorze

Zastanowić się należy jakie wyrazy mają lub jakie wyrazy nie mają wartości semantycznej w tym zdaniu. Pierwszą kategorią odsianych słów byłyby spójniki, zaimki i przyimki, z cytowanego zdania w pierwszej kolejności mogłyby zostać odsiane słowa: na, z, ich, w, lub, także. Zdanie zostałoby więc podzielone na następujące wyrazy:


 

 

[Działanie, kroku, Term, Frequency, pozwala, odsianie, pewnych, słów, procesu, wektoryzacji, podstawie, częstotliwości, występowania, dokumencie, zbiorze]

A wektor częstotliwości wyglądałby podobnie jak tutaj:

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]


Oczywiście, wektor częstotliwości zależny byłby nie tylko od zdania ale od całego tekstu oraz wszystkich dopuszczonych wyrazów w procesie wektoryzacji. Metoda ta jest także wrażliwa na odmiany wyrazów a w języku polskim odmianie podlegają nawet nazwy własne, imiona, nazwiska itp.

Inverted Document Frequency ma za zadanie obliczenie znaczenia wybranego słowa w dokumencie na podstawie ilości dokumentów zawierających to słowo.

Mówiąc w prostych słowach, większy wpływ na znaczenie semantyczne danego dokumentu tekstowego ma wyraz, który znajduje się w mniejszej liczbie dokumentów. Słowo, znajdujące się w wielu dokumentach może być wzięte właśnie za stop-word.

Wzór z którego przeważnie wyliczana jest waga słowa jest następujący:

tfidf_formula

a można go rozszyfrować następująco:

Waga i-tego słowa Wi równa jest częstotliwości występowania i-tego słowa w dokumencie i mnożona razy logarytm o podstawie n z ilorazu wielkości zbioru dokumentów przez częstotliwość występowania słowa w dokumencie.

Logarytm jest opcjonalny i stosowany tutaj w celu zwiększenia znaczenia wartości Term Frequency na wagę słowa.

I to właściwie tyle ile można napisać o Inverted Document Frequency. Można tutaj dodać fakt, że ta metoda pozwala na odsianie słów występujących w zbyt wielu dokumentach.


Wracając jeszcze do metody Term Frequency i ogólnie tworzenia słownika słów biorących udział w procesie wektoryzacji.

Niektóre wyrażenia używane w języku mają większy sens i znaczenie występując razem, w parach, trójce czy dłuższych. Mogą to być tytuły, nazwy firm, marek, imiona wraz z nazwiskami, jakieś zwroty potoczne.

n-gramy są to w skrócie zbiory kolejno występujących po sobie słów z szyku zdania. 1-gramy (unigramy) będą pojedynczymi słowami, 2-gramy (bigramy), będą parami słów, 3-gramy (trigramy) trójkami itd.

Z pewnością korzyść na jakość procesu wektoryzacji może mieć znalezienie poprawnych n-gramów w tekście.

Metoda wyszukiwania n-gramów działa trochę naiwnie, tworząc n-ramy z kolejnych możliwych słów, co nie wpływa ani na wydajność procesu ani na jego precyzję. Szacowane jest jednak prawdopodobieństwo tego, czy dana para lub inna zbitka wyrazów tworzy razem jakieś znaczenie i odrzucane są n-gramy, które są poniżej pewnego określonego progu.

Zainteresowanych procesem wyznaczania prawdopodobieństwa dla n-gramów odsyłam do wikipedii jako dobry start to zrozumienia tej metody.

Inną rzeczą o której warto wspomnieć przy wektoryzacji, jeśli o czymś nie zapomniałem jest normalizacja utworzonych wektorów wag. Jako, że dokumenty nie będą zawierać wszystkich branych pod uwagę w tym procesie słów a zdecydowanie częściej nie będą zawierać większości z nich, w tych miejscach będą wpisywane zwyczajnie zera. Jaki z tym problem? Ano taki, że te zera będą miały duży wpływ na odległość wektorów nie ze względu na treść a ze względu na podobnie małą ilość tekstu w tych dokumentach. Dlatego proces normalizacji ma zwiększyć znaczenie pozycji niezerowych w utworzonych wektorach. Zainteresowanych metodami normalizacji, odsyłam do wikipedii do hasła o p-normach, używanych do normalizacji w środowisku Apache Mahout o którym wspomnę w przyszłości jak i prawdopodobnie jeszcze o p-normach i normalizacji.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *