Czym jest Model worek słów (bag-of-words model)?
Model worek słów, znany także pod angielskim skrótem Bag-of-Words (BoW), to jedna z najstarszych i najprostszych metod reprezentowania tekstu w formie numerycznej. Zakłada, że każdy dokument można przedstawić jako zbiór pojedynczych słów wraz z ich licznościami, przy całkowitym pominięciu kolejności wyrazów i informacji składniowej. Dzięki tej redukcji złożoności staje się możliwe łatwe porównywanie dokumentów oraz zastosowanie klasycznych algorytmów statystycznych w zadaniach klasyfikacji, wyszukiwania czy analizie sentymentu.
Historyczne tło i rozwój pojęcia
Korzenie idei worka słów sięgają prac z zakresu lingwistyki komputerowej i informacji naukowej z lat pięćdziesiątych XX wieku, kiedy to badacze tacy jak Hans Peter Luhn testowali wpływ rozkładu słów na relewancję dokumentów. Formalne umocowanie BoW nastąpiło na przełomie lat sześćdziesiątych i siedemdziesiątych dzięki Gerardowi Saltonowi oraz zespołowi projektu SMART w Cornell University. Kluczowe uzupełnienie w postaci ważenia częstotliwości przez odwrotną częstość dokumentów (TF-IDF) wprowadziła w 1972 r. Karen Spärck Jones, jeszcze bardziej zwiększając skuteczność modelu.
Jak dokładnie działa Model worek słów (bag-of-words model)
Proces rozpoczyna się od tokenizacji, czyli podziału tekstu na elementarne jednostki – najczęściej słowa. Następnie budowany jest słownik wszystkich tokenów występujących w korpusie. Dla każdego dokumentu tworzony jest wektor, którego długość odpowiada liczbie unikalnych słów, a poszczególne współrzędne oznaczają liczbę wystąpień danego tokenu lub jego wagę TF-IDF. Z tak powstałych macierzy częstości można korzystać w algorytmach takich jak regresja logistyczna, SVM czy k-NN, które wymagają danych liczbowych o stałej wymiarowości.
Przykład praktyczny
Rozważmy dwa zdania: „kot pije mleko” oraz „pies pije wodę”. Po stworzeniu wspólnego słownika {kot, pies, pije, mleko, wodę} pierwsze zdanie reprezentuje wektor [1, 0, 1, 1, 0], a drugie [0, 1, 1, 0, 1]. Tak uproszczone przedstawienie umożliwia szybkie obliczenie podobieństwa kosinusowego lub naukę klasyfikatora rozróżniającego teksty o kotach i psach.
Zastosowania w praktyce
Model worek słów pozostaje użyteczny w systemach filtrowania spamu, automatycznej klasyfikacji wiadomości, ocenianiu nastroju w mediach społecznościowych, a także w wyszukiwarkach lokalnych dokumentacji firmowej. W środowiskach o ograniczonych zasobach obliczeniowych jest szczególnie ceniony za minimalne wymagania pamięciowe oraz łatwość implementacji.
Zalety i ograniczenia
Najważniejszym atutem BoW jest jego przejrzystość: powstające wektory dają się łatwo interpretować, a proces budowy nie wymaga skomplikowanego uczenia reprezentacji. Dodatkowo brak konieczności dużych korpusów pretreningowych skraca czas przygotowania projektu. Z drugiej strony pomijanie kolejności słów sprawia, że model nie wychwytuje zależności składniowych ani semantycznych. W rezultacie zdania „Janek kocha Zosię” i „Zosia kocha Janka” uzyskują identyczną reprezentację, mimo odmiennego sensu. Wysoka wymiarowość przy dużych słownikach może również prowadzić do rozrzedzonych macierzy i większych wymagań pamięciowych niż w nowoczesnych technikach opartych na gęstych osadzeniach wyrazów.
Na co uważać?
Budując system oparty o worek słów, warto odpowiednio dobrać metody normalizacji, takie jak lematyzacja lub stemming, aby ograniczyć rozrost słownika. Należy także rozważyć usuwanie tak zwanych stop-words, jednak z zachowaniem ostrożności, ponieważ w pewnych zadaniach korelaty funkcji gramatycznych niosą istotną informację. Przy dużej liczbie unikalnych tokenów korzystny bywa wybór najbardziej istotnych słów według miary chi-kwadrat lub wzajemnej informacji w celu redukcji wymiarowej.
Porównanie z nowszymi podejściami
W porównaniu z modelami opartymi na osadzeniach ciągów znaków, takimi jak word2vec czy kontekstowe BERT, BoW cechuje się mniejszą zdolnością uchwycenia relacji semantycznych. Niemniej w sytuacjach, w których szybkość wdrożenia i transparentność wyników mają pierwszorzędne znaczenie, klasyczne podejście BoW nadal pozostaje konkurencyjne oraz znacznie prostsze w interpretacji dla analityków biznesowych i prawników.
Dodatkowe źródła
Dobrym punktem wyjścia jest hasło Bag-of-Words na Wikipedii, które przedstawia podstawowe definicje i przykłady. Szczegółowe omówienie teoretyczne wraz z eksperymentami znajdziemy w oryginalnym artykule Karen Spärck Jones „A Statistical Interpretation of Term Specificity and Its Application in Retrieval” dostępnym na dl.acm.org. Praktyczne aspekty implementacyjne w języku Python opisuje rozdział „Text Classification” w otwartym podręczniku NLTK Book. Dla osób zainteresowanych porównaniem BoW z osadzeniami warto sięgnąć do przeglądu arXiv:1901.09069, który przedstawia eksperymenty na zbiorach IMDB i Yelp.


