Text Mining cours d'introduction: modèle sujet permet le traitement des données de texte plus heureux

En abordant la question du traitement du langage naturel, l'extraction de texte a une méthode appelée le modèle de sujet, ce qui est extrêmement utile lors de l'extraction du sujet d'ordre technique, alors quel est le modèle de sujet? Lorsque vous utilisez un modèle de sujet? Utilisation latent analyse sémantique en Python lorsque le modèle pour aborder le sujet, mais aussi doit prêter attention à ce que les questions? Après avoir lu l'article, je pense que vous aurez le plus réel récolte!

avant-propos

Avez-vous déjà été de maintenir la bibliothèque assez complète? Bibliothécaire ces gens très admirent, les livres sont classés en fonction de leur nom, le contenu ou le sujet, tout est bien géré. Mais si vous jetez eux des milliers de livres, puis les laisser faire selon le type de livres à ranger, ils pourraient jour sans fin, et encore moins à une heure de la.

Toutefois, si ces livres sont un texte électronique, puis les travaux de finition est probablement quelques secondes, sans humain. Traitement du langage naturel Hourra!

Regardez d'abord le fragment de texte suivant:

Il y a du texte de référence d'arrière-plan, vous pouvez voir un total de trois thèmes (ou un concept) - Thème 1, Thème 2 et Thème 3. Un bon modèle de sujet peut identifier des expressions similaires et les mettre dans une catégorie. Dans l'exemple ci-dessus le plus évident thème est le thème de 2, principalement sur le contenu vidéo faux.

Intéressant? Bon! Cet article décrit une méthode appelée modèle de texte à thème minier. Cet extrait est l'objet d'une technique très utile pour répondre à des problèmes de traitement du langage naturel sont également très fréquents.

Conseil: Il est fortement recommandé de lire cet article à la décomposition de valeurs singulières (SVD) et les concepts de UMAP à comprendre (https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/). Cet article est basé sur ces concepts, donc d'abord apprendre qu'ils aident à consolider notre compréhension des concepts de base.

