conditionalRandomFields

crfScore

Description

L'action `crfScore` est utilisée pour évaluer des documents en utilisant un modèle de Champs Aléatoires Conditionnels (CRF) préalablement entraîné. Elle applique le modèle CRF aux données textuelles d'entrée pour prédire des séquences d'étiquettes, ce qui est couramment utilisé pour des tâches telles que la reconnaissance d'entités nommées (NER). L'action génère une table de sortie contenant les documents avec les étiquettes prédites pour chaque token.

conditionalRandomFields.crfScore result=results status=rc / casOut={caslib="string", compress=TRUE|FALSE, indexVars={"variable-name-1" <, "variable-name-2", ...>}, label="string", lifetime=64-bit-integer, maxMemSize=64-bit-integer, memoryFormat="DVR"|"INHERIT"|"STANDARD", name="table-name", promote=TRUE|FALSE, replace=TRUE|FALSE, replication=integer, tableRedistUpPolicy="DEFER"|"NOREDIST"|"REBALANCE", threadBlockSize=64-bit-integer, timeStamp="string", where={"string-1" <, "string-2", ...>}}, model={attr={...}, attrfeature={...}, feature={...}, label={...}, template={...}}, table={...}, target="string";
Paramètres
ParamètreDescription
casOutSpécifie la table de sortie CAS pour stocker les données étiquetées. Ce paramètre est obligatoire.
modelSpécifie les tables CAS contenant le modèle CRF entraîné. Ce paramètre est obligatoire et inclut les sous-paramètres pour les attributs, les caractéristiques, les étiquettes et le template du modèle.
tableSpécifie la table CAS d'entrée contenant les données à évaluer. Ce paramètre est obligatoire.
targetSpécifie le nom de la variable de prédiction (étiquette cachée) dans la table de sortie. Ce paramètre est obligatoire.
Préparation des Données Voir la fiche de ce code dataprep
Création des Données de Scoring

Ce bloc de code crée une table CAS nommée `score_data` contenant des phrases à évaluer. Chaque phrase est un document distinct identifié par un `doc_id`.

Copié !
1DATA score_data;
2 LENGTH text $200;
3 doc_id=1; text='Le Dr. Dupont travaille à Paris.'; OUTPUT;
4 doc_id=2; text='Mme. Martin a appelé SAS Institute.'; OUTPUT;
5RUN;
6 
7PROC CASUTIL;
8 load DATA=score_data out=score_data caslib='casuser' replace;
9QUIT;

Exemples

Cet exemple montre comment utiliser l'action `crfScore` pour évaluer des documents en utilisant un modèle CRF déjà chargé (`crf_model_tables`). La table de sortie `crf_scored_output` contiendra les prédictions.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 ACTION conditionalRandomFields.crfScore /
3 TABLE={caslib='casuser', name='score_data'},
4 model={label={name='crf_model_label', caslib='casuser'}, attr={name='crf_model_attr', caslib='casuser'}, feature={name='crf_model_feature', caslib='casuser'}, attrfeature={name='crf_model_attr_feature', caslib='casuser'}, template={name='crf_model_template', caslib='casuser'}},
5 casOut={caslib='casuser', name='crf_scored_output', replace=true},
6 target='predicted_label';
7RUN;
8QUIT;

Cet exemple illustre un appel complet à `crfScore`, en spécifiant explicitement les noms et les caslibs pour chaque composant du modèle CRF. Il charge d'abord les tables du modèle (`crf_model_*`) et les données de scoring (`score_data`) dans la caslib `casuser`, puis exécute le scoring. La table de sortie `crf_scored_output` est créée pour stocker les résultats, incluant la colonne `predicted_label` qui contient les étiquettes prédites.

Code SAS® / CAS Code en attente de validation par la communauté
Copié !
1PROC CAS;
2 /* Assurez-vous que les tables du modèle (crf_model_label, crf_model_attr, etc.) et la table de données (score_data) sont chargées dans la caslib 'casuser' */
3 conditionalRandomFields.crfScore /
4 TABLE={name='score_data', caslib='casuser'},
5 model={
6 label={name='crf_model_label', caslib='casuser'},
7 attr={name='crf_model_attr', caslib='casuser'},
8 feature={name='crf_model_feature', caslib='casuser'},
9 attrfeature={name='crf_model_attr_feature', caslib='casuser'},
10 template={name='crf_model_template', caslib='casuser'}
11 },
12 casOut={name='crf_scored_output', caslib='casuser', replace=true},
13 target='predicted_label';
14RUN;
15 
16 /* Afficher les résultats du scoring */
17 TABLE.fetch / TABLE={caslib='casuser', name='crf_scored_output'};
18RUN;
19QUIT;

FAQ

Quel est l'objectif de l'action `crfScore` ?
Quelles sont les tables d'entrée requises pour l'action `crfScore` ?
Quelle est la sortie principale produite par l'action `crfScore` ?
À quoi sert le paramètre `target` dans l'action `crfScore` ?