Melhor resposta
Em termos de classificação de texto supervisionado, existem vários:
- Alocação latente de Dirichlet supervisionada (SLDA)
- Máquinas de vetor de suporte (SVM)
- Regressão logística multinomial (entropia máxima)
- Naive Bayes (consulte também multinomial NB)
- Redes neurais
- Árvores de decisão
- Florestas aleatórias
- algoritmos de Boosting e Bagging
Resposta
A triste verdade é que quase não existem algoritmos que levem em conta a ordem das palavras e a estrutura das frases. A vasta, vasta maioria dos algoritmos depende de palavras únicas, algumas vezes pares de palavras e muito raramente tripleto de palavras (unigramas, bigramas e trigramas, respectivamente).
Dito isso, sem considerar a ordem das palavras e conteúdo, muitos desses algoritmos funcionam muito bem. Regressão logística, bayes ingênuos, SVMs e combinações desses três desempenham perto do estado da arte para a maioria das tarefas de classificação de texto.
Dito isso, existem alternativas. Especificamente, existem classes de redes neurais que levam isso em consideração. AFAIK, redes neurais recorrentes, recursivas e convolucionais aplicadas ao texto explicam isso até certo ponto. Dependendo da implementação, uma rede neural convolucional provavelmente perderá informações de ordem mais precisas do que os dois RNNs, mas isso certamente nem sempre é o caso.
Esses modelos são geralmente conhecidos por produzirem precisão superior em certos casos . Especificamente, esses são os casos em que você está lidando com conjuntos de dados muito grandes. Como regra geral, se você “tiver menos de 1 milhão de exemplos”, será melhor usar um modelo mais simples, pois esses modelos provavelmente não aprenderão nada ou superajuste terrivelmente em conjuntos de dados pequenos. Novamente, há exceções para todas as regras, mas isso geralmente é preciso.
Eles também são MUITO caros computacionalmente e é improvável que você seja capaz de treinar isso em um tempo razoável sem uma configuração de GPU.