ldaScore
Description
L'action `ldaScore` permet de scorer une table de documents en utilisant un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). de topics (sujets) basé sur l'allocation de Dirichlet latenteModèle probabiliste de topic modeling (LDA) qui identifie des thèmes cachés dans un corpus de textes en associant chaque document à un mélange de sujets et chaque sujet à une distribution de mots. (LDA) préalablement entraîné. C'est un peu comme si vous demandiez à SAS de lire une montagne de documents et de deviner de quoi ils parlent en se basant sur ce qu'il a déjà appris. Pratique pour s'épargner des heures de lecture fastidieuse !
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| docDistOut | Spécifie la table en mémoire qui stockera la proportion de topics pour chaque document (la table de sortie). |
| docId | Spécifie la variable (caractère ou numérique) de la table d'entrée qui contient l'identifiant unique de chaque document. Indispensable pour s'y retrouver ! |
| modelTable | Spécifie la table d'entrée contenant la distribution des topics du modèle LDA (doit obligatoirement inclure _TopicID_, _TermID_, _Term_, et _Probability_). |
| nIters | Spécifie le nombre maximum d'itérations pour le processus de scoring. La valeur par défaut est 10. |
| seed | Spécifie la graine pour le générateur de nombres aléatoires. Fixez une valeur supérieure à 0 si vous souhaitez que vos résultats soient reproductibles à chaque exécution. |
| table | Spécifie la table d'entrée contenant les documents textuels que vous souhaitez scorer. |
| text | Spécifie les variables textuelles de la table d'entrée à utiliser pour le scoring. |
| tm | Permet de configurer le parsing (l'analyse) du texte : langue (language), entités (entities), groupes nominaux (nounGroups), et la racinisation (stemming). |
Préparation des données
Création des données d'exemple
Création d'une table de documents à scorer. Notez que l'action ldaScore nécessite un modèle déjà existant (créé au préalable via l'action ldaTrain).
| 1 | DATA mycas.documents; |
| 2 | LENGTH docId 8 text $100; |
| 3 | INFILE DATALINES dlm='|'; |
| 4 | INPUT docId text; |
| 5 | DATALINES; |
| 6 | 1|Le chat dort sur le canapé. |
| 7 | 2|L'analyse de données est fascinante. |
| 8 | 3|Un chien court dans le jardin. |
| 9 | ; |
| 10 | RUN; |
Exemples d'utilisation
Scoring basique avec LDA
Application d'un modèle LDA existant sur une nouvelle table de documents avec les paramètres minimaux.
| 1 | PROC CAS; |
| 2 | ldaTopic.ldaScore |
| 3 | TABLE={name="documents"} |
| 4 | modelTable={name="lda_model"} /* Supposé créé par ldaTrain */ |
| 5 | docId="docId" |
| 6 | text={"text"} |
| 7 | docDistOut={name="doc_topics", replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Résultat Attendu :
Scoring LDA avec paramètres de texte avancés et reproductibilité
Scoring avec spécification de la langue française, activation de la racinisation (stemming), et limitation des itérations, tout en fixant la graine aléatoire pour obtenir des résultats constants.
| 1 | PROC CAS; |
| 2 | ldaTopic.ldaScore |
| 3 | TABLE={name="documents"} |
| 4 | modelTable={name="lda_model"} |
| 5 | docId="docId" |
| 6 | text={"text"} |
| 7 | nIters=15 |
| 8 | seed=98765 |
| 9 | tm={language="FRENCH", stemming=TRUE, nounGroups=FALSE, entities="NONE"} |
| 10 | docDistOut={name="doc_topics_advanced", replace=true}; |
| 11 | RUN; |
| 12 | QUIT; |