[PYTHON] Vérifiez les mots qui affectent la classification des documents

introduction

J'ai essayé d'utiliser l'apprentissage automatique, mais pourquoi ce résultat? As-tu déjà pensé? Selon la méthode, les facteurs peuvent être déchiffrés. Cet article utilise Naive Bayes comme thème et présente la «probabilité» des mots dans la classification des documents.

Veuillez vous référer à la confirmation scikit-learn ** Publié sur github **.

Classification des documents dans Naive Bayes

Qu'est-ce que la classification des documents?

La classification des documents est une tâche d'apprentissage basée sur des données de formation (documents) données à l'avance et classant les nouveaux documents dans des catégories données. Lors de l'apprentissage d'un document, il est nécessaire de donner des caractéristiques sur la base de quoi classer. Cette fois, j'expliquerai la méthode pour donner des mots comme traits.

La responsabilité comme caractéristique du document

Même en traitant les mots comme une caractéristique d'un document, il existe une méthode d'utilisation de la fréquence d'occurrence. En apprentissage, la fréquence d'occurrence est exprimée comme une probabilité pour chaque catégorie / mot (strictement différente, mais pensez-y comme une probabilité).

Nous confirmerons comment la vraisemblance est liée à la classification en faisant appel au théorème bayésien utilisé dans Naive Bayes.

Théorème de Bayes

La discrimination des documents est déterminée par la probabilité qu'un document appartienne à chaque catégorie. Cela signifie que la catégorie avec la probabilité la plus élevée sera le résultat de l'estimation. La probabilité est calculée par le théorème de Bayes, dans lequel la vraisemblance est utilisée.

P(C|Fi) = \frac{P(C)P(Fi|C)}{P(Fi)}\\
(C: catégorie, Fi: ensemble de fonctionnalités ≒ ensemble de mots, c'est-à-dire document)

■ Explication de chaque élément

$ P (C | Fi) $
Probabilité que le document Fi appartienne à la catégorie C (probabilité postérieure).
$ P (C) $
Probabilité d'apparition de la catégorie C (pré-probabilité). C'est la probabilité que la catégorie correspondante apparaisse dans les données d'apprentissage sans tenir compte du contenu du document. Exemple: s'il y a 1400 catégories informatiques sur 2000 documents, 0,7
$ P (Fi | C) $
Si c'est la catégorie C, c'est la probabilité qu'il apparaisse comme un ensemble de fonctionnalités Fi. (Litabilité)
$ P (Fi) $
La probabilité qu'un document apparaisse comme Fi. Comme C n'est pas impliqué, toutes les catégories de probabilités postérieures sont égales. En cas de discrimination, il suffit de comparer les probabilités postérieures pour chaque catégorie, elle est donc souvent exclue du calcul.

Confirmation du calcul de vraisemblance dans l'exemple

Supposons que la probabilité de chaque mot dans chaque catégorie soit obtenue à partir du résultat d'apprentissage dans les conditions suivantes.

Si le jeu de fonctionnalités du document que vous souhaitez distinguer est "Ringo Release Mikan", la probabilité P de chaque catégorie(Fi|C)Est calculé comme suit. P(Fi|C)Est le produit de chaque probabilité, mais comme il est logarithmique, il peut être calculé par addition.

IT: -0.3 + -0.3 + -0.8 = -1.4 Agriculture: -0,4 $ + -0,4 + -0,3 = -1,1 $

Cette fois, si vous ne regardez que la probabilité, elle sera estimée comme étant la catégorie agricole. Comme mentionné ci-dessus, on peut voir que plus la probabilité de chaque mot est grande, plus la probabilité postérieure est élevée. Dans l'exemple, il y a une grande différence dans la probabilité du mot «Mikan», et on peut voir que cela affecte grandement la discrimination.

Bien que cela dépende de la probabilité a priori, on peut dire que plus la différence de probabilité entre les catégories est grande, plus le classificateur affecte la discrimination.

Confirmation des données réelles

Vérifions la probabilité avec des données réelles. Nous avons utilisé l'ensemble de données des critiques de films, Movie Data Review, pour classer les critiques positives et négatives. Après l'apprentissage, les 10 premiers mots avec la plus grande différence de probabilité sont les suivants. En plus de la nomenclature appropriée telle que «mulan», des adjectifs tels que «pire» apparaissent.

mot Négatif positif Différence de probabilité(Valeur absolue)
mulan -10.83863242 -9.33020901 1.50842341
truman -10.42987203 -9.000858011 1.429014015
worst -8.809010658 -10.1341868 1.325176141
shrek -10.87230098 -9.598985497 1.273315479
seagal -9.529290176 -10.78823673 1.258946555
godzilla -9.264337631 -10.47190374 1.207566113
flynt -10.81220934 -9.627421483 1.184787854
lebowski -10.82237984 -9.664010458 1.158369383
waste -9.193245829 -10.34277587 1.149530044
stupid -8.96333841 -10.10326246 1.139924046

Considération / impression

Je pense qu'il est raisonnable que la nomenclature appropriée des films populaires, des acteurs, etc. influence la discrimination. Nous avons également constaté que les adjectifs positifs et négatifs influencent également la discrimination. Je pense que vous pouvez être convaincu que ces mots influencent la discrimination.

en conclusion

En vérifiant la probabilité des mots, nous avons pu confirmer quels mots affectaient la discrimination des documents. Ce n'est peut-être pas toujours compréhensible, mais j'ai estimé qu'il était important de confirmer que l'estimation souhaitée avait été faite en confirmant les facteurs.

Les références

Pour l'explication de Naive Bays, veuillez vous référer ici. → Classification de texte à l'aide de baies naïves Il était facile de comprendre la différence entre la vraisemblance et la probabilité. → Quelle est la probabilité? Ceci est facile à comprendre à propos des rares résultats de la mise en œuvre. → Structure de données interne de scipy.sparse

Recommended Posts

Vérifiez les mots qui affectent la classification des documents
J'ai essayé la méthode la plus simple de classification de documents multi-étiquettes
Lancez un serveur WEB simple qui peut vérifier l'en-tête