PNL avec R partie 1: Modélisation de sujets pour identifier les sujets dans les avis sur les restaurants

(Jurriaan Nagelkerke) ( 13 novembre 2020)

Cette histoire est écrite par et . Il fait partie de notre PNL avec R série ( Traitement du langage naturel à des fins prédictives avec R ) où nous utilisons la modélisation de sujets, les intégrations de mots, les transformateurs et BERT.

Dans une séquence darticles, nous comparons différentes techniques de PNL pour vous montrer comment nous obtenons des informations précieuses à partir dun texte non structuré. Il y a environ un an, nous avons recueilli des critiques sur les restaurants néerlandais. Nous nous demandions si «la sagesse de la foule» – les critiques des visiteurs du restaurant – pourraient être utilisées pour prédire quels restaurants sont les plus susceptibles de recevoir une nouvelle étoile Michelin. Lisez ce message pour voir comment cela a fonctionné. Nous avons utilisé la modélisation de sujets comme principal outil pour extraire des informations des textes de révision et lavons combinée avec des techniques de modélisation prédictive pour aboutir à nos prédictions.

Nous avons reçu beaucoup dattention avec nos prédictions et aussi des questions sur la façon dont nous avons fait la partie analyse de texte. Pour répondre à ces questions, nous expliquerons notre approche plus en détail dans les prochains articles. Mais nous n’avons pas cessé d’explorer les techniques de PNL après notre publication, et nous aimons également partager des idées sur l’ajout de nouvelles techniques de PNL. Plus précisément, nous utiliserons deux types dincorporation de mots – un modèle classique Word2Vec et un modèle dintégration GLoVe – nous utiliserons lapprentissage par transfert avec des incorporations de mots pré-entraînées et nous utiliserons BERT . Nous comparons la valeur ajoutée de ces techniques PNL avancées à notre modèle thématique de base sur le même jeu de données. En montrant ce que nous avons fait et comment nous lavons fait, nous espérons guider dautres personnes désireuses dutiliser des données textuelles pour leurs propres efforts de science des données.

Dans un (article précédent), nous avons montré comment nous préparé nos données à utiliser pour diverses techniques de PNL. Ici, nous commençons notre série darticles sur les techniques PNL en présentant Modélisation de sujets et vous montrons comment identifier les sujets, visualiser le modèle de sujet résultats. Dans un (article ultérieur), nous vous montrons comment utiliser les résultats du modèle de sujet dans un modèle prédictif.

Quest-ce que la modélisation de sujet?

Pour découvrir les sujets qui les critiques de restaurants écrivent à propos de leurs critiques de restaurants, nous utilisons Topic Modeling. Mais quest-ce quun modèle thématique? Dans lapprentissage automatique et le traitement du langage naturel, un modèle de sujet est un type de modèle statistique qui peut être utilisé pour découvrir les sujets abstraits qui apparaissent dans une collection de documents. Il existe un certain nombre dalgorithmes pour extraire des sujets dune collection de textes, mais l Allocation de Dirichlet Latent est lun des algorithmes les plus populaires car il est efficace et se traduit par sujets hautement interprétables. Linterprétabilité des sujets est une caractéristique importante dun modèle de sujet, puisque nous ne voulons pas seulement trouver des groupements de mots statistiquement pertinents, nous voulons également être en mesure détiqueter les sujets identifiés avec un nom de sujet auquel dautres peuvent sidentifier. En tant que telle, la modélisation de sujets présente certaines similitudes avec les techniques de clustering telles que KMeans, où linterprétation est aussi importante que les métriques statistiques pour déterminer ce quest une « bonne » solution. Le fonctionnement de la modélisation de sujets / LDA est visualisé par Blei comme:

Comme le montre la figure:

  • Chaque topic est une distribution sur les mots
  • Chaque document est une distribution sur des sujets

