conditionalRandomFields

crfTrain

##set_conditionalrandomfields

Description

L'action crfTrain du set d'actions est l'outil de prédilection pour l'entraînement de modèles de Champs Aléatoires ConditionnelsModèle statistique (CRF) prédisant des séquences d'étiquettes en tenant compte du contexte global. Idéal en NLP pour l'extraction d'entités nommées ou la segmentation de texte structuré. (Conditional Random Fields). Ces modèles sont particulièrement performants pour l'étiquetage de séquences, comme l'identification d'entités nommées ou l'analyse syntaxique (Part-of-Speech taggingProcessus de NLP (étiquetage morphosyntaxique) qui attribue une catégorie grammaticale (nom, verbe, adjectif, etc.) à chaque mot d'un texte en fonction de sa définition et de son contexte.). Imaginez que vous apprenez à votre serveur CASMoteur analytique "in-memory" de SAS Viya. Il traite les données en parallèle (MPP) sur plusieurs nœuds pour offrir une puissance de calcul massive et une exécution ultra-rapide des actions. à reconnaître la structure d'une phrase en regardant non seulement chaque mot, mais aussi ses voisins. C'est du Machine LearningBranche de l'IA utilisant des algorithmes pour apprendre des modèles à partir de données. Il permet d'automatiser des prédictions ou des décisions sans programmation explicite de chaque règle. textuel de haut vol, mais sans le vertige ! .

Syntaxe Officielle
conditionalRandomFields.crfTrain /
table={caslib="nom_caslib", name="nom_table", where="filtre"}
target="variable_cible"
template="gabarit_caracteristiques"
model={attr={name="table_attr"}, attrfeature={name="table_attr_feat"}, feature={name="table_feat"}, label={name="table_label"}, template={name="table_temp"}}
nloOpts={algorithm="LBFGS", optmlOpt={maxIters=10, regL1=0.1}}

Paramètres Clés

Nom du paramètre Description
table La table CAS d'entrée contenant les données d'entraînement (mots et étiquettes).
target Le nom de la variable cible (l'étiquette ou le label) à prédire dans la séquence.
template Chaîne de caractères définissant le gabarit (template) pour l'extraction des caractéristiques contextuelles.
model Dictionnaire spécifiant les noms des tables CAS de sortie qui stockeront la structure et les poids du modèle entraîné (attr, feature, etc.).
nloOpts Options pour l'optimisation non linéaire, incluant l'algorithme (LBFGS, SGD, ADAM) et les paramètres de convergence.

Préparation des données

Préparation des données d'entraînement

Création d'une table simple avec des mots et des étiquettes (Tag) pour l'extraction d'entités.

1DATA casuser.train_data;
2 LENGTH Word $20 Tag $10;
3 INPUT Word $ Tag $ Sequence_ID;
4 DATALINES;
5Jean PERS 1
6mange O 1
7une O 1
8pomme O 1
9Paris LOC 2
10est O 2
11belle O 2
12;
13RUN;

Exemples d'utilisation

Entraînement CRF basique

Un exemple minimaliste pour lancer l'entraînement avec les paramètres obligatoires.

1PROC CAS;
2 conditionalRandomFields.crfTrain /
3 TABLE={name="train_data"},
4 target="Tag",
5 template="U00:%x[-1,0]
6U01:%x[0,0]
7U02:%x[1,0]",
8 model={attr={name="crf_attr"}, attrfeature={name="crf_attrfeature"}, feature={name="crf_feature"}, label={name="crf_label"}, template={name="crf_template"}};
9RUN;
Résultat Attendu :
Le journal affiche les statistiques d'entraînement et les tables crf_* sont créées dans la caslib active.
Entraînement CRF avec Optimisation Avancée

Entraînement utilisant l'algorithme LBFGS avec régularisation L2 et un nombre maximal d'itérations pour éviter que le serveur ne s'épuise à la tâche.

1PROC CAS;
2 conditionalRandomFields.crfTrain /
3 TABLE={name="train_data"},
4 target="Tag",
5 template="U00:%x[-1,0]
6U01:%x[0,0]
7U02:%x[1,0]",
8 model={
9 attr={name="model_attr", replace=true},
10 attrfeature={name="model_attrfeat", replace=true},
11 feature={name="model_feat", replace=true},
12 label={name="model_label", replace=true},
13 template={name="model_temp", replace=true}
14 },
15 nloOpts={
16 algorithm="LBFGS",
17 optmlOpt={
18 maxIters=50,
19 regL2=0.5,
20 fConv=1e-6
21 },
22 printOpt={
23 printLevel="PRINTDETAIL",
24 printFreq=5
25 }
26 };
27RUN;
Résultat Attendu :
Entraînement détaillé avec affichage des itérations tous les 5 cycles et création des tables de modèle optimisées.