nGramCount
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.
Paramètres Clés
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.
| 1 | DATA casuser.phrases; LENGTH text $100; INPUT text $; DATALINES; le chat mange la souris |
| 2 | le chat dort sur le tapis |
| 3 | la 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.
| 1 | PROC 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 :
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.
| 1 | PROC 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; |