langModel

nGramCount

##set_langmodel

Description

L'action langModel.nGramCount est utilisée pour compter les occurrences de n-grammes (séquences de N mots) au sein d'une table de n-grammes préalablement générée. C'est une étape fondamentale dans la construction de modèles de langage statistiques pour les systèmes de reconnaissance vocaleTechnologie SAS Viya transformant un signal audio en texte via des modèles de Deep Learning (RNN, CNN) pour l'analyse de conversations, le sous-titrage ou le contrôle par commandes vocales. (Speech-to-Text). Attention toutefois, cette action est considérée comme obsolète (deprecated) depuis la version 2026.01, alors ne vous y attachez pas trop, comme ce vieux pull que vous refusez de jeter ! Elle reste fonctionnelle pour assurer la compatibilité mais préparez doucement votre migration vers les nouvelles méthodes de NLPTraitement automatique du langage naturel visant à permettre aux machines de comprendre, d'interpréter et de générer du texte ou de la parole de manière cohérente et structurée. de Viya.

Syntaxe Officielle
langModel.nGramCount /
casOut={casouttable},
table={castable},
nGramTable={castable};

Paramètres Clés

Nom du paramètre Description
casOut Spécifie la table CAS de sortie qui contiendra les n-grammes identifiés et leurs fréquences respectives. C'est ici que le trésor est stocké .
table Indique la table d'entrée contenant les n-grammes. Cette table doit impérativement provenir de l'action textToNgram .
nGramTable Paramètre optionnel pour spécifier une table de n-grammes additionnelle. Très utile pour l'apprentissage incrémental, permettant de mettre à jour les comptes sans tout recommencer depuis le Big Bang.

Préparation des données

Préparation des n-grammes

Pour compter les n-grammes, nous devons d'abord transformer du texte brut en n-grammes via l'action textToNgram.

1DATA casuser.phrases; LENGTH text $100; INPUT text $; DATALINES; le chat mange la souris
2le chat dort sur le tapis
3la souris mange le fromage
4; RUN; PROC CAS; langModel.textToNGram / TABLE={name="phrases", caslib="casuser"}, casOut={name="ngram_input", caslib="casuser", replace=true}, n=2; RUN;

Exemples d'utilisation

Comptage simple de n-grammes

Cet exemple compte les bigrammes générés précédemment et stocke le résultat dans une table de fréquences.

1PROC CAS; langModel.nGramCount / TABLE={name="ngram_input", caslib="casuser"}, casOut={name="ngram_counts", caslib="casuser", replace=true}; RUN; PROC PRINT DATA=casuser.ngram_counts; RUN;
Résultat Attendu :
Une table affichant chaque bigramme (ex: 'le chat') et le nombre de fois où il apparaît dans le corpus initial.
Comptage avec options de sortie et apprentissage incrémental

Ici, nous utilisons toutes les options pour générer une table de sortie compressée et indexée, tout en illustrant l'usage théorique d'une table de n-grammes existante pour l'incrémentation.

1PROC CAS; langModel.nGramCount / TABLE={name="ngram_input", caslib="casuser"}, nGramTable={name="existing_model_ngrams", caslib="casuser"}, casOut={name="ngram_final_counts", caslib="casuser", replace=true, compress=true, label="Comptage final des n-grammes", indexVars={"nGram"}}; RUN;
Résultat Attendu :
Une table CAS nommée ngram_final_counts, compressée pour économiser de l'espace, avec un index sur la colonne nGram pour des recherches ultra-rapides.