Donc, une fois que nous avons terminé la modélisation des sujets de nos critiques:

  • nous devons savoir quels sont les sujets ou les sujets sur lesquels les critiques écrivent leurs avis de restaurant,
  • nous savons quels jetons ou mots sont les plus importants dans ces sujets, et
  • nous pouvons dire pour chaque avis individuel dans quelle mesure il concerne les sujets identifiés et ce peut être un mélange – 80\% sur le sujet X et 20\% sur le sujet Y .

Étape 0: Configurer notre contexte

Dabord , nous avons configuré notre environnement de classeur avec les packages requis pour effectuer la modélisation de sujets.

Dans notre (blog sur prepar données textuelles), nous avons déjà brièvement présenté tidyverse et tidytext.Ici, nous ajoutons quelques autres packages à la liste:

  • topicmodels est un package permettant destimer les modèles de sujets avec LDA et les builds sur les structures de données créées avec le package tm
  • tm est un package générique puissant avec toutes sortes de fonctionnalités de text mining, parmi lesquelles la création de document matrices de termes, dont nous avons besoin pour la modélisation de sujets
  • ldavis est un excellent package pour visualiser et interpréter le modèle de sujet et très utile lors de létiquetage topics

Étape 1. Charger les données prétraitées

Avant nous nous penchons sur le côté analytique des choses, nous avons besoin de quelques données textuelles préparées. Comme le savent tous les vrais data scientists, une préparation adéquate des données prend la plupart de votre temps et est la plus décisive pour la qualité des résultats danalyse que vous obtenez. La préparation de données textuelles est une autre tasse de thé par rapport à la préparation de données numériques ou catégorielles structurées. Dans ce blog, nous nous concentrons sur lanalyse de texte. Pourtant, nous voulons vous montrer comment nous avons nettoyé et préparé les données que nous avons collectées. Dans ce (blog précédent), nous expliquons en détail comment nous avons prétraité les données, ce qui donne les 5 fichiers suivants que nous pouvons utiliser dans nos analyses PNL:

  • reviews.csv: un fichier csv avec des textes de révision originaux et préparés – le carburant pour nos analyses PNL. (clé incluse: restoreviewid, doù lidentificateur unique pour un avis)
  • labels.csv : a csv avec des valeurs 1/0, indiquant si lavis est un avis pour un restaurant Michelin ou non (clé incluse: restoreviewid)
  • restoid.csv : un fichier csv avec les identifiants de restaurant, pour pouvoir déterminer quels avis appartiennent à quel restaurant (clé incluse: restoreviewid)
  • trainids.csv : un fichier csv avec des valeurs 1/0, indiquant si lavis doit être utilisé pour la formation ou le test – nous avons déjà divisé les avis dans train / test pour permettre la réutilisation des mêmes échantillons pour des comparaisons équitables entre les techniques (clé incluse: restoreviewid)
  • features.csv : un fichier csv avec dautres fonctionnalités concernant les revues (clé incluse: restoreviewid)

Ces fichiers avec th Les données nettoyées et pertinentes pour les techniques de PNL sont mises à votre disposition via le stockage blob public afin que vous puissiez exécuter tout le code que nous vous présentons et voir comment les choses fonctionnent plus en détail. Pour notre modèle de sujet, nous avons besoin de trois de ces fichiers:

Étape 2: Préparez les données pour le sujet modélisation

À partir des textes de révision nettoyés, nous devons faire certaines choses avant de pouvoir estimer nos modèles de sujets:

  1. Tokenize notre texte préparé (y compris les bigrammes)
  2. Exemples de critiques pour la formation de notre modèle de sujet
  3. Filtrer les jetons pertinents
  4. Créer une matrice de termes de document

2.1. Tokenize notre texte préparé (y compris les bigrammes)

