Texte Guide de classification: Python vous voulez vraiment manquer?

Lei Note du réseau Feng: Cet article est une compilation du blog de la technologie de groupe de Lei Feng, le titre original Un guide complet pour comprendre et mettre en uvre la classification du texte en Python, auteur SHIVAM BANSAL.

Traduction | Mali groupe Zeping à Relisez | Tu finition Shi-wen | MY

introduction

classification de texte comme l'une des tâches de traitement du langage naturel, sont largement utilisés dans la résolution de problèmes divers secteurs d'activité. Texte de la classification est de texte / document automatiquement classés comme une ou plusieurs catégories prédéfinies. applications de classification de texte commun sont les suivantes:

  • médias sociaux les utilisateurs à comprendre les émotions

  • Identifier le spam et le courrier légitime

  • La requête de l'utilisateur d'annotation automatique

  • Les nouvelles ont été classées par thème

contenu principal

Dans cet article, je vais vous expliquer la connaissance de l'étape atteint la classification du texte et la classification de texte par étape en Python.

classification du texte est une tâche d'apprentissage machine supervisé, parce que l'utilisation d'une tâche de classification texte contient le texte / document et son sujet de classe correspondant a marqué ensemble de données pour former un classificateur. Fin d'un processus de classification texte comprend trois composantes principales:

  • Ensemble de données est prêt: La première étape est la préparation des données, cette étape comprend le chiffrement des données ainsi que le travail de pré-traitement de base. jeu de formation et de validation ensemble sera divisé après l'ensemble de données.

  • Caractéristiques du projet: La deuxième étape se caractérise par le projet, à cette étape, les données brutes sont converties à appliquer à fonction de modèle d'apprentissage de la machine. Cette étape comprend également le processus de construction des nouvelles fonctionnalités à partir des données existantes.

  • la formation du modèle: La dernière étape consiste à construire le modèle, dans ce modèle d'apprentissage stepper il sera marqué sur l'ensemble dans une des données de formation.

  • Améliorer les performances du classificateur texte: Dans cet article, nous allons nous concentrer sur les différentes méthodes pour améliorer la performance de la classification texte.

  • Note: Cet article n'explore pas en profondeur les tâches de traitement du langage naturel. Si vous voulez passer en revue les bases Houzai lecture de cet article, vous pouvez consulter cet article (lien: https: //www.analyticsvidhya.com/blog/2017/01/ultimate-guide-to-understand-implement-natural-language -traitement-codes-à-python /).

    préparations

    Construisons un cadre de classification de texte en Python par étape de manière par étape pour atteindre. Tout d'abord, nous devons importer la bibliothèque Python nécessaire.

    Vous avez besoin des outils nécessaires bibliothèque Python pour exécuter le programme, vous pouvez les installer sur le lien officiel de ces tiers bibliothèques Python.

    • pandas

    • Scikit-learn

    • XGBoost

    • TextBlob

    • Keras

    # Pour la préparation des données, les caractéristiques techniques, bibliothèque modèle de formation

    1. Ensemble de données prêt

    Selon l'objectif de cet article, je l'examen des Amazon ensembles de données, peuvent être téléchargés les ensembles de données via ce lien (https://gist.github.com/kunalj101/ad1d9c58d338e20d09ff26bcc06c4235). L'ensemble de données contient les 3,6 millions de commentaires et l'étiquette de texte correspondant, nous utilisons seulement une petite partie de celui-ci. Afin de préparer les données, les données sont téléchargées sur pandas chargement d'une trame de données, la trame de données comprenant deux - et des étiquettes de texte.

    Ensuite, nous allons mettre l'ensemble de données est divisé en formation et ensemble de validation, afin que nous puissions former et tester un classificateur. Et, nous allons colonne LABEL est codé afin qu'il puisse être utilisé dans les modèles d'apprentissage de la machine.

    2. Caractéristiques du projet

    L'étape suivante se caractérise par l'ingénierie. Dans cette étape, les données d'origine est converti en un vecteur de caractéristiques et construira une nouvelle fonctionnalité à partir des données existantes. Pour extraire les caractéristiques pertinentes concentrés sur nos données, nous atteindrons les idées suivantes.

    2.1 vecteurs de caractéristiques de comptage

    2.2 vecteurs TF-IDF caractérisé

    • le niveau de vocabulaire

    • stade N-Gram

    • Classe de caractère

    2.3 caractérisé en vecteurs de mots

    2.4 dispose d'un texte basé / Traitement du langage naturel

    2,5 modèle est caractérisé par thème

    Nous allons en apprendre davantage sur la réalisation de ces idées.

    2.1 vecteurs de caractéristiques de comptage

    Compter vecteur ensemble de données est une représentation de la matrice, la matrice dans chaque rangée représente un corpus de documents, un terme et chaque colonne représente un corpus, chaque élément représente un document spécifique dans un mot spécifique élément de comptage de fréquence.

    2,2 à TF-IDF vecteurs, caractérisé

    scores TF-IDF représentent l'importance relative d'un mot-clé dans un document avec l'ensemble du corpus. La valeur TF-IDF est composé de deux parties: la première partie est une fréquence de terme normalisé (TF), la deuxième partie est la fréquence du document inverse (IDF), l'entrée de document, le mot correspondant de la fréquence de document inverse de l'occurrence divisé par le nombre total de documents dans le numéro de corpus les résultats obtenus en prenant le calcul de logarithme.

    TF (t) = (le nombre de fois qu'un terme t apparaît dans un document) / (nombre total d'entrées dans le document Word) IDF (t) = log_e (nombre total de documents / nombre de documents contenant un terme de t)

    peut être obtenu TF-IDF de différents niveaux d'entrée (mots, caractères, N-grammes)

    un mot de niveau la matrice de TF-IDF représente chaque terme des valeurs TF-IDF dans différents documents.

    b N-gramme niveau TF-IDF :. N-grammes pour les termes combinés formes N mots. Cette matrice représente des valeurs TF-IDF des N-grammes.

    . C TF-IDF caractère niveau TF-IDF: matrice de valeurs TF-IDF indique le niveau de caractère de corpus des N-grammes.

    mot 2.3 antivectorielle

    Parole est une représentation vectorielle à l'aide des formulaires / documents de mots denses vecteur. Position mot dans l'espace vectoriel à apprendre et à obtenir le mot du texte qui apparaît près du mot base d'apprentissage. vecteur mot peut être obtenu à partir du corpus d'apprentissage d'entrée lui-même ou peut être formé en utilisant un vecteur de pré-mot génération, par exemple de gants, FastText et Word2Vec. Chacun d'entre eux peut être téléchargé et utilisé sous la forme d'apprentissage de transfert. On peut en savoir plus sur le vecteur de mot.

    Snippet ci-dessous montre comment utiliser le mot vecteur pré-formé dans le modèle. Il y a quatre étapes essentielles:

    • formation mot préchargé vecteur

    • Création marqueur d'objet

    • Convertir les documents texte pour la séquence d'entrée et être remplie.

    • Créer une correspondance entre les mots entrées de vecteur correspondant à celui-ci.

    Vous pouvez (https://www.analyticsvidhya.com/blog/2017/06/word-embeddings-count-word2veec/) télécharger mot pré-formé vecteur d'ici.

    2.4 dispose d'un texte basé / Traitement du langage naturel

    Vous pouvez également créer des fonctions à base de texte supplémentaires, ces caractéristiques peuvent contribuer à améliorer la performance du modèle de classification texte. Quelques exemples sont les suivants:

  • Nombre de mots du document - le nombre total de mots dans le document

  • Nombre de caractères du document - le nombre total de caractères dans le document

  • La densité moyenne du document de mot - la longueur moyenne des mots dans le document

  • compte Ponctuation tout au long de l'article - le nombre total de la ponctuation des documents

  • Tout au long de l'article capitaliser le nombre de mots - le nombre total de documents capitalise la parole

  • article entier inscription gagnante comte - le nombre total de documents dans un cas approprié (titre) mot

  • distribution de fréquence vocale de l'étiquette:

    • noms Count

    • count verbe

    • comte adjectif

    • comte adverbes

    • comte pronoms

    Ces caractéristiques sont la nature expérimentale, ne peut être utilisé en fonction des circonstances particulières.

    caractéristiques du modèle à base de thème 2.5

    Le modèle est un thème de distinguer le mot appartient au groupe à partir d'un certain nombre de documents qui contiennent les meilleures informations (appelée sujet) la technologie. J'utilise caché Dirichlet modèle (Latent Dirichlet Allocation) génère des caractéristiques thématiques. LDA est un modèle itératif, à partir d'un nombre fixe d'itérations de ce thème. Chaque thème est exprimé en une distribution de probabilité de mots, chaque document est représenté sous la forme d'une distribution de probabilité d'un thème. Bien que le terme lui-même n'a pas de sens, mais la probabilité de ces sujets représentent une sorte de sens de la distribution des mots des différents concepts contenus dans le document. Vous pouvez en savoir plus sur le sujet au modèle (https://www.analyticsvidhya.com/blog/2016/08/beginners-guide-to-topic-modeling-in-python/).

    Jetons un coup d'oeil à sa mise en uvre:

    3. Modélisation

    La dernière étape dans le cadre de la catégorisation de textes pour construire un classificateur formé se caractérise par l'utilisation de quelques étapes avant que vous avez créé. modèles d'apprentissage de la machine ont beaucoup d'options différentes, ces modèles peuvent être utilisés pour modéliser la formation finale. À cette fin, nous atteindrons les suivants plusieurs classifiers différents:

  • classificateur Naive Bayes

  • classificateur linéaire

  • SVM

  • modèle ensachage

  • modèle renforcement

  • Faible profondeur réseau de neurones

  • Profondeur réseau de neurones

    • réseau neuronal convolutif (CNN)

    • La durée pendant laquelle le modèle de mémoire (LSTM)

    • Unité à recyclage porte (GRU)

    • Bidirectionnel récurrentes des réseaux de neurones

    • convolution circulaire réseau neuronal (RCNN)

    • D'autres variantes de la profondeur du réseau de neurones

    Laissez-nous mettre en uvre ces modèles et comprendre les détails de leur mise en uvre. Le fond de la fonction est une fonction d'utilité qui peut être utilisé pour former le modèle. Il vecteur caractéristique classificateur, le vecteur de caractéristiques des données de formation, les ensembles de formation et des données d'étiquette de validation en entrée. Avec ces entrées, le train de modèle et de précision de calcul.

    3.1 Naive Bayes

    modèle bayésien Naive mis en uvre à l'aide sklearn en fonction des différentes caractéristiques de

    Naive Bayes est une technique de classification basée sur la théorie bayésienne, on suppose que les variables prédictives sont indépendants. catégorie Feature hypothèse naïve classificateur Bayes ne se rapporte pas à d'autres fonctions.

    3,2 classificateur linéaire

    Mettre en uvre un classifieur linéaire (régression logistique)

    La régression logistique en utilisant la fonction de Logisque / sigmoïde pour estimer la probabilité et l'utiliser pour estimer la relation entre la variable dépendante et une ou plusieurs variables indépendantes.

    3.3 modèle SVM

    machine à vecteurs de support (SVM) est un algorithme d'apprentissage supervisé peut être utilisé dans la tâche de classification ou de régression. Cette séparation des deux catégories de l'extraction optimale du modèle hyperplan / ligne.

    3.4 ensachage

    Modèle aléatoire Forêt réaliser.

    Forêt modèle de hasard est un modèle intégré, plus précisément, un modèle de mise en sac. Il est l'un des modèles à base d'arbres.

    3.5 Dynamiser

    Atteindre modèle xgboost.

    modèle d'amplification est un autre modèle d'intégration arborescente. Dope est un élément de l'algorithme d'apprentissage automatique intégré, pour réduire l'écart et l'apprentissage de la surveillance variance, il peut être converti en un classificateur fort faible classificateur. classificateur faible se réfère au peu en rapport avec le classificateur de bonne catégorie (un peu mieux que de deviner au hasard).

    3.6 Shallow réseau de neurones

    Le réseau de neurones est un système de neurones biologiques et modèle mathématique similaire est conçu pour être utilisé pour identifier les données relationnelles complexes marqués. Un réseau de neurones consistant en trois grandes couches superficielles - la couche d'entrée, la couche cachée et la couche de sortie.

    DNN 3.7

    DNN réseau de neurones plus complexe, sa couche cachée effectuer des opérations plus complexes que RELU ou fonction d'activation sigmoïde. De nombreux types de réseaux de neurones profonds peuvent être appliqués à des problèmes de classification texte.

    3.7.1 convolution réseau de neurones

    Dans le réseau neuronal convolutif, opération de convolution agissant sur la couche d'entrée est utilisée pour calculer la sortie. réseau neuronal convolutif utilisant une connexion locale, chaque région de l'entrée connectée à la sortie de neurone. Chaque couche utilisant divers filtres et les résultats combinés.

    3.7.2 récurrente Neural Networks --LSTM

    Feedforward réseaux de neurones ayant une fonction d'activation que dans une autre direction de propagation du chemin, la sortie de la fonction d'activation du cycle de réseau de neurones de propagation (de l'entrée à la sortie, de l'entrée à la sortie) dans les deux directions. On obtient ainsi une structure de réseau de la boucle de circulation, servant de neurones « état de la mémoire. » Cet état de choses rend les neurones de mémoire appris jusqu'à présent.

    cellule de mémoire du réseau de neurones récurrents que les réseaux de neurones traditionnels ont un avantage, mais la question se pose de gradient disparaît. Quand beaucoup de couches, le réseau de neurones est difficile à apprendre et à ajuster les paramètres des couches précédentes. Pour résoudre ce problème, le nouveau modèle de RNN appelé LSTM (mémoire à court et à long terme) ont été inventés.

    def create_rnn_lstm:

    3.7.3 récurrente Neural Networks --GRU

    unité de circulation vannage (GRU) est un autre récurrent Neural Networks. Nous avons ajouté un GRU dans la couche réseau à la place LSTM.

    3.7.4 Réseaux de neurones récurrents Bidirectionnelle

    couche RNN peut être encapsulé dans la couche bi, nous encapsulées dans la couche GRU bi-couche.

    3.7.5 réseau de neurones à convolution circulaire

    Nous avons essayé la structure de base, vous pouvez maintenant essayer leurs variantes convolution circulaire du réseau de neurones (RCNN). D'autres variantes sont les suivantes:

    1. Réseau d'attention de niveau (HAN)

    2. Séquence de mécanismes attentionnels - modèle de la série

    3. les deux sens RCNN

    Avec plus de couches CNN 4. RNN

    Améliorer la performance du modèle

    Bien que le cadre ci-dessus peut être appliqué dans de nombreux problèmes de classification texte, mais afin d'obtenir une plus grande précision peut être améliorée dans la structure globale. Par exemple, voici quelques-uns du modèle de classification peut améliorer les performances des conseils de texte:

    1. Nettoyage texte: texte de lavage peut aider à réduire le bruit dans les données de texte, tels que les mots d'arrêt, la ponctuation et le suffixe.

    2. différents vecteurs de caractéristiques sont combinés: la partie caractéristique du projet, nous recevons beaucoup de caractéristiques différentes, les combiner ensemble, peuvent améliorer la précision de la classification.

    3. Modèle de planification: La planification est une étape très importante, peut affiner (longueur, nombre de nuds feuilles, les paramètres du réseau de neurones, etc. arbre) paramètres pour obtenir le meilleur ajustement du modèle.

    4. Modèle intégré: Les différents modèles sont reliés entre eux et une combinaison de ceux-ci peut améliorer les résultats de sortie.

    conclusion

    Dans cet article, nous discutons de la façon de préparer des ensembles de données de texte, tels que le nettoyage, pour créer un ensemble de formation et un ensemble de test. Utilisez tels que la fréquence des mots, TF-IDF, le vecteur de texte, modèle sujet et caractéristiques du texte de base des différents projets de longs métrages. Ensuite, nous avons formé beaucoup de classificateurs, comme Naive Bayes, régression logistique, soutien machines à vecteurs, les réseaux de neurones, et LSTM GRU. Enfin, nous discutons de différentes façons d'améliorer la performance de la classification texte.

    Avez-vous trouvé cet article utile? S'il vous plaît partagez vos impressions dans les commentaires.

    Vous pouvez également lire cet article dans Google Analytics Vidhya dans l'application Android.

    Lien original: https://www.analyticsvidhya.com/blog/2018/04/a-comprehensive-guide-to-understand-and-implement-text-classification-in-python/

    Lei Feng Lei Feng net net

    Quotes: nouveau vivo couleur bleu été X9 été pour seulement 2598 yuans
    Précédent
    Chine Fierté | 2018SS interview exclusive avec la semaine de top model des hommes chinois
    Prochain
    Film Golden Globe Houxiersuo Ronan sont montés à bord du britannique "Bazar", incroyablement attrayant Flaming Lips
    Pour toute la maison intelligente nouvelle dynamique | Bosch (BOSCH) à Hangzhou et la décence ont signé un accord important!
    OPPO K1 mille prix Yuan marché concurrentiel, in vivo série Z puis est allé!
    dernier classement de dix entreprises de messagerie: tout d'abord, il est vraiment
    Hong but électoral: Laissez-moi une odeur fraîche et cool ~
    China Mobile, a ouvert aujourd'hui l'essai gratuit d'une borne eSIM
    Lu Chuan le film "749 Office" par l'investissement lourd, Wangjun Kai Liao enquête Fan "Institut surnaturel"
    Razer a publié Razer Phone 2, ajouter plus fonction de la scène non-jeu!
    concept car Chrysler en voiture Portal technologie de reconnaissance faciale
    Fin venir, version "Day After Tomorrow" Guide de survie Doom. S'il vous plaît garder!
    99,99% confort? adidas adizero Prime BOOST nouvelle série encore et encore!
    Google a publié un nouveau pixel série phare, intéressante puce de sécurité indépendante!