Najlepsza odpowiedź
Jeśli chodzi o nadzorowaną klasyfikację tekstu, jest ich kilka:
- Nadzorowana alokacja ukrytego Dirichleta (SLDA)
- Maszyny wektorów nośnych (SVM)
- Wielomianowa regresja logistyczna (maksymalna entropia)
- Naiwny Bayes (zobacz również wielomianowe NB)
- Sieci neuronowe
- Drzewa decyzyjne
- Losowe lasy
- Algorytmy zwiększające i pakujące
Odpowiedź
Smutna prawda jest taka, że prawie nie istnieją algorytmy uwzględniające kolejność słów i strukturę zdań. Ogromna, ogromna, ogromna większość algorytmów opiera się na pojedynczych słowach, czasami parach słów i bardzo rzadko triolach słów (odpowiednio unigramach, bigramach i trygramach).
To powiedziawszy, bez uwzględnienia kolejności słów i zawartość wiele z tych algorytmów działa całkiem dobrze. Regresja logistyczna, naiwne zatoki, maszyny SVM i kombinacje tych trzech elementów w większości zadań klasyfikacji tekstów są zbliżone do aktualnego stanu wiedzy.
To powiedziawszy, istnieją alternatywy. W szczególności istnieją klasy sieci neuronowych, które to uwzględniają. AFAIK, rekurencyjne, rekurencyjne i splotowe sieci neuronowe zastosowane do tekstu, wszystkie to w pewnym stopniu wyjaśniają. W zależności od implementacji, konwolucyjna sieć neuronowa może stracić dokładniejsze informacje o kolejności niż dwa RNN, ale z pewnością nie zawsze tak jest.
Te modele są ogólnie znane z tego, że w niektórych przypadkach zapewniają większą dokładność . W szczególności są to przypadki, gdy masz do czynienia z bardzo dużymi zbiorami danych. Zasadniczo, jeśli liczba przykładów jest mniejsza niż ~ 1 mln, zazwyczaj lepiej jest używać prostszego modelu, ponieważ modele te prawdopodobnie w ogóle się nie nauczą lub okropnie dopasowują się do małych zbiorów danych. Ponownie, istnieją wyjątki od każdej reguły, ale jest to ogólnie poprawne.
Są one również BARDZO kosztowne obliczeniowo i jest mało prawdopodobne, abyś był w stanie wyszkolić to w rozsądny czas bez konfiguracji GPU.