applyConcept
Description
L'action extrait des concepts à partir de documents textuels en utilisant un modèleReprésentation mathématique entraînée sur des données pour capturer des tendances, prédire des résultats ou classifier des observations via des algorithmes (Régression, Forêt aléatoire, Gradient Boosting). d'extraction de concepts prédéfini (généralement un fichier LI compilé). Imaginez-la comme un lecteur très attentif qui surligne exactement ce que vous cherchez, que ce soit des noms d'entreprises, des montants ou des entités personnalisées ! Elle fait partie intégrante de la suite .
Paramètres Clés
| Nom du paramètre | Description |
|---|---|
| casOut | Spécifie la table CAS de sortie qui contiendra les informations sur les résultats de correspondance des concepts (les fameux 'concept matches'). |
| docId | Spécifie le nom de la variable de la table CAS qui contient les identifiants uniques des documents. |
| dropConcepts | Spécifie une liste de concepts principaux à exclure des tables de sortie CAS. Pratique pour faire le ménage si vous ne voulez pas être inondé par des concepts génériques ! |
| factOut | Spécifie la table CAS de sortie qui contiendra les informations sur les résultats de correspondance des faits (fact matches). |
| language | Spécifie la langue utilisée dans la table d'entrée. Par défaut : 'ENGLISH'. |
| litiChunkSize | Spécifie la taille des blocs utilisés lors du traitement d'un document (ex: '32K', '1M', 'ALL'). Réduire cette taille aide à économiser la mémoire sur les documents volumineux. |
| matchType | Spécifie la méthode de correspondance souhaitée : 'ALL' (toutes), 'BEST' (la meilleure) ou 'LONGEST' (la plus longue). |
| model | Spécifie la table CAS d'entrée contenant le modèle LI défini par l'utilisateur. S'il n'est pas fourni, le modèle de base intégré est utilisé par défaut. |
| parseTableIn | Spécifie le nom d'une table CAS de documents pré-analysés générée via . Idéal pour booster les performances si vous relancez l'analyse plusieurs fois avec des règles du type CLAUS_n ! |
| parseTableOut | Spécifie une table de sortie CAS pour stocker les documents pré-analysés, à réutiliser plus tard en tant que . |
| ruleMatchOut | Spécifie la table CAS de sortie contenant les informations sur le déclenchement des règles, qui peut être ensuite réutilisée par l'action . |
| table | Spécifie la table CAS d'entrée principale qui contient les documents textuels bruts à analyser. |
| text | Spécifie le nom de la variable de la table CAS qui contient le texte brut à traiter. |
Préparation des données
Création des données textuelles de test
Nous allons créer une petite table contenant des phrases simples dans la bibliothèque CASUSER pour tester notre extracteur de concepts.
| 1 | DATA casuser.textes_test; LENGTH docId 8 texte $200; docId=1; texte='John Doe works at SAS Institute in Cary, NC.'; OUTPUT; docId=2; texte='Jane Smith loves coding in Python and Lua.'; OUTPUT; RUN; |
Exemples d'utilisation
Application du modèle de concept de base
Cet exemple applique l'action %%applyConcept%% avec la configuration minimale requise. En omettant le paramètre %%model%%, le système est intelligent et utilise son modèle de base !
| 1 | PROC CAS; textRuleScore.applyConcept / TABLE={name='textes_test', caslib='casuser'} docId='docId' text='texte' casOut={name='concepts_out', caslib='casuser', replace=true} factOut={name='facts_out', caslib='casuser', replace=true}; RUN; QUIT; |
Résultat Attendu :
Extraction avancée avec filtrage de concepts et optimisation mémoire
Dans cette approche plus chirurgicale, nous configurons le type de correspondance sur la plus longue (%%LONGEST%%), divisons le traitement textuel en petits morceaux de 16 Ko (%%litiChunkSize%%), ignorons volontairement un concept spécifique (%%nlpPerson%%) et exportons les règles matchées (%%ruleMatchOut%%).
| 1 | PROC CAS; textRuleScore.applyConcept / TABLE={name='textes_test', caslib='casuser'} docId='docId' text='texte' language='ENGLISH' matchType='LONGEST' litiChunkSize='16K' dropConcepts={'nlpPerson'} casOut={name='concepts_out_adv', caslib='casuser', replace=true} ruleMatchOut={name='rulematch_out', caslib='casuser', replace=true}; RUN; QUIT; |