Classificação estatística do texto

32

Sou programador sem formação estatística e atualmente estou procurando métodos de classificação diferentes para um grande número de documentos diferentes que quero classificar em categorias predefinidas. Eu tenho lido sobre kNN, SVM e NN. No entanto, tenho alguns problemas para começar. Quais recursos você recomenda? Eu sei muito bem o cálculo de variáveis ​​únicas e multivariáveis, então minha matemática deve ser forte o suficiente. Também possuo o livro de Bishop sobre Redes Neurais, mas provou ser um pouco denso como introdução.

Emil H
fonte

Respostas:

19

Eu recomendo estes livros - eles também são altamente cotados na Amazon:

"Text Mining" de Weiss

"Programação de aplicativos de mineração de texto", de Konchady

Para o software, eu recomendo o RapidMiner (com o plug-in de texto), gratuito e de código aberto.

Este é o meu "processo de mineração de texto":

  • coletar os documentos (geralmente um rastreamento na web)
    • [amostra se for muito grande]
    • timestamp
    • remover marcação
  • tokenize: divida em caracteres, palavras, n gramas ou janelas deslizantes
  • stemming (também conhecido como lematização)
    • [inclui sinônimos]
    • veja pronomes porter ou algoritmo de floco de neve e artigos geralmente são preditores ruins
  • remover palavras irrelevantes
  • vetorização de características
    • binário (aparece ou não)
    • contagem de palavras
    • frequência relativa: tf-idf
    • ganho de informação, quadrado do chi
    • [tenha um valor mínimo para inclusão]
  • ponderação
    • pesar palavras no topo do documento mais alto?

Então você pode começar o trabalho de classificá-los. kNN, SVM ou Naive Bayes, conforme apropriado.

Você pode ver minha série de vídeos de mineração de texto aqui

Neil McGuigan
fonte
Esta é uma ótima resposta! Analisarei suas sugestões de livros e a descrição do seu processo também é ótima. Gosto especialmente das sugestões para vetorizações de recursos.
Emil H
(Se alguém gostaria de elaborar ainda mais por parte vetorização, isso seria ótimo.)
Emil H
11

Um excelente texto introdutório que aborda os tópicos mencionados é Introdução à recuperação de informações , disponível on-line em texto completo gratuitamente.

Introdução à recuperação de informações

Fabian Steeg
fonte
Na verdade, eu digitalizei isso no trabalho ontem. É uma leitura interessante - eu gostaria de ter mais tempo para absorver o material, mas precisava obter o que precisava e seguir em frente.
22810 Thomas Owens
concordou, esse é um excelente livro. Ele explica muito bem como funciona o Google :)
Neil McGuigan
5

A rede neural pode ficar lenta para um grande número de documentos (também agora está praticamente obsoleto).
E você também pode verificar Floresta Aleatória entre os classificadores; é bastante rápido, dimensiona bem e não precisa de ajustes complexos.


fonte
+1 para florestas aleatórias. Definitivamente um bom classificador para tentar o primeiro, pois eles não se ajustam demais.
Zach
4

Se você vem do lado da programação, uma opção é usar o Natural Language Toolkit (NLTK) para Python. Há um livro da O'Reilly, disponível gratuitamente , que pode ser uma introdução menos densa e mais prática à criação de classificadores para documentos, entre outras coisas.

Se você está interessado em aprofundar o aspecto estatístico, o livro de Roger Levy em andamento, Modelos Probabilísticos em Estudo da Linguagem , pode não ser ruim para ler. Foi escrito para estudantes de graduação em cogsci / compsci, começando com técnicas estatísticas de PNL.

ars
fonte
3

Em primeiro lugar, posso recomendar o livro Fundamentos do processamento estatístico da linguagem natural, de Manning e Schütze.

Os métodos que eu usaria são distribuições de frequência de palavras e modelos de linguagem ngram. O primeiro funciona muito bem quando você deseja classificar no tópico e seus tópicos são específicos e especializados (com palavras-chave). A modelagem Ngram é a melhor maneira de classificar estilos de escrita, etc.

Peter Smit
fonte
0

Naive Bayes é geralmente o ponto de partida para a classificação de texto, aqui está um artigo do Dr. Dobbs sobre como implementar uma. Muitas vezes, também é o ponto final da classificação de texto, porque é tão eficiente e paralelo, que o SpamAssassin e o POPFile o utilizam.

Yaroslav Bulatov
fonte