Beste antwoord
In termen van tekstclassificatie onder supervisie zijn er verschillende:
- Supervised Latent Dirichlet Allocation (SLDA)
- Support Vector Machines (SVM)
- Multinomiale logistieke regressie (maximale entropie)
- Naive Bayes (zie ook multinominaal NB)
- Neurale netwerken
- Beslissingsbomen
- Willekeurige bossen
- Algoritmen voor boosting en bagging
Antwoord
De trieste waarheid is dat er bijna geen algoritmen bestaan die rekening houden met woordvolgorde en zinsstructuur. De overgrote, overgrote meerderheid van algoritmen is gebaseerd op enkele woorden, soms woordparen, en zeer zelden woordtriplet (respectievelijk unigrammen, bigrammen en trigrammen).
Dat gezegd hebbende, zonder rekening te houden met de woordvolgorde en content veel van deze algoritmen presteren redelijk goed. Logistieke regressie, naïeve bayes, SVMs en combinaties van deze drie presteren bijna state-of-the-art voor de meeste tekstclassificatietaken.
Dat gezegd hebbende, er zijn alternatieven. Specifiek zijn er klassen van neurale netwerken die hiermee rekening houden. AFAIK, terugkerende, recursieve en convolutionele neurale netwerken die op tekst worden toegepast, verklaren dit tot op zekere hoogte allemaal. Afhankelijk van de implementatie zal een convolutioneel neuraal netwerk waarschijnlijk nauwkeuriger orderinformatie verliezen dan de twee RNNs, maar dit is zeker niet altijd het geval.
Van deze modellen is algemeen bekend dat ze in bepaalde gevallen superieure nauwkeurigheid produceren Dit zijn met name gevallen waarin u te maken heeft met zeer grote datasets. Als algemene regel geldt dat als u minder dan ~ 1 miljoen voorbeelden heeft, u doorgaans beter af bent met een eenvoudiger model, aangezien deze modellen waarschijnlijk helemaal niet leren, of overfit vreselijk op kleine datasets. Nogmaals, er zijn uitzonderingen op elke regel, maar dit is over het algemeen juist.
Ze zijn ook ZEER rekenkundig duur en het is onwaarschijnlijk dat je dit in een redelijke hoeveelheid tijd zonder GPU-configuratie.