calculateErrorRate
Description
L'action calculateErrorRate est l'outil ultime pour évaluer la précision de vos 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. (ASRL'ASR (Automatic Speech Recognition) est une technologie utilisant l'IA pour transcrire instantanément le langage parlé en texte, facilitant l'analyse vocale au sein de SAS Viya.). Elle compare des transcriptions générées (hypothèses) à des transcriptions de référence (la vérité terrain). Elle calcule les métriques standards de l'industrie : le taux d'erreur par mot (WER - Word Error RateLe Word Error Rate (WER) mesure la précision d'une transcription ASR en calculant le ratio d'insertions, de substitutions et de suppressions par rapport au nombre total de mots d'origine.), le taux d'erreur par caractère (CER - Character Error Rate) et le taux d'erreur par phrase (SER - Sentence Error RateLe Sentence Error Rate (SER) mesure le pourcentage de phrases transcrites par un système ASR contenant au moins une erreur par rapport au nombre total de phrases de référence.). Parce que bon, même si l'IA est géniale, elle a parfois besoin d'un petit rappel à l'ordre quand elle confond 'SAS Viya' avec 'Chat S'il Vous Plaît' !
Paramètres Clés
Préparation des données
Préparation des transcriptions pour évaluation
Nous créons deux tables : une table de référence avec les phrases exactes et une table d'hypothèse simulant les erreurs d'un moteur de reconnaissance vocale.
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / path="reference.csv", casout={name="ref_transcripts", replace=true}; |
| 3 | TABLE.loadTable / path="hypothesis.csv", casout={name="hyp_transcripts", replace=true}; |
| 4 | /* Ou création directe via datastep pour le test */ |
| 5 | DATA casuser.ref_transcripts; |
| 6 | LENGTH id 8 text $100; |
| 7 | id=1; text="le chat mange la souris"; OUTPUT; |
| 8 | id=2; text="sas viya est puissant"; OUTPUT; |
| 9 | RUN; |
| 10 | DATA casuser.hyp_transcripts; |
| 11 | LENGTH id 8 text $100; |
| 12 | id=1; text="le chat mange une souris"; OUTPUT; /* Une erreur de substitution */ |
| 13 | id=2; text="sas villa est puissant"; OUTPUT; /* Une erreur de substitution */ |
| 14 | RUN; |
| 15 | QUIT; |
Exemples d'utilisation
Calcul basique du taux d'erreur
Une comparaison directe entre deux tables en utilisant les paramètres par défaut (première colonne pour l'ID, seconde pour le texte).
| 1 | PROC CAS; langModel.calculateErrorRate / reference={name="ref_transcripts"}, TABLE={name="hyp_transcripts"}; RUN; QUIT; |
Résultat Attendu :
Évaluation complète avec mapping explicite des colonnes
Dans cet exemple, nous spécifions précisément quelles colonnes utiliser. C'est la méthode recommandée pour éviter que SAS ne choisisse les mauvaises colonnes par défaut (surtout si votre table est un joyeux bazar).
| 1 | PROC CAS; |
| 2 | langModel.calculateErrorRate / |
| 3 | reference={name="ref_transcripts", caslib="casuser"} |
| 4 | TABLE={name="hyp_transcripts", caslib="casuser"} |
| 5 | referenceId="id" |
| 6 | referenceText="text" |
| 7 | tableId="id" |
| 8 | tableText="text"; |
| 9 | RUN; |
| 10 | QUIT; |