?>
Die Aktion `applyCategory` wendet ein vordefiniertes Kategoriemodell (eine MCO-Datei) auf Textdaten an, um diese zu kategorisieren. Sie identifiziert und klassifiziert Dokumente basierend auf den im Modell definierten Regeln. Diese Aktion ist entscheidend für das Scoring von Texten, bei dem es darum geht, relevante Kategorien basierend auf dem Inhalt automatisch zuzuweisen. Sie kann auch detaillierte Informationen über die Übereinstimmungen ausgeben, die zur Kategorisierung geführt haben, was für die Validierung und Feinabstimmung der Regeln nützlich ist.
| Parameter | Beschreibung |
|---|---|
| casOut | Gibt den Namen der Ausgabedatentabelle für die Kategorien an. |
| docId | Gibt einen eindeutigen ID-Variablennamen in der Eingabetabelle an, auf den sich die Zeile bezieht. Der Variablenname kann Zeichen oder numerisch sein. |
| docType | Gibt den Dokumenttyp an. Standardmäßig ist es 'TEXT'. |
| groupedMatchOut | Gibt den Namen einer KATEGORIEN-Ausgabetermtabelle an, die Übereinstimmungen nach Kategorie für jedes Dokument gruppiert. Die durch die Parameter matchOut und groupedMatchOut angegebenen Tabellen enthalten dieselben Informationen in unterschiedlichen Formaten. Die durch den Parameter matchOut angegebene Tabelle enthält eine Übereinstimmung pro Zeile. Die Angabe einer Tabelle für den Parameter groupedMatchOut ist optional. |
| matchDelimiter | Gibt das Trennzeichen an, das für jede Instanz von übereinstimmendem Text in der durch den Parameter groupedMatchOut angegebenen KATEGORIEN-Ausgabetermtabelle verwendet werden soll. Das Trennzeichen kann eine Zeichenfolge sein. Diese Zeichenfolge sollte 32 Zeichen nicht überschreiten. Standardmäßig ist es '|'. |
| matchOut | Gibt den Namen der KATEGORIEN-Ausgabetermtabelle an. |
| model | Gibt eine Eingabe-CAS-Tabelle an, die das Kategorisierungsmodell enthält. |
| modelOut | Gibt den Namen der KATEGORIEN-Ausgabemodelltabelle an. |
| scoringAlgorithm | Gibt den Scoring-Algorithmus an. 'FREQUENCY' zählt die Häufigkeit, während 'WEIGHTED' gewichtete Berechnungen verwendet. Standardmäßig ist es 'FREQUENCY'. |
| table | Gibt die Eingabedatentabelle für die Kategorisierung an. |
| text | Gibt den Namen der Textvariablen in der Eingabetabelle an, auf die das Modell angewendet wird. |
Dieser Code erstellt eine CAS-Tabelle namens `reviews` in der `mycas` Caslib. Diese Tabelle enthält zwei Spalten: `docId` zur eindeutigen Identifizierung jedes Dokuments und `text` mit den zu analysierenden Textdaten. Diese Tabelle wird in den folgenden Beispielen als Eingabe für die Kategorisierungsaktion verwendet.
1 PROC CAS; 2 datastep.runCode / code='data mycas.reviews; 3 length docId $ 50; 4 length text $ 300; 5 infile datalines delimiter="|"; 6 input docId $ text $; 7 datalines; 8 doc1|The food was great and the service was excellent. 9 doc2|The room was clean, but the staff was not friendly. 10 doc3|I enjoyed the movie, the plot was amazing. 11 doc4|The product broke after a few days, very poor quality. 12 ; 13 run;'; 14 QUIT;
Dieses Beispiel zeigt, wie die Aktion `applyCategory` verwendet wird, um Textdaten basierend auf einem vorhandenen Kategoriemodell (`mycas.category_model`) zu bewerten. Die Ergebnisse werden in der Tabelle `mycas.categorized_reviews` gespeichert.
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='reviews', caslib='mycas'}, |
| 4 | model={name='category_model', caslib='mycas'}, |
| 5 | docId='docId', |
| 6 | text='text', |
| 7 | casOut={name='categorized_reviews', caslib='mycas', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
Dieses Beispiel zeigt einen fortgeschritteneren Anwendungsfall. Es verwendet den `WEIGHTED`-Scoring-Algorithmus. Zusätzlich zur Hauptausgabetabelle (`casOut`) werden zwei weitere Tabellen erstellt: `matchOut` speichert detaillierte Informationen zu jeder einzelnen Regelübereinstimmung und `groupedMatchOut` gruppiert diese Übereinstimmungen nach Kategorie für jedes Dokument, wobei ';' als Trennzeichen verwendet wird.
| 1 | PROC CAS; |
| 2 | textRuleScore.applyCategory / |
| 3 | TABLE={name='reviews', caslib='mycas'}, |
| 4 | model={name='category_model', caslib='mycas'}, |
| 5 | docId='docId', |
| 6 | text='text', |
| 7 | casOut={name='categorized_reviews_weighted', caslib='mycas', replace=true}, |
| 8 | matchOut={name='matches_detailed', caslib='mycas', replace=true}, |
| 9 | groupedMatchOut={name='matches_grouped', caslib='mycas', replace=true}, |
| 10 | matchDelimiter=';', |
| 11 | scoringAlgorithm='WEIGHTED'; |
| 12 | RUN; |
| 13 | QUIT; |