Lallocation de dirichlet latent (LDA), la technique que nous utilisons pour la modélisation de sujets, est une technique de «sac de mots». Ce que cela signifie, cest que la technique NLP ne regarde pas lordre des jetons lors de lanalyse du texte. Par conséquent, lemplacement du jeton dans le texte et les autres jetons proches du jeton (jetons précédents / suivants) dans le document ne sont pas pris en compte. C’est comme si tous les jetons du texte du document étaient jetés dans un sac, les mélangeant tout en conservant l’information que les jetons sont dans le même document. En conséquence, nous pourrions passer à côté dinformations cruciales si de nombreuses collocations intéressantes – des combinaisons fréquentes de jetons – sont présentes dans le texte. Les exemples populaires sont les noms de personnes («  Donald Trump , «  Jonnie Boer ) ou de lieux («  États-Unis , «  Den Haag ), mais aussi des combinaisons de mots spécifiques au contexte peuvent être importantes à inclure dans notre modèle de sujet: «  witte wijn ( vin blanc ), rode wijn , ( vin rouge ), gaan eten ( aller manger ). Pour nous assurer de ne pas manquer ces importantes collocations, nous ajoutons les bigrammes préparés qui sont présents dans notre texte. Rappelez-vous que nous avons déjà supprimé les mots vides et linterponction dans notre dataprep.

Après avoir ajouté des bigrammes aux textes chargés et nettoyés, nous avons à nouveau divisé les textes pour aboutir à un dataframe où chaque ligne est une combinaison de jetons de révision. Nous filtrons les avis devenus trop courts (5 jetons) après avoir supprimé les mots vides. Dans ce format, nous sommes prêts pour nos derniers préparatifs avant de pouvoir commencer à modéliser les sujets.

2.2 Exemples de critiques pour la formation de notre modèle de sujet

Dans notre prochaine étape, nous filtrerons les jetons les plus pertinents à inclure dans la matrice des termes du document et par la suite dans la modélisation des sujets.Mais nous devons dabord déterminer quels documents (revues) sont les plus importants pour nous. Pour certaines raisons, nous ne voulons pas utiliser tous les avis comme entrée pour notre modèle de thème:

  • En fin de compte, nous souhaitons utiliser les rubriques dun modèle de prédiction pour prédire les étoiles Michelin. Il est recommandé de mettre de côté un ensemble de tests avant de créer le modèle de sujet et dutiliser ses résultats dans la tâche prédictive en aval. De cette façon, nous construisons à la fois notre modèle thématique et notre prédiction sur les données du train et gardons les données de test invisibles jusquà lévaluation.
  • Comme indiqué ci-dessous, pas plus de 3\% de tous les avis sont des avis Michelin. En augmentant la proportion davis Michelin dans le train que nous utilisons pour la modélisation des thèmes, il est plus probable que des sujets spécifiques abordés dans les avis Michelin soient identifiés.

Pour ces raisons, nous concentrera le reste de la préparation vers notre modèle thématique et lestimation des modèles thématiques sur un sous-ensemble de revues. Ce sous-ensemble contient uniquement les avis déjà spécifiés comme cas de formation dans notre cahier de préparation des données. Dans ce sous-ensemble, nous prenons tous les avis Michelin (environ 3 000) et les complétons par des avis non Michelin pour aboutir à environ 10 000 avis:

# A tibble: 2 x 3
ind\_michelin n pct

1 0 141554 97\%
2 1 4313 3\%
# A tibble: 5 x 5
# Groups: train\_smpl, train [3]
train\_smpl train ind\_michelin n\_reviews n\_tokens

1 0 0 0 40997 433179
2 0 0 1 1290 35129
3 0 1 0 88505 773887
4 1 1 0 7181 111435
5 1 1 1 2971 70548
[1] "10152 unique reviews and 163137 unique tokens selected to train topic model"

2.3 Jetons de filtre

