Classification statistique du texte

32

Je suis un programmeur sans connaissances statistiques et je suis actuellement en train d’examiner différentes méthodes de classification pour un grand nombre de documents que je souhaite classer en catégories prédéfinies. J'ai lu sur kNN, SVM et NN. Cependant, j'ai du mal à démarrer. Quelles ressources recommandez-vous? Je connais assez bien le calcul à une variable et à plusieurs variables, alors mes calculs devraient être assez solides. Je possède également le livre de Bishop sur les réseaux de neurones, mais il s’est avéré un peu dense en introduction.

Emil H
la source

Réponses:

19

Je recommande ces livres - ils sont également très appréciés sur Amazon:

"Text Mining" de Weiss

"Programmation d'applications d'exploration de texte", par Konchady

Pour les logiciels, je recommande RapidMiner (avec le plugin texte), gratuit et open-source.

Voici mon "processus d'exploration de texte":

  • collecter les documents (généralement une analyse du Web)
    • [échantillon si trop grand]
    • horodatage
    • décaper le balisage
  • tokenize: casser des caractères, des mots, des n-grammes ou des fenêtres glissantes
  • stemming (aka lemmatization)
    • [inclure les synonymes]
    • voir les pronoms et les articles de l'algorithme porter ou flocon de neige sont généralement de mauvais prédicteurs
  • enlever les mots vides
  • vectorisation de caractéristiques
    • binaire (apparaît ou non)
    • nombre de mots
    • fréquence relative: tf-idf
    • gain d'information, chi square
    • [avoir une valeur minimale pour l'inclusion]
  • pondération
    • pondérer les mots en haut du document plus haut?

Ensuite, vous pouvez commencer le travail de classification. kNN, SVM ou Naive Bayes selon le cas.

Vous pouvez voir ma série de vidéos d'exploration de texte ici

Neil McGuigan
la source
C'est une excellente réponse! Je vais examiner vos suggestions de livres et la description de votre processus est également excellente. J'aime particulièrement les suggestions de vectorisations d’entités.
Emil H
(Si quelqu'un souhaite développer davantage la partie relative à la vectorisation, ce serait formidable.)
Emil H
11

Introduction à la recherche d'information , disponible gratuitement en ligne en texte intégral, constitue un excellent texte d'introduction sur les sujets que vous avez mentionnés .

Introduction à la recherche d'information

Fabian Steeg
la source
En fait, j'ai scanné cela au travail hier. C'est une lecture intéressante. J'aimerais avoir plus de temps pour absorber le contenu, mais je devais obtenir ce dont j'avais besoin et passer à autre chose.
Thomas Owens
d'accord, c'est un excellent livre. Ça explique à peu près comment Google fonctionne :)
Neil McGuigan
5

Le réseau de neurones risque de ralentir pour un grand nombre de documents (il est également devenu obsolète).
Et vous pouvez aussi vérifier Random Forest parmi les classificateurs; il est assez rapide, les échelles sont agréables et ne nécessite pas de réglages complexes.


la source
+1 pour les forêts aléatoires. Certainement un bon classificateur à essayer en premier, car ils ne sur-ajustent pas.
Zach
4

Si vous venez du côté de la programmation, une option consiste à utiliser Natural Language Toolkit (NLTK) pour Python. Un livre O'Reilly, disponible gratuitement , peut constituer une introduction moins dense et plus pratique à la construction de classificateurs de documents, entre autres.

Si vous souhaitez approfondir vos connaissances statistiques, le livre en cours de Roger Levy, intitulé Modèles probabilistes dans l'étude du langage , n'est peut-être pas mauvais à lire. Il est écrit pour les étudiants diplômés de cogsci / compsci débutant avec les techniques de la PNL statistique.

ars
la source
3

Premièrement, je peux vous recommander le livre Fondements du traitement statistique du langage naturel de Manning et Schütze.

Les méthodes que j'utiliserais sont les distributions de fréquence de mots et les modèles de langage ngram. Le premier fonctionne très bien lorsque vous souhaitez classer par sujet et que vos sujets sont spécifiques et experts (avec des mots-clés). La modélisation Ngram est le meilleur moyen de classer les styles d'écriture, etc.

Peter Smit
la source
0

Naive Bayes est généralement le point de départ de la classification de texte. Vous trouverez ci-dessous un article de M. Dobbs sur la manière de la mettre en œuvre. C'est aussi souvent le point final de la classification du texte, car très efficace et très bien parallélisé, SpamAssassin et POPFile l'utilisent.

Yaroslav Bulatov
la source