?> buildTermIndex - WeAreCAS
searchAnalytics

buildTermIndex

Beschreibung

L'action `buildTermIndex` est une étape fondamentale en 'Search Analytics'. Son rôle est de créer un 'index inversé' à partir d'une liste de termes ou de documents. Un index inversé est une structure de données qui mappe chaque terme unique à la liste des documents dans lesquels il apparaît. Cette structure est hautement optimisée pour des recherches textuelles rapides, bien plus performante qu'un balayage complet des documents originaux. Cette action peut soit partir d'une liste de termes déjà extraits, soit tokeniser du texte brut à la volée pour construire cet index.

searchAnalytics.buildTermIndex <result=results> <status=rc> / casOut={...} fields={"string-1" <, "string-2", ...>} language="ARABIC" | "CHINESE" | "CROATIAN" | "CZECH" | "DANISH" | "DUTCH" | "ENGLISH" | "FARSI" | "FINNISH" | "FRENCH" | "GERMAN" | "GREEK" | "HEBREW" | "HINDI" | "HUNGARIAN" | "INDONESIAN" | "ITALIAN" | "JAPANESE" | "KAZAKH" | "KOREAN" | "NORWEGIAN" | "POLISH" | "PORTUGUESE" | "ROMANIAN" | "RUSSIAN" | "SLOVAK" | "SLOVENE" | "SPANISH" | "SWEDISH" | "TAGALOG" | "THAI" | "TURKISH" | "UNIVERSAL" | "VIETNAMESE" table={...} tokenize=TRUE | FALSE;
Einstellungen
ParameterBeschreibung
casOutSpécifie la table de sortie qui contiendra l'index des termes. C'est une table optimisée pour les recherches futures.
fieldsUtilisé lorsque `tokenize=TRUE`. Spécifie la ou les colonnes de la table d'entrée contenant le texte brut à analyser et à indexer.
languageSpécifie la langue du texte pour appliquer les règles linguistiques appropriées (comme la lemmatisation) lors de la tokenisation. La valeur par défaut 'UNIVERSAL' effectue une tokenisation de base sans traitement linguistique avancé.
tableLa table CAS d'entrée. Selon la valeur de `tokenize`, il peut s'agir soit d'une table de documents avec du texte brut, soit d'une table de termes déjà extraits (format parent-enfant).
tokenizeUn booléen qui change radicalement le comportement de l'action. Si `FALSE` (défaut), l'action attend une table de termes déjà tokenisés. Si `TRUE`, l'action attend une table de documents et effectuera elle-même la tokenisation du texte spécifié dans le paramètre `fields`.
Datenaufbereitung
Jeux de données pour les tests

Cette étape crée deux tables pour illustrer les deux modes de fonctionnement. `myDocs` contient du texte brut pour l'exemple avec tokenisation. `myTermList` simule une liste de termes déjà extraits (par exemple, par `tpParse`) pour l'exemple de base.

data casuser.myDocs(label="Table de documents bruts");
 length docid 8 text $200;
 infile datalines dsd;
 input docid text $;
 datalines;
1,SAS Viya has powerful CAS actions.
2,Search analytics in SAS is great.
3,This is another document about SAS.
;
run;

data casuser.myTermList(label="Table de termes pré-calculés");
 length _Term_ $ 20 _Parent_ 8;
 infile datalines dsd;
 input _Term_ $ _Parent_;
 datalines;
sas,1
viya,1
cas,1
action,1
search,2
analytics,2
sas,2
index,3
term,3
sas,3
;
run;

Beispiele

C'est le cas d'usage le plus courant. On suppose que vous avez déjà une table (`myTermList`) qui liste les termes et les documents où ils apparaissent (format 'long'). L'action `buildTermIndex` va transformer cette liste en un format d'index inversé, beaucoup plus efficace pour la recherche. L'option `tokenize` est à `FALSE` par défaut.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 searchAnalytics.buildTermIndex /
3 TABLE={name="myTermList"}
4 casOut={name="termIndex_simple", replace=true};
5RUN;
6QUIT;
Ergebnis :
Crée la table CAS `termIndex_simple` dans la caslib active. Cette table contient une ligne par terme unique et une colonne binaire (_PARENT_) qui stocke de manière compressée la liste des ID de documents où ce terme apparaît. C'est la structure classique d'un index inversé.

Cet exemple part d'une table de documents (`myDocs`) et utilise les options pour effectuer l'analyse complète à la volée. `tokenize=TRUE` demande à l'action de découper le texte. `language='ENGLISH'` applique les règles linguistiques anglaises (lemmatisation, etc.). `fields={'text'}` indique la colonne à analyser.

SAS® / CAS-Code
Kopiert!
1PROC CAS;
2 searchAnalytics.buildTermIndex /
3 TABLE={name="myDocs"}
4 casOut={name="termIndex_advanced", replace=true}
5 tokenize=TRUE
6 language="ENGLISH"
7 fields={"text"};
8RUN;
9QUIT;
Ergebnis :
Crée la table CAS `termIndex_advanced`. L'action a d'abord tokenisé le contenu de la colonne 'text', puis a construit l'index inversé. Les termes seront en minuscules et potentiellement lemmatisés (par exemple, 'actions' deviendrait 'action'). Le résultat est structurellement similaire à l'exemple 1, mais généré directement à partir de texte brut.

FAQ

Quelle est la fonction principale de l'action `buildTermIndex` ?
Quels sont les deux paramètres obligatoires pour cette action ?
À quoi sert le paramètre `language` et quelle est sa valeur par défaut ?
Que contrôle le paramètre `tokenize` ?
Comment peut-on limiter le comptage de la fréquence des termes à certains champs ?