Maintenant que nous avons ajouté des bigrammes aux jetons et que nous avons re-tokenisé nos textes, nous avons encore de très nombreux jetons uniques disponibles pour notre modèle de sujet . Il est recommandé de se débarrasser de la longue traîne des termes peu fréquents. Voyons dabord à quoi ressemble la distribution de la fréquence des jetons. Noubliez pas que dans notre (blog de préparation des données), nous avons déjà supprimé tous les mots vides des textes, y compris 128 mots darrêt personnalisés à haute fréquence que nous avons spécifiés en examinant la fréquence du jeton lors de la préparation des données.

Le graphique ci-dessus montre clairement quune grande quantité de jetons uniques se produit rarement dans tous les avis, 75\% ne se produit quune seule fois.

Concentrez-vous sur les jetons qui se produisent 5 fois ou plus dans le corpus de train

Comme nous pouvons le voir à partir du nombre de jetons de fréquence, il y a beaucoup de jetons qui ne se produisent quune ou plusieurs fois: environ 92\% de tous les jetons uniques se produisent moins de 5 fois dans notre corpus davis. Ces jetons basse fréquence ont un impact sur lanalyse du modèle de sujet. Pour nous concentrer sur les jetons fréquemment utilisés, nous sélectionnons les jetons qui apparaissent 5 fois ou plus dans les données de train préparées. Jespère que cela suffit pour apprendre des sujets à partir de jetons qui se produisent ensemble dans les mêmes critiques. En optimisant notre modèle thématique, nous pouvons faire varier la fréquence minimale pour évaluer limpact sur les résultats.

Pourquoi pas TF-IDF?

Après en avoir lu quelques-uns sur les outils danalyse de texte, vous vous demandez peut-être: pourquoi nutilisons-nous pas TF-IDF pour sélectionner les jetons les plus pertinents? TF-IDF signifie « Term Frequency – Inverse Document Frequency ». Cette métrique combine la fréquence du terme – à quelle fréquence le jeton est-il présent dans un document? – avec linverse de la fréquence des documents – dans combien de documents uniques le terme est-il présent? Bien que le TF-IDF soit souvent un bon choix pour sélectionner les jetons les plus pertinents, ce nest pas dans notre contexte, où la taille du document est limitée et la récurrence du même jeton dans le même texte est faible. Rarement, un jeton a une fréquence de terme supérieure à 1. Par conséquent, seule la partie Fréquence inverse du document est décisive et cela favorise les jetons qui napparaissent que dans un ou deux revues. Pour cette raison, nous nutilisons pas TF-IDF ici, mais examinons la fréquence globale pour choisir les jetons pertinents pour la modélisation de sujet. De plus, parce que nous avons déjà supprimé la liste personnalisée des mots vides de notre texte, les jetons trop fréquents sont déjà supprimés.

En filtrant les jetons peu fréquents, nous avons diminué le nombre de jetons à prendre en compte dans notre LDA de façon spectaculaire, en se concentrant sur les jetons les plus fréquents 12K (8\%) et en supprimant les jetons 146K (92\%) qui sont trop rares dans le corpus. Ces jetons sélectionnés représentent toujours 73\% de tous les jetons des documents:

# A tibble: 2 x 5
min\_5\_freq n\_unique\_tokens n\_tokens pct\_unique\_tokens pct\_all\_tokens

1 token frequency: 2 token frequency: >=5 12525 518146 8\% 73\%

2.4 Créer un DTM

Après avoir filtré les jetons que nous voulons utiliser pour construire notre modèle de sujet, nous pouvons créer lentrée pour LDA. Cela nécessite un document-term-matrix ou DTM donc une matrice avec dans les lignes tous nos documents (revues) et dans les colonnes tous les termes (le jetons pertinents). Notez que nous utilisons la fréquence globale des jetons pour le paramètre value.Vous pouvez vous attendre à la fréquence des termes spécifiques au document ici, mais nous utilisons la fréquence globale du jeton pour donner beaucoup plus dimportance à la recherche du modèle de sujet aux termes qui sont plus fréquents en général; compte tenu de la courte durée des critiques (par rapport aux livres ou aux articles souvent utilisés dans la modélisation de sujets), la probabilité quun seul jeton se produise plus souvent dans la critique est limitée.

