crfTrain
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 ! .
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.
| 1 | DATA casuser.train_data; |
| 2 | LENGTH Word $20 Tag $10; |
| 3 | INPUT Word $ Tag $ Sequence_ID; |
| 4 | DATALINES; |
| 5 | Jean PERS 1 |
| 6 | mange O 1 |
| 7 | une O 1 |
| 8 | pomme O 1 |
| 9 | Paris LOC 2 |
| 10 | est O 2 |
| 11 | belle O 2 |
| 12 | ; |
| 13 | RUN; |
Exemples d'utilisation
Entraînement CRF basique
Un exemple minimaliste pour lancer l'entraînement avec les paramètres obligatoires.
| 1 | PROC CAS; |
| 2 | conditionalRandomFields.crfTrain / |
| 3 | TABLE={name="train_data"}, |
| 4 | target="Tag", |
| 5 | template="U00:%x[-1,0] |
| 6 | U01:%x[0,0] |
| 7 | U02:%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"}}; |
| 9 | RUN; |
Résultat Attendu :
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.
| 1 | PROC CAS; |
| 2 | conditionalRandomFields.crfTrain / |
| 3 | TABLE={name="train_data"}, |
| 4 | target="Tag", |
| 5 | template="U00:%x[-1,0] |
| 6 | U01:%x[0,0] |
| 7 | U02:%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 | }; |
| 27 | RUN; |