L'action `applyCategory` permet de catégoriser du texte en utilisant un modèle de catégorie préalablement compilé (fichier MCO). Elle applique les règles linguistiques définies dans le modèle pour assigner une ou plusieurs catégories aux documents textuels fournis en entrée.
| Paramètre | Description |
|---|---|
| casOut | Spécifie la table de sortie CAS pour les résultats de la catégorisation. |
| docId | Spécifie le nom de la variable d'identifiant unique dans la table d'entrée pour référencer chaque document. |
| docType | Spécifie le type de document. 'TEXT' pour du texte brut, 'XML' pour des documents au format XML. |
| groupedMatchOut | Spécifie la table de sortie pour les correspondances groupées par catégorie pour chaque document. |
| matchDelimiter | Spécifie le délimiteur à utiliser pour les instances de texte correspondant dans la table de sortie 'groupedMatchOut'. |
| matchOut | Spécifie la table de sortie pour les termes correspondants des catégories. |
| model | Spécifie la table CAS d'entrée qui contient le modèle de catégorisation (fichier MCO). |
| modelOut | Spécifie la table de sortie pour le modèle de catégories. |
| scoringAlgorithm | Spécifie l'algorithme de scoring à utiliser. 'FREQUENCY' (par défaut) ou 'WEIGHTED'. |
| table | Spécifie la table de données d'entrée contenant le texte à catégoriser. |
| text | Spécifie le nom de la variable de texte dans la table d'entrée sur laquelle le modèle est appliqué. |
Ce bloc de code crée une table CAS nommée 'reviews' contenant des commentaires de clients. Cette table sera utilisée pour appliquer le modèle de catégorisation.
| 1 | DATA casuser.reviews; |
| 2 | INFILE DATALINES delimiter='|'; |
| 3 | LENGTH text $500. id $10.; |
| 4 | INPUT text$ id$; |
| 5 | DATALINES; |
| 6 | I love my new SAS software! It's amazing.|1 |
| 7 | This is the best software I have ever used.|2 |
| 8 | I am not a fan of this product. It is difficult to use.|3 |
| 9 | SAS is a great company with great products.|4 |
| 10 | ; |
| 11 | RUN; |
Cet exemple montre comment appliquer un modèle de catégorie (stocké dans 'category_model_table') à la colonne 'text' de la table 'reviews' et stocker les résultats dans la table 'reviews_categorized'.
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='reviews'}, |
| 4 | model={name='category_model_table'}, |
| 5 | docId='id', |
| 6 | text='text', |
| 7 | casOut={name='reviews_categorized', replace=true}; |
| 8 | RUN; |
Cet exemple complet applique un modèle de catégorie, génère une table de sortie principale ('reviews_categorized'), une table des correspondances détaillées ('reviews_matches') et une table des correspondances groupées ('reviews_grouped_matches'). L'algorithme de scoring 'WEIGHTED' est utilisé.
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='reviews', caslib='casuser'}, |
| 4 | model={name='category_model_table', caslib='casuser'}, |
| 5 | docId='id', |
| 6 | text='text', |
| 7 | scoringAlgorithm='WEIGHTED', |
| 8 | casOut={name='reviews_categorized', caslib='casuser', replace=true}, |
| 9 | matchOut={name='reviews_matches', caslib='casuser', replace=true}, |
| 10 | groupedMatchOut={name='reviews_grouped_matches', caslib='casuser', replace=true}, |
| 11 | matchDelimiter='|'; |
| 12 | RUN; |
Une équipe marketing souhaite classifier automatiquement les emails entrants des clients pour identifier rapidement les retours positifs, les problèmes techniques et les questio...
Une plateforme e-commerce doit analyser des milliers d'avis produits chaque jour pour détecter les tendances (ex: 'Problème de livraison', 'Qualité excellente', 'Autonomie batte...
Un centre de support technique automatise la classification des tickets d'incident. La qualité des données est hétérogène : certains tickets n'ont pas de description, les identi...