DTM dimensions: 
Documents (10152) x Tokens (12525) (average token frequency: 702.3)

Étape 3: Développer un modèle de sujet

Maintenant que nous avons un DTM, nous « sommes prêts à commencer la modélisation de sujets! Jusquà présent, nous avons déjà fait pas mal de choix avec un impact sur le résultat de notre analyse: quelle longueur minimale de révision utiliser, quels mots vides exclure, quoi n -grammes à inclure, la fréquence minimale des jetons pour utiliser les jetons … Et quelques autres choix doivent être faits.

LDA a un certain nombre de paramètres qui ont un impact sur le résultat, dont les plus importants sont:

  • k : Le nombre de sujets! Oui, cest un paramètre et non un résultat. Comme pour les techniques de clustering telles que KMeans, vous devez indiquer le nombre de clusters / sujets que vous souhaitez identifier ify.
  • method : Le package topicmodels permet différentes méthodes doptimisation, VEM algorithm ou Gibbs sampling, la valeur par défaut est VEM.
  • control : liste des variables de contrôle pour guider lestimation – les paramètres pertinents dépendent de la méthode choisie VEM ou Gibbs mais les plus importants sont:
  • nstart : Le nombre dexécutions à effectuer avec les mêmes paramètres mais des valeurs de départ différentes
  • seed : Pour la reproductibilité, une graine aléatoire peut être définie. Si nstart> 1, vous devez fournir plusieurs valeurs de départ, 1 par nstart (par exemple c (123, 234 « , 345 »))
  • best : Si TRUE (par défaut), seule lanalyse avec le meilleur résultat dajustement est conservée, de lensemble, si FALSE une liste de toutes les analyses est renvoyée afin que vous puissiez toutes les examiner dentre eux.

Pour un aperçu complet de tous les paramètres et paramètres disponibles, consultez la vignette du package topicmodels .

Estimation du modèle de sujet LDA

Le paramètre le plus important est k : le nombre de thèmes à identifier. Comment choisir une valeur pour k? Ceci est en partie le résultat dune discussion (quel nombre de sujets sattend-on à trouver dans ce contexte?) Et dune erreur dessai & (essayez différentes valeurs de k, évaluez les résultats). Certains spécialistes des données peuvent ne pas aimer cela, ils préfèrent regarder les statistiques pour les guider dans ce processus, mais pour ceux qui connaissent dautres techniques de science des données non supervisées comme KMeans, ce nest pas si nouveau. Le regroupement et la modélisation de sujets sont dans une certaine mesure plus un art que de la science. Guidé par des techniques et des mesures statistiques, un data scientist sculpte une solution de modélisation thématique qui répond aux besoins (commerciaux). Si vous avez besoin dun point de départ pour k avec des informations statistiques, vous pouvez essayer cette approche ou ceci .

Commençons par un modèle de thème pour identifier 3 thèmes et explorer le résultat. Nous navons aucune raison de modifier les autres valeurs par défaut à ce stade.

Évaluer le modèle de sujet

Le modèle de sujet est ajusté, alors explorons!

Lobjet lda ajusté contient un certain nombre de matrices:

  • phi : matrice avec répartition des jetons (en lignes) sur les sujets (en colonnes)
  • theta : matrice avec répartition des documents (doù: avis, en lignes) sur les sujets (en colonnes)

Tant pour phi que pour thêta, la somme sur toutes les colonnes est égale à 1, ce qui signifie:

  • Pour phi, la somme de tous les scores de jetons dans un sujet est de 1 – des scores plus élevés signifient une importance plus élevée de ce jeton dans le sujet .
  • Pour thêta, la somme de tous les scores de sujet dans un document est de 1 – des scores plus élevés signifient que le sujet est plus présent dans ce document.

