?>
Die Aktion `brScore` bewertet Textdaten basierend auf einem Satz boolescher Regeln, die typischerweise von der Aktion `brTrain` generiert werden. Sie identifiziert, welche Dokumente in einem Eingabedatensatz die Kriterien der einzelnen Regeln erfüllen, und erstellt eine Ausgabetabelle mit den Übereinstimmungsergebnissen. Diese Aktion ist nützlich, um zuvor extrahierte Regeln auf neue Daten anzuwenden und Dokumente entsprechend zu kategorisieren oder zu filtern.
| Parameter | Beschreibung |
|---|---|
| casOut | Gibt eine Datentabelle an, die die Ergebnisse des Regelabgleichs enthalten soll (ob ein Dokument eine Regel erfüllt). |
| docId | Gibt die Variable in der Eingabedatentabelle an, die die Dokument-ID enthält. |
| nThreads | Gibt die Anzahl der pro Knoten zu verwendenden Threads an. Der Wert muss eine ganze Zahl sein. |
| ruleTerms | Gibt eine Datentabelle an, die die Begriffe in jeder Regel enthält, die von der Trainingsaktion generiert wird. |
| table | Gibt die Eingabedatentabelle für das Regel-Scoring an. |
| termId | Gibt die Variable in der Eingabedatentabelle an, die die Begriffs-ID enthält. |
| useOldNames | Gibt an, ob die alten Variablennamen verwendet werden sollen, die in HPBOOLRULE verwendet wurden. |
Dieser Code erstellt zwei Beispieldatensätze: `mycas.reviews` enthält die Dokumente (in diesem Fall Filmkritiken) mit einer ID und dem Text. `mycas.rule_terms` definiert die booleschen Regeln, die für das Scoring verwendet werden. Regel 1 wird durch das Vorhandensein von 'schlecht' ODER 'langweilig' ausgelöst, während Regel 2 durch 'großartig' UND 'lustig' ausgelöst wird.
data mycas.reviews; infile datalines delimiter='|'; length text $200.; input docId text $; datalines; 1|Dieser Film war schlecht und langweilig. 2|Eine großartige Komödie, sehr lustig. 3|Nicht mein Fall, ziemlich langweilig. 4|Absolut großartig, aber nicht lustig. ; run; data mycas.rule_terms; infile datalines delimiter=','; input _RuleId_ $ _Term_ $ _And_; datalines; 1,schlecht,0 1,langweilig,0 2,großartig,1 2,lustig,1 ; run;
Dieses Beispiel zeigt, wie die Aktion `brScore` verwendet wird, um eine Eingabedatentabelle (`reviews_bow`, die aus `tpParse` erstellt wurde) anhand eines Regelsatzes (`rule_terms`) zu bewerten. Die Ergebnisse werden in der Tabelle `review_matches` gespeichert.
| 1 | PROC CAS; |
| 2 | textMining.tpParse / |
| 3 | documents={{name='reviews'}} |
| 4 | docId='docId' |
| 5 | text='text' |
| 6 | casOut={name='reviews_bow', replace=true} |
| 7 | termsOut={name='reviews_terms', replace=true}; |
| 8 | boolRule.brScore / |
| 9 | TABLE={name='reviews_bow'} |
| 10 | ruleTerms={name='rule_terms'} |
| 11 | docId='_DOCUMENT_' |
| 12 | termId='_TERMNUM_' |
| 13 | casOut={name='review_matches', replace=true}; |
| 14 | RUN; |
Dieses Beispiel führt ein Scoring durch und gibt explizit die CAS-Bibliothek für die Ein- und Ausgabetabellen an. Zusätzlich wird die Option `useOldNames` auf 'true' gesetzt, um die Kompatibilität mit älteren Versionen der Aktion sicherzustellen, was zu unterschiedlichen Spaltennamen in der Ausgabe führt.
| 1 | PROC CAS; |
| 2 | textMining.tpParse / |
| 3 | documents={{name='reviews', caslib='mycas'}} |
| 4 | docId='docId' |
| 5 | text='text' |
| 6 | casOut={name='reviews_bow', caslib='mycas', replace=true} |
| 7 | termsOut={name='reviews_terms', caslib='mycas', replace=true}; |
| 8 | boolRule.brScore / |
| 9 | TABLE={name='reviews_bow', caslib='mycas'} |
| 10 | ruleTerms={name='rule_terms', caslib='mycas'} |
| 11 | docId='_DOCUMENT_' |
| 12 | termId='_TERMNUM_' |
| 13 | useOldNames=true |
| 14 | casOut={name='review_matches_legacy', caslib='mycas', replace=true}; |
| 15 | RUN; |