Bästa svaret
När det gäller övervakad textklassificering finns det flera:
- Övervakad latent dirikletallokering (SLDA)
- Support Vector Machines (SVM)
- Multinomial logistisk regression (maximal entropi)
- Naive Bayes (se även multinomial NB)
- Neurala nätverk
- Beslutsträd
- Slumpmässiga skogar
- Boosting and Bagging algoritmer
Svar
Den sorgliga sanningen är att det nästan inte finns några algoritmer som tar hänsyn till ordordning och meningsstruktur. Den stora, stora, stora majoriteten av algoritmer förlitar sig på enstaka ord, ibland ordpar och mycket sällan ordtriplett (unigram, bigrams respektive trigrams).
Som sagt utan att beakta ordordning och innehåll många av dessa algoritmer fungerar ganska bra. Logistisk regression, naiva bayes, SVM och kombinationer av dessa tre utför nästan toppmoderna för de flesta textklassificeringsuppgifter.
Med det sagt finns det alternativ. Specifikt finns det klasser av neurala nätverk som tar hänsyn till dessa. AFAIK, återkommande, rekursiva och konvolutionella neurala nätverk som tillämpas på text står för detta till viss del. Beroende på implementeringen förlorar sannolikt ett neurologiskt nätverk troligtvis mer exakt orderinformation än de två RNN: erna, men detta är verkligen inte alltid fallet.
Dessa modeller är allmänt kända för att producera överlägsen noggrannhet i vissa fall Specifikt är det här fall när du har att göra med mycket stora datamängder. Som en allmän regel om du är under ~ 1m exempel är du vanligtvis bättre med att använda en enklare modell eftersom dessa modeller antagligen antingen inte lär sig alls, eller överträffar fruktansvärt på små datamängder. Återigen finns det undantag från varje regel, men det här är i allmänhet korrekt.
De är också MYCKET beräkningsmässigt dyra och det är osannolikt att du kan träna detta i rimlig tid utan en GPU-installation.