Veröffentlicht am :

Auswahl und Ignorieren von Wortarten und Entitäten in PROC TEXTMINE

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Die TEXTMINE-Prozedur ist ein leistungsstarkes Werkzeug zur Erkundung und Vorbereitung von Textdaten. Dieses Beispiel demonstriert die Verwendung der Optionen `SELECT` und `IGNORE` innerhalb des `PARSE`-Unterbefehls, um die in die Analyse einbezogenen oder ausgeschlossenen Begriffe zu steuern. Durch die Angabe der zu ignorierenden Wortarten ('prep', 'det', 'prop') und Entitäten ('prop_misc') kann der Benutzer Rauschen filtern und sich auf die Schlüsselkonzepte des Textes konzentrieren. Das Beispiel verwendet Synonymlisten und Stoppwortlisten (Stop List) zur weiteren Datenvorbereitung. Die Eingabedaten werden intern über einen DATA-Schritt mit Datalines erstellt, und die Ergebnisse werden in CAS-Tabellen (`mycas.outterms`, `mycas.outparent`, `mycas.outchild`, `mycas.outconfig`) gespeichert.
Datenanalyse

Type : CREATION_INTERNE


Die Beispiele verwenden fiktive Textdaten, die mithilfe eines DATA-Schritts mit Datalines generiert wurden. Synonym- und Stoppworttabellen werden ebenfalls über Datalines erstellt.

1 Codeblock
PROC TEXTMINE Data
Erklärung :
Dieses Beispiel initialisiert die TEXTMINE-Prozedur mit grundlegenden Optionen für eine vollständige Textanalyse. Es erstellt eine Datentabelle (`mycas.CarNominations_Basic`), eine Synonymliste (`mycas.synds_Basic`) und eine Stoppwortliste (`mycas.stopList_Basic`). Die `TEXTMINE`-Prozedur wird anschließend ausgeführt, um Begriffe zu extrahieren, wobei Synonyme und Stoppwörter angewendet, aber keine spezifischen Wortarten oder Entitäten ignoriert werden. Die Ergebnisse werden in `mycas.outterms_basic` gespeichert und angezeigt.
Kopiert!
1/* Création de la table de données d'exemple */
2DATA mycas.CarNominations_Basic;
3 INFILE DATALINES delimiter='|' missover;
4 LENGTH text $70;
5 INPUT text$ i;
6 DATALINES;
7 The Ford Taurus is the World Car of the Year. |1
8 Hyundai won the award last year. |2
9 Toyota sold the Toyota Tacoma in bright green. |3
10 The Ford Taurus is sold in all colors except for lime green. |4
11 The Honda Insight was World Car of the Year in 2008. |5
12 ;
13RUN;
14 
15/* Création de la liste de synonymes */
16DATA mycas.synds_Basic;
17 INFILE DATALINES delimiter=',';
18 LENGTH Term $13;
19 INPUT Term $ TermRole $ Parent $ ParentRole$;
20 DATALINES;
21 honda insight, VEHICLE , honda, COMPANY,
22 ford taurus, VEHICLE, ford, COMPANY,
23 toyota tacoma, VEHICLE, toyota, COMPANY,
24 ;
25RUN;
26 
27/* Création de la liste de mots vides (stop list) */
28DATA mycas.stopList_Basic;
29 INFILE DATALINES delimiter='|' missover;
30 LENGTH term $25 role $40;
31 INPUT term$ role$;
32 DATALINES;
33 toyota| COMPANY
34 ;
35RUN;
36 
37/* Exécution de PROC TEXTMINE sans filtrage initial (ignore) */
38PROC TEXTMINE DATA=mycas.CarNominations_Basic;
39 doc_id i;
40 var text;
41 parse
42 termwgt = none
43 cellwgt = none
44 reducef = 1
45 entities = std
46 synonym = mycas.synds_Basic
47 stop = mycas.stopList_Basic
48 outterms = mycas.outterms_basic
49 ;
50RUN;
51 
52/* Affichage des termes extraits */
53DATA work.outterms_basic; SET mycas.outterms_basic; RUN;
54PROC PRINT DATA=work.outterms_basic; title 'Termes extraits sans filtrage'; RUN;
55 
2 Codeblock
PROC TEXTMINE Data
Erklärung :
Dieses Zwischenbeispiel verwendet die `SELECT`-Klausel mit der Option `IGNORE`, um Determinanten ('det') und Präpositionen ('prep') explizit aus der Analyse auszuschließen. Dies ermöglicht eine Verfeinerung der Liste der extrahierten Begriffe, indem oft weniger bedeutsame Wörter für die semantische Analyse entfernt werden. Die Daten und Listen aus dem vorherigen Beispiel werden wiederverwendet.
Kopiert!
1/* Création de la table de données d'exemple (réutilisation de l'exemple 1) */
2DATA mycas.CarNominations_Intermediate;
3 INFILE DATALINES delimiter='|' missover;
4 LENGTH text $70;
5 INPUT text$ i;
6 DATALINES;
7 The Ford Taurus is the World Car of the Year. |1
8 Hyundai won the award last year. |2
9 Toyota sold the Toyota Tacoma in bright green. |3
10 The Ford Taurus is sold in all colors except for lime green. |4
11 The Honda Insight was World Car of the Year in 2008. |5
12 ;
13RUN;
14 
15/* Création de la liste de synonymes (réutilisation de l'exemple 1) */
16DATA mycas.synds_Intermediate;
17 INFILE DATALINES delimiter=',';
18 LENGTH Term $13;
19 INPUT Term $ TermRole $ Parent $ ParentRole$;
20 DATALINES;
21 honda insight, VEHICLE , honda, COMPANY,
22 ford taurus, VEHICLE, ford, COMPANY,
23 toyota tacoma, VEHICLE, toyota, COMPANY,
24 ;
25RUN;
26 
27/* Création de la liste de mots vides (stop list) (réutilisation de l'exemple 1) */
28DATA mycas.stopList_Intermediate;
29 INFILE DATALINES delimiter='|' missover;
30 LENGTH term $25 role $40;
31 INPUT term$ role$;
32 DATALINES;
33 toyota| COMPANY
34 ;
35RUN;
36 
37/* Exécution de PROC TEXTMINE en ignorant les déterminants et les prépositions */
38PROC TEXTMINE DATA=mycas.CarNominations_Intermediate;
39 doc_id i;
40 var text;
41 parse
42 termwgt = none
43 cellwgt = none
44 reducef = 1
45 entities = std
46 synonym = mycas.synds_Intermediate
47 stop = mycas.stopList_Intermediate
48 outterms = mycas.outterms_intermediate
49 ;
50 select "det" "prep" / ignore;
51RUN;
52 
53/* Affichage des termes extraits */
54DATA work.outterms_intermediate; SET mycas.outterms_intermediate; RUN;
55PROC PRINT DATA=work.outterms_intermediate; title 'Termes après suppression des déterminants et prépositions'; RUN;
56 
3 Codeblock
PROC TEXTMINE Data
Erklärung :
Dieses erweiterte Beispiel zeigt, wie mehrere Arten von Wortarten und Entitäten gleichzeitig ignoriert werden können. Es verwendet zwei `SELECT`-Klauseln mit der Option `IGNORE`: eine für Eigennamen ('prop') und Adjektive ('adj') und eine weitere, um Entitäten vom Typ 'VEHICLE' zu ignorieren. Die Option `group="entities"` ist entscheidend, um spezifische Entitäten anzusprechen. Dies ermöglicht eine sehr feine Kontrolle über die Granularität der Textanalyse, indem ganze Kategorien von Begriffen entfernt werden, die für ein bestimmtes Analyseziel als irrelevant erachtet werden.
Kopiert!
1/* Création de la table de données d'exemple (réutilisation de l'exemple 1) */
2DATA mycas.CarNominations_Advanced;
3 INFILE DATALINES delimiter='|' missover;
4 LENGTH text $70;
5 INPUT text$ i;
6 DATALINES;
7 The Ford Taurus is the World Car of the Year. |1
8 Hyundai won the award last year. |2
9 Toyota sold the Toyota Tacoma in bright green. |3
10 The Ford Taurus is sold in all colors except for lime green. |4
11 The Honda Insight was World Car of the Year in 2008. |5
12 ;
13RUN;
14 
15/* Création de la liste de synonymes (réutilisation de l'exemple 1) */
16DATA mycas.synds_Advanced;
17 INFILE DATALINES delimiter=',';
18 LENGTH Term $13;
19 INPUT Term $ TermRole $ Parent $ ParentRole$;
20 DATALINES;
21 honda insight, VEHICLE , honda, COMPANY,
22 ford taurus, VEHICLE, ford, COMPANY,
23 toyota tacoma, VEHICLE, toyota, COMPANY,
24 ;
25RUN;
26 
27/* Création de la liste de mots vides (stop list) (réutilisation de l'exemple 1) */
28DATA mycas.stopList_Advanced;
29 INFILE DATALINES delimiter='|' missover;
30 LENGTH term $25 role $40;
31 INPUT term$ role$;
32 DATALINES;
33 toyota| COMPANY
34 ;
35RUN;
36 
37/* Exécution de PROC TEXTMINE en ignorant des types de mots et entités spécifiques */
38PROC TEXTMINE DATA=mycas.CarNominations_Advanced;
39 doc_id i;
40 var text;
41 parse
42 termwgt = none
43 cellwgt = none
44 reducef = 1
45 entities = std
46 synonym = mycas.synds_Advanced
47 stop = mycas.stopList_Advanced
48 outterms = mycas.outterms_advanced
49 ;
50 select "prop" "adj" / ignore; /* Ignorer les noms propres et les adjectifs */
51 select "VEHICLE" / group="entities" ignore; /* Ignorer les entités de type VEHICLE */
52RUN;
53 
54/* Affichage des termes extraits */
55DATA work.outterms_advanced; SET mycas.outterms_advanced; RUN;
56PROC PRINT DATA=work.outterms_advanced; title 'Termes après filtrage avancé (noms propres, adjectifs, entités VEHICLE)'; RUN;
57 
4 Codeblock
PROC TEXTMINE Data
Erklärung :
Dieses Beispiel verdeutlicht die Integration in die SAS Viya-Umgebung und die CAS-Engine. Es beginnt damit, sicherzustellen, dass eine CAS-Sitzung aktiv ist und eine `mycas`-Bibliothek definiert ist. Anschließend wird das Laden von Textdaten aus einer externen CSV-Datei (`temp_data.csv`) direkt in eine CAS-Tabelle (`casuser.ExternalCarData`) über `PROC CASUTIL` simuliert. Die `TEXTMINE`-Prozedur wird dann auf diese CAS-Tabelle angewendet, wobei elaboriertere Synonym- und Stoppwortlisten verwendet werden, die ebenfalls in CAS gespeichert sind. Kombinierte Filter werden angewendet, um spezifische Wortarten und Entitäten zu ignorieren, was die Analyse von Massendaten in einer verteilten Umgebung demonstriert. Die Optionen `termwgt=tf` und `cellwgt=log` werden für eine detailliertere Analyse der Termgewichtungen hinzugefügt.
Kopiert!
1/* Connexion à la session CAS (si non déjà connectée) */
2cas;
3 
4/* Création d'une bibliothèque CAS pour les données */
5LIBNAME mycas cas sessref=casauto;
6 
7/* Création d'un fichier CSV local pour simuler des données externes */
8filename temp_data temp lrecl=200;
9DATA _null_;
10 file temp_data;
11 put 'text|i';
12 put 'The electric car is the future.|1';
13 put 'Batteries are key for green energy.|2';
14 put 'Old gasoline cars are slowly disappearing.|3';
15 put 'Green technology is innovating rapidly.|4';
16 put 'New car models prioritize efficiency.|5';
17RUN;
18 
19/* Chargement des données CSV dans CAS */
20PROC CASUTIL incaslib="casuser" outcaslib="casuser" ;
21 load casdata="temp_data.csv" casout="ExternalCarData" FORMAT=csv replace;
22RUN;
23 
24/* Création d'une liste de synonymes enrichie pour CAS */
25DATA mycas.synds_CAS;
26 INFILE DATALINES delimiter=',';
27 LENGTH Term $15;
28 INPUT Term $ TermRole $ Parent $ ParentRole$;
29 DATALINES;
30 electric car, VEHICLE , electric_mobility, TECHNOLOGY,
31 green energy, CONCEPT, sustainability, THEME,
32 gasoline cars, VEHICLE, old_technology, TECHNOLOGY,
33 ;
34RUN;
35 
36/* Création d'une liste de mots vides étendue pour CAS */
37DATA mycas.stopList_CAS;
38 INFILE DATALINES delimiter='|' missover;
39 LENGTH term $25 role $40;
40 INPUT term$ role$;
41 DATALINES;
42 is| VERB
43 the| DET
44 of| PREP
45 car| NOUN
46 ;
47RUN;
48 
49/* Exécution de PROC TEXTMINE sur la table CAS avec filtrage combiné */
50PROC TEXTMINE DATA=casuser.ExternalCarData;
51 doc_id i;
52 var text;
53 parse
54 termwgt = tf
55 cellwgt = log
56 reducef = 2
57 entities = std
58 synonym = mycas.synds_CAS
59 stop = mycas.stopList_CAS
60 outterms = mycas.outterms_cas
61 outparent = mycas.outparent_cas
62 outchild = mycas.outchild_cas
63 outconfig = mycas.outconfig_cas
64 ;
65 select "VERB" "DET" "PREP" / ignore; /* Ignorer verbes, déterminants et prépositions */
66 select "TECHNOLOGY" / group="entities" ignore; /* Ignorer les entités de catégorie 'TECHNOLOGY' */
67RUN;
68 
69/* Affichage des termes extraits de la table CAS */
70DATA work.outterms_cas; SET mycas.outterms_cas; RUN;
71PROC PRINT DATA=work.outterms_cas; title 'Termes extraits de la table CAS après filtrage avancé'; RUN;
72 
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © SAS Institute Inc. All rights reserved.