annuaire
  • Quel est le modèle de sujet?
  • Lorsque vous utilisez le modèle de sujet?
  • Analyse sémantique latente (Latent Semantic Analysis, LSA)
  • En Python utilise LSA
  •  4.1 lecture et l'affichage des données
  • 4.2 Données Prétraitement
  • 4.3 Texte - Matrice mots
  • 4.4 Modèle sujet
  • 4.5 Thème de visualisation
  • avantages et inconvénients LSA
  • D'autres modèles de sujets techniques
  • 1. Quel est le modèle de sujet?

    modèle sujet est une technique non surveillée utilisée pour découvrir une variété de sujets dans un document texte. Ces thèmes sont abstraits dans la nature, qui est lié à l'autre fera l'objet du mot. En même temps, un document unique peut avoir plusieurs sujets. Le présent document entend modèle temporairement sujet boîte noire, comme indiqué ci-dessous:

    La boîte noire (qui est, le modèle de sujet) les expressions connexes divisés en différents groupes, appelés thèmes. Ces sujets ont une distribution spécifique dans le texte, chaque sujet peut être combiné avec des proportions différentes de mots pour définir.

    2. Lorsque vous utilisez un modèle de sujet?

    Rappelons que la finition du livre avant les tâches mentionnées. Maintenant, imaginez que vous devez classer les documents électroniques. Bien sûr, si le document est relativement faible, vous pouvez accomplir cette tâche manuellement. Mais si le document est particulièrement important, alors comment faire?

    Cette fois, il devrait utiliser la technologie de traitement du langage naturel. Pour cette tâche, le modèle sera utilisé pour compléter le thème.

    modèle sujet peut nous aider à explorer de vastes quantités de données texte, regroupement des mots, des similitudes entre le trouvé texte et a trouvé un thème abstrait. Si vous pensez qu'il n'y a pas assez de ces défis des tâches, le modèle sujet peut également trouver des résultats correspondant avec le texte de recherche dans les moteurs de recherche. Est-ce pas ce que cela signifie? Continuons à explorer à fond!

    3. Analyse sémantique latente (Latent Semantic Analysis, LSA)

    Toutes les langues auront leur propre complexité et les traits délicats, ces machines sont difficiles à contenu de capture (aussi parfois difficile de distinguer l'homme lui-même). Par exemple, des mots différents peuvent avoir la même signification et le même mot, ils peuvent avoir des significations différentes.

    look Let les deux phrases suivantes:

    1. J'aimé son dernier roman  beaucoup.

    2. Nous aimerions faire une  roman  campagne de marketing.

    La première phrase, « roman » de se référer à un livre, et il représente la deuxième phrase du roman, roman.

    On peut en déduire le sens de ces deux mots à travers le contexte facilement, mais la machine ne sera pas attraper ce concept, car il ne comprend pas le contexte du mot à utiliser. Cette fois-ci nous avons besoin d'utiliser l'analyse sémantique latente, et il peut se fonder sur le contexte entre l'expression d'essayer de comprendre le sens de c'est que nous parlons du sujet.

    Par conséquent, l'expression simplement mis en correspondance le document ne doit pas nécessairement l'effet, ce que nous avons besoin est d'apprendre à connaître le concept et le thème derrière les mots. L'analyse est Latent Semantic la capacité de trouver un moyen de cacher le sujet, maintenant nous allons explorer davantage le fonctionnement interne de l'analyse sémantique latente.

    étapes mise en uvre Analyse sémantique latente

    Disons que nous avons des documents m, des documents pour un total de n mots uniques, on extrait les sujets k de tous les documents. Où k est le nombre de sujets, il est défini par l'utilisateur.

    • configuration en forme, tel qu'un m * n le document - matrice de mots, qui comprend un score TF-IDF.

    • Ensuite, la méthode décrite ci-dessus, nous utiliserons la décomposition en valeurs singulières de la matrice (SVD) de dimension k réduite.
    • décomposition en valeurs singulières (SVD) de la matrice en trois matrices. Par exemple, nous voulons utiliser une décomposition de valeurs singulières (SVD) pour dégrader la matrice A, alors nous allons obtenir la matrice U, la matrice S et la matrice VT (matrice V transposée matrice). Matrice Uk (document - matrice de phrase) de chaque rangée est une représentation vectorielle du document. La longueur de ces vecteurs est k, qui est, le nombre de sujets que nous avons mis. phrase Vector représente en Vk (mots - Thème Matrice) Résultats.

    • Ainsi, la décomposition de valeurs singulières (SVD) pour chaque donnée de document et une phrase Nous avons effectué pour quantifier la longueur de chaque vecteur est k. Nous pouvons combiner une méthode de similarité cosinus de l'utilisation de ces vecteurs pour trouver des phrases et des documents similaires.

    4. En utilisant l'analyse sémantique latente en Python

    nous présentons ici comment utiliser l'analyse sémantique latente pour résoudre le modèle de sujet de problème en Python. Après avoir ouvert Python, je peux suivre les étapes ci-dessous pour commencer l'exécution de code.

    4.1 lecture et l'affichage des données

    Tout d'abord à charger le package suivant:

    importer numpy comme np

    pandas géants importation comme pd

    matplotlib.pyplot importation comme plt

    Seaborn d'importation comme sns

    pd.set_option ( "display.max_colwidth", 200)

    Dans cet article, nous utiliserons sklearn des '20 ensembles de données » Newsgroup. Ici vous pouvez télécharger l'ensemble de données et exécuter le code.

    de fetch_20newsgroups à l'importation de sklearn.datasets

    ensemble de données = fetch_20newsgroups (lecture aléatoire = True, random_state = 1, supprimer = ( 'têtes', 'pieds de page', 'citations'))

    documents = dataset.data

    len (documents)

    Sortie: 11314

    dataset.target_names

    < 'Alt.atheism',

     'Comp.graphics',

     'Comp.os.ms-windows.misc',

     'Comp.sys.ibm.pc.hardware',

     'Comp.sys.mac.hardware',

     'Comp.windows.x',

     'Misc.forsale',

     'Rec.autos',

     'Rec.motorcycles',

     'Rec.sport.baseball',

     'Rec.sport.hockey',

     'Sci.crypt',

     'Sci.electronics',

     'Sci.med',

     'Sci.space',

     'Soc.religion.christian',

     'Talk.politics.guns',

     'Talk.politics.mideast',

     'Talk.politics.misc',

     'Talk.religion.misc'>

    L'ensemble de données contient 11.314 copies des documents de 20 médias différents.

    4.2 Données Prétraitement

    Démarrer, nous voulons autant que possible le nettoyage des données texte. Le principe de base est d'utiliser des expressions régulières, utilisez le remplacer ( « ») code pour tous les caractères sauf les lettres et les espaces supprimés. Ensuite, nous excluons une court terme, parce que souvent ils ne contiennent pas d'informations utiles. Enfin, nous mettons tout le texte est converti en lettres minuscules, une telle reconnaissance ne sont pas sensibles à la casse.

    news_df = pd.DataFrame ({ 'document': documents})

    # Retrait tout sauf alphabets`

    news_df = news_df . str.replace ( "", "")

    # Suppression des mots courts

    news_df = news_df appliquer (lambda x :. '' .join ( ))

    # Faire tout en minuscules texte

    news_df = news_df appliquer. (lambda x: x.lower ())

    Arrêter la suppression de mot est nécessaire, car ils sont généralement désorganisés et n'expriment aucune information. Arrêt mot contient le « il », « ils », « am », « été », « à propos », « parce que », « tout » et ainsi de suite.

    Retirer les mots d'arrêt d'un document, il faut d'abord le document pour marquer la chaîne, la chaîne est coupée en étiquettes individuelles ou des mots. Après la suppression des mots d'arrêt nous rétablirons ces connectés.

    de mots vides d'importation nltk.corpus

    stop_words = stopwords.words ( 'anglais')

    # Tokenisation

    tokenized_doc = news_df appliquer. (lambda x: x.split ())

    # Supprimer mots stop

    tokenized_doc = tokenized_doc.apply (lambda x: )

    # De-tokenization

    detokenized_doc =

    for i in range (len (news_df)):

     t = '' .join (tokenized_doc )

     detokenized_doc.append (t)

    news_df = detokenized_doc

    4.3 Texte - Matrice mots

    Ceci est la première étape dans la création de modèle de thème. Nous créerons le texte contient 1000 mots avec fonction TfidfVectorizer sklearn - la matrice de mots.

    de TfidfVectorizer d'importation sklearn.feature_extraction.text

    vectorizer = TfidfVectorizer (stop_words = 'anglais',

    max_features = 1000, # 1000 keep top termes

    max_df = 0,5,

    smooth_idf = True)

    X = vectorizer.fit_transform (news_df )

    X.shape forme # chèque de la matrice document terme

    (11314, 1000)

    En fait, on peut utiliser tous les mots pour créer une matrice, mais cela perdre beaucoup de temps et de ressources informatiques. Par conséquent, nous allons limiter le nombre de caractéristiques de 1000. Si vous avez des ressources informatiques suffisantes, je suggère que vous pouvez mettre tous les mots sont couverts à l'intérieur.

    4.4 Modèle sujet

    L'étape suivante consiste à documenter et chaque mot représenté par un vecteur. Nous utiliserons la fonction TruncatedSVD sklearn des documents - la dégradation de la matrice de mots pour plusieurs matrices.

    Étant donné que les données de 20 médias différents, nous avons mis en 20 thèmes. Il peut être réglé sur le nombre de sujets avec des paramètres de n_components.

    de TruncatedSVD import sklearn.decomposition

    # SVD représentent des documents et des termes dans les vecteurs

    svd_model = TruncatedSVD (n_components = 20, = algorithme 'randomisés', n_iter = 100, random_state = 122)

    svd_model.fit (X)

    len (svd_model.components_)

    20

    éléments Svd_model de (composants) est notre thème, nous pouvons utiliser svd_model.components pour obtenir ces sujets. Enfin, laissez-nous dans ces 20 sujets, chaque sujet dans la sortie des mots les plus importants, et de voir comment nos résultats du modèle.

    termes = vectorizer.get_feature_names ()

    pour i, comp en énumérer (svd_model.components_):

     terms_comp = zip (termes, comp)

     sorted_terms = trié (terms_comp, key = lambda x: x , inverser = True)

     print ( "Sujet" + str (i) + ":")

     T dans sorted_terms:

     imprimer (t )

     print ( "")

    Sujet 0: comme les gens pensent bien des savoir grâce temps

    Sujet 1: fenêtres grâce carte disque advance fichier courrier

    Thème 2: jeux année équipe jeu saison joueurs bon

    Thème 3: carte disque Les lecteurs de disque dur Problème

    Sujet 4: Windows fichiers fenêtre de fichiers programme à l'aide problème

    Thème 5: puce de chiffrement des données gouvernementales d'information spatiale mail

    Sujet 6: comme les sons puce savoir vélo look regard

    Sujet 7: Carte vidéo vente offre moniteur prix jesus

    Thème 8: connaître les gens du gouvernement vidéo de carte à puce clipper

    Sujet 9: bon travail sais que le temps de problème jesus vélo

    Sujet 10: pensez bien à puce grâce clipper le chiffrement besoin

    Sujet 11: merci problème droit bonne fenêtre de temps de vélo

    Sujet 12: bonnes fenêtres gens connaissent des fichiers de vente de fichiers

    Sujet 13: espace pensez connaître problème nasa année israël

    Sujet 14: les gens de bonne carte de l'espace temps nasa merci

    Sujet 15: Les gens veulent jeu de temps de fenêtre problème vélo

    Sujet 16: temps besoin de fichiers Windows droit de vélo vraiment

    Sujet 17: fichier problème de temps pensez long courrier israël

    Sujet 18: fichier carte besoin de fichiers problème bon droit

    Sujet 19: fichier problème grâce utilisé la vente de puce espace

    4.5 Thème de visualisation

    Pour savoir si notre thème présenté sur la nécessité pour la visualisation. Bien sûr, nous ne pouvons visualiser plus de trois dimensions de l'information. Cependant, l'analyse (PCA) en utilisant le composant principal ou t-SNE, nous pouvons mettre des données de grande dimension est réalisée dans un affichage visuel de faible dimension. Ici, nous allons utiliser une technologie relativement nouvelle appelée UMAP (collecteur uniforme Approximation et projection).

    importation umap

    X_topics = svd_model.fit_transform (X)

    encastrement = umap.UMAP (n_neighbors = 150, min_dist = 0,5, random_state = 12) .fit_transform (X_topics)

    plt.figure (figsize = (7,5))

    plt.scatter (enrobage , plongement ,

    c = dataset.target,

    s = 10, la taille de #

    edgecolor = 'none'

    )

    plt.show ()

    A travers le tableau ci-dessus, nous pouvons voir que le résultat est plus beau. Chaque point représente un document et de couleurs différentes représentent 20 médias, il semble que notre modèle de LSA est très efficace. UMAP peut changer les paramètres et de voir ce qui se passe à l'image.

    Ce document se trouve dans tout le code sur GitHub.

    (Https://github.com/prateekjoshi565/latent_semantic_analysis)

    Avantages et inconvénients 5.LSA

    Dans l'exemple ci-dessus, nous pouvons voir la puissance de l'analyse sémantique latente, mais elle a toujours ses propres limites. Nous devons comprendre les avantages et les inconvénients de la LSA, afin que nous sachions quand choisir, quand vous devriez essayer d'autres méthodes.

    avantages:
    • LSA est rapide, facile à mettre en uvre.
    • L'effet est bon, bien meilleur que le modèle d'espace vectoriel plat.
    inconvénients:
    • Il est un modèle linéaire, donc concentrée dans la mauvaise performance de dépendance non linéaire des données.
    • hypothèse de distribution LSA normale que les mots dans un document, mais pas tous les problèmes doivent répondre à cette hypothèse.
    • LDA besoin d'utiliser le SVD, qui est informatiquement opération intensive, il est difficile de mettre à jour les nouvelles données sont ajoutées.

    6. Autres modèles de sujets techniques

    En plus de la LSA, ainsi que d'autres techniques avancées de modélisation des sujets efficaces, tels que LDA et lda2Vec. Nous avons également écrit un bon article décrit la LDA, peut fournir une référence pour tout le monde. Lda2vec est une méthode de modèle de sujet beaucoup plus avancé, qui est basé mot word2vec intégré.

    conclusion

    Cet article, je partage leurs connaissances. modèle sujet est une chose très intéressante, il peut vous aider à composer avec un grand nombre d'ensembles de données de texte. Par conséquent, je vous suggère d'utiliser le code dans cet article pour résoudre le problème des autres ensembles de données. Exploitation minière Texte en profiter!

    Compile groupe: Huang Tianyuan, Hu Ting Liens connexes: https://www.analyticsvidhya.com/blog/2018/10/stepwise-guide-topic-modeling-latent-semantic-analysis/ Pour réimprimer, s'il vous plaît laisser un message dans les coulisses, se conformer aux normes de réimpression
    New Fox est arrivé et se sentait plus qu'un peu transformateurs partenariat
    Précédent
    Version Glory MagicBook dacentrurus nébuleuse violet Ajouté: seulement 4399 yuans par 200 $
    Prochain
    Android 9.0 expérience, personnellement commencé à voir à la fin ce que la mise à niveau
    MPV peut être si personnalisé! SAIC Chase G20 mis en vente 17,98 à 28,98 dix mille yuans
    Aujourd'hui, le son de base | Google Cloud femme fait ses adieux à trois fois, même le patron aussi sa démission!
    Tirez que l'Inde! Mimi petite maison photo imprimante du schéma de principe Visite
    Un tel type de voiture de science-fiction Xiaopeng P7 si vous l'aimez
    Les nouveaux avortement débuts Nets de sol: les problèmes de sécurité avant d'être retirée
    Ce look agressif est certainement Lufeng originale Rong Yao officiellement dévoilé
    Rédiger des curriculum vitae, des données scientifiques initiative RH pour vous ajouter comme ami
    millet Rival et Meizu 168 100 baisse de prix pour soutenir la concurrence, Li Nan microblogging est la chute de 2599
    Trois Classe B pour les jeunes, il y a aussi ce que fait face à vélo?
    « Conférence » La paix Fellow Cheng de l'Université de Pékin: les installations d'imagerie biomédicale multimodale croix échelle
    Pour la « colombe sur le nid de pie » est le mot, vous avez mal compris