Pour explorer notre modèle de sujet, commençons par examiner les jetons les plus importants par sujet. Pour ce faire, nous devons spécifier quand un jeton est important pour un sujet. Nous pourrions soutenir que le jeton est important pour le sujet lorsquil a une forte probabilité de se produire dans un sujet p(token|topic). Voyons à quoi cela ressemble pour notre modèle de sujet à 3 sujets. Nous utiliserons une fonction intéressante du package tidytext, qui aide à préparer les données du modèle de sujet pour visualiser les jetons les plus importants par sujet: tidy().

Avec ce graphique, nous avons une première idée de ce que représentent les sujets de notre premier modèle de sujet. Comme nous pouvons le voir sur lintrigue, lexamen de la probabilité de jeton par sujet présente linconvénient que les jetons qui ont une fréquence globale élevée ont une probabilité plus élevée de figurer dans le top 10 pour plusieurs sujets. Par exemple, restaurant apparaît dans plusieurs top-10 thématiques. Seul un examen des probabilités globales du sujet peut masquer le fait que des jetons spécifiques un peu moins fréquents sont très liés à un sujet spécifique. Pour analyser cela, nous pouvons rendre la fréquence du token dans le sujet relative à la fréquence globale du token: p(token|topic)/p(token). Cela montre quels jetons sont fortement liés au sujet, indépendamment de la fréquence des jetons.

Prendre (seulement) cette dernière approche a son propre inconvénient, mettant en évidence les jetons importants qui pourraient ne pas se produire dans que de nombreux commentaires. La meilleure approche pourrait être quelque part au milieu: pour évaluer un modèle de sujet, il est plus utile de pouvoir explorer le modèle de sujet à partir des deux perspectives – probabilité du terme absolu et probabilité relative du terme – et peut-être même dun mélange des deux. Pour cette raison, le package LDAvis est si précieux car il vous permet de faire exactement cela! LDAvis a besoin dun JSON contenant des informations sur votre modèle de sujet et votre vocabulaire:

Une note daccompagnement ici: le package LDAvis R peut être utilisé depuis R ou RStudio mais pas directement depuis un environnement notebook comme Jupyter ou Databricks. Par conséquent, nous avons utilisé le port pyLDAvis pour le package LDAvis, car cela facilite linclusion du merveilleux outil LDAvis dans un ordinateur portable. Cependant, dans certains navigateurs, pyLDAvis ne fonctionne pas correctement. Si cela se produit, veuillez consulter un exemple ci-dessous. Nhésitez pas à télécharger ce notebook et à essayer le LDAvis par vous-même.

Pour exécuter LDAvis localement avec R ou RStudio, vous pouvez exécuter serVis(json) . Pour explorer le LDAvis interactif à partir de la sérigraphie ci-dessous, consultez ce lien .

Le graphique de gauche montre la taille de Sujets ( Combien de documents sont attribués au sujet?) ainsi que la distance entre les sujets ( Quels sujets sont plus / moins liés les uns aux autres? ). Le côté droit montre les jetons importants pour le sujet sélectionné (ou les jetons les plus importants dans le modèle de sujet lorsquaucun sujet nest sélectionné). Avec le curseur en haut à droite, nous pouvons changer lambda, où lambda décide dans quelle mesure nous préférons regarder la probabilité de jeton absolue dans le sujet (p(token|topic), lambda = 1) ou préférer le jeton relatif probabilité dans le sujet (p(token|topic)/p(token), lambda = 0). Jouer avec cette visualisation est souvent le meilleur moyen de se familiariser avec les sujets identifiés. Et – plus important encore – trouver une étiquette de sujet appropriée pour chacun des sujets! Ceci est également dune grande aide pour décider si le modèle de sujet actuel suffit pour votre tâche en aval ou si vous souhaitez modifier certains paramètres (k, méthode, seed, …) ou même les données (modifier les documents ou jetons sélectionnés) pour obtenir un meilleur résultat.

Itérations vers votre modèle de thème gagnant

Nous lavons déjà dit: topic modeling est – tout comme lanalyse de cluster et dautres non supervisés techniques dapprentissage automatique – plus dart que de science! Par conséquent, vous allez probablement passer un certain temps à peaufiner votre modèle de sujet avant de vous retrouver avec votre «meilleur» modèle de sujet. Nous mettons «meilleur» entre guillemets car ce qui est «meilleur» dépend fortement à la fois des applications que vous avez en tête avec votre modèle de sujet et de votre créativité! Cest donc assez subjectif! Pendant le processus de recherche de votre «meilleur» modèle de sujet, vous avez probablement des moments que vous pensez ne pas trouver de solution que vous pouvez utiliser et d’autres moments où vous ressentez l’extase de voir ces sujets intrinsèques venir vivre à travers le jetons qui le dominent.Pour créer votre modèle de sujet optimal, voici vos outils les plus importants:

  • change k – le nombre de sujets
  • exclut les jetons supplémentaires « trop ​​dominants (fréquents) » (ils peuvent encore être trop dominant et supprimer la recherche de sous-domaines plus intéressants dans votre texte)
  • augmenter la fréquence minimale du jeton à se concentrer sur les jetons les plus dominants
  • exemples de documents pour se concentrer sur les documents les plus pertinents pour trouver des sujets importants , nous pourrions changer la stratégie déchantillonnage

En plus de ces paramètres, vous avez également des paramètres LDA que vous pouvez faire varier, mais daprès notre expérience, les paramètres ci-dessus sont les plus importants pour commencer. Alors que laugmentation ou la diminution de k signifie seulement que vous devez ré-estimer votre LDA, modifier léchantillonnage des avis ou les jetons à prendre en compte signifie que vous devez également recréer votre DTM.

Quavons-nous fait? Après beaucoup de sueur, quelques jurons et explorer de nombreuses solutions, nous avons fait ce qui suit:

  • changer k en 7 sujets.
  • Fusionner quelques jetons et exclure un certain nombre de sujets trop fréquents jetons
  • Explorez plusieurs résultats de départ (avec nstart et best=FALSE) pour trouver le meilleur modèle de sujet interprétable **
  • Enfin, sélectionnez la meilleure valeur de départ et définissez best=TRUE pour ne conserver que le meilleur modèle LDA

** Le permet de faire plusieurs courses en spécifiant le paramètre nstart pour définir le nombre de courses et avec seed défini les graines pour guider ces courses. Lorsque vous définissez best=TRUE, seule la solution avec la meilleure probabilité de journalisation est conservée, la définir sur best=FALSE vous permet dexplorer tous les modèles de sujets (le Lobjet renvoyé est maintenant une liste de tous les modèles de sujets).

Litération et la comparaison des résultats ont abouti à 7 sujets que nous pourrions bien étiqueter avec des noms de sujets dont les critiques parlent lorsquils évaluent des restaurants. Voici notre solution pour les sujets avec les libellés déjà ajoutés:

DTM dimensions: 
Documents (10152) x Tokens (12496) (average token frequency: 416.26)

Pour explorer les LDAvis interactifs à partir de la sérigraphie ci-dessous, accédez à ce fichier html .

Bien que certains sujets soient encore un mélange de choses, nous sommes heureux dutiliser cette solution pour prédire les étoiles Michelin. Nous voyons des distinctions claires entre les sujets identifiés et nous nous attendons à ce que la traduction du texte brut de chaque critique en un vecteur de probabilités pour ces sujets aidera à prédire les étoiles Michelin. Voici un aperçu des sujets avec les libellés que nous leur attribuons et leurs jetons les plus fréquents:

Modélisation de sujets – en résumé

Dans ce article, nous vous avons montré comment créer un modèle de sujet pour identifier les constructions latentes ou les «  sujets dont les critiques parlent dans leurs critiques de restaurants. Comme vous l’avez vu, il y a pas mal de choix à faire avant d’avoir notre «meilleur» modèle thématique final et certains de ces choix ne sont pas faciles à faire car les statistiques d’orientation ne sont pas toujours disponibles. Rappelez-vous ce que nous avons dit précédemment: la modélisation de sujets est une technique non supervisée et cela en fait «plus un art que de la science». Ce qui est important dans de nombreux cas d’utilisation, c’est que vous vous retrouvez avec des sujets que vous êtes en mesure d’interpréter et d’expliquer, car vous devez être capable d’interpréter les fonctionnalités que vous avez créées ici tout en les utilisant dans des tâches en aval. Avec notre modèle à 7 sujets, nous sommes convaincus que nous pouvons le faire!

Avantages

Une grande chose à propos de la modélisation de sujets – et en particulier LDA – est que lorsque tous les ajustements et les difficultés sont fait, vous risquez de vous retrouver avec un nombre gérable de sujets bien interprétables. Cela vous permet dajouter pour chaque document la distribution sur ces sujets. Étant donné que les probabilités de sujet totalisent 1 et sont des valeurs numériques, vous avez maintenant résumé les textes non structurés et de différentes longueurs en quelques nouvelles fonctionnalités faciles à traiter. Fonctionnalités qui peuvent être dune grande valeur dans les tâches en aval comme la modélisation prédictive ou les tâches de segmentation.

Inconvénients

Le plus gros inconvénient de la modélisation de sujets est probablement la subjectivité dans la recherche du «meilleur» modèle . Par conséquent, il vous faudra peut-être du temps et des efforts pour trouver une solution de modèle de sujet appropriée. Il peut y avoir plusieurs solutions statistiquement équivalentes qui peuvent différer considérablement dans les sujets résultants.Par conséquent, lorsque vous réexécutez lanalyse avec des données ou des paramètres légèrement différents, il y a toujours un risque que linterprétation du modèle soit radicalement modifiée. Surtout lorsquaucune solution de sujet dominant nest présente dans vos données textuelles, chaque exécution peut entraîner des résultats différents. Assurez-vous de garder une trace des exécutions précédentes, en sécurisant les semences et les ensembles de données utilisés afin de ne pas ressentir la frustration de trouver une belle solution de modèle de sujet que vous pouvez bien interpréter et décrire, puis de la perdre pour ne plus jamais la restaurer.

Regard vers lavenir

Plus tôt, nous avons précisé notre objectif: prédire quels restaurants ont une étoile Michelin. Dans lun de nos (prochains blogs), nous utilisons donc la répartition par thèmes dans les textes davis pour prédire si lavis est un avis Michelin ou non. Nous agrégons également ces prévisions sur toutes les critiques quun restaurant a eues pour évaluer dans quelle mesure nous sommes en mesure de prédire les étoiles Michelin. En dehors de cela, nous utiliserons (dautres techniques) (word2vec, GloVe, BERT) pour résumer les textes des critiques en fonctionnalités que nous pouvons utiliser pour prédire les étoiles Michelin et nous montrerons quelle approche fonctionne le mieux. Nous commencerons par présenter les techniques dincorporation de mots (word2vec, GloVe) dans notre prochain blog et vous montrerons comment transformer nos textes de critique en incorporations et comment les interpréter et les visualiser.

Cet article fait partie de notre PNL avec série R . Vous trouverez un aperçu de tous les articles de la série (ici).

  • Précédente dans cette série: (Préparation des données pour le traitement du langage naturel)
  • Suivante dans cette série : (Formation du modèle dintégration de mots et visualisation des résultats)

Voulez-vous faire cela vous-même? Nhésitez pas à télécharger le Databricks Notebook ou le R-script depuis la page gitlab .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *