Grundlegendes zu Typen von Klassifizierungsprojekten
Die benutzerdefinierte Textklassifizierung weist Textdateien Bezeichnungen zu, die im Azure KI Language-Dienst eine vom Entwickler definierte Klasse sind. Beispielsweise kann die Zusammenfassung eines Videospiels als „Abenteuer“, „Strategie“, „Action“ oder „Sport“ klassifiziert werden.
Die benutzerdefinierte Textklassifizierung lässt sich in zwei Arten von Projekten unterteilen:
- Klassifizierung mit einer Bezeichnung: Jeder Datei kann nur eine einzelne Klasse zugewiesen werden. Im Beispiel oben kann die Videospielzusammenfassung also entweder als „Abenteuer“ oder als „Strategie“ klassifiziert werden.
- Klassifizierung mit mehreren Bezeichnungen: Jeder Datei können mehrere Klassen zugewiesen werden. Bei diesem Projekttyp kann die Videospielzusammenfassung als „Abenteuer“ oder als „Abenteuer und Strategie“ klassifiziert werden.
Bei der Erstellung Ihres benutzerdefinierten Textklassifizierungsprojekts können Sie angeben, welches Projekt Sie erstellen möchten.
Vergleich zwischen Projekten mit einer Bezeichnung und Projekten mit mehreren Bezeichnungen
Zusätzlich zur Möglichkeit, Dateien mehrere Klassifizierungen zuzuweisen, unterscheiden sich die Projekttypen im Tagging, in Aspekten der Modellverbesserung sowie in der API-Nutzlast für Klassifizierungsaufgaben.
Bezeichnen von Daten
Bei Projekten mit einfacher Bezeichnung wird jeder Datei während des Bezeichnungsvorgangs eine Klasse zugewiesen; bei der Klassenzuweisung in Azure KI Language können Sie nur eine Klasse auswählen.
Beim Taggen in Projekten mit mehreren Bezeichnungen können Sie einer Datei beliebig viele Klassen zuweisen. Aufgrund der höheren Komplexität müssen Ihre Daten eindeutig sein und die möglichen Eingaben zum Trainieren des Modells eine gute Verteilung aufweisen.
Das korrekte Taggen der Daten korreliert insbesondere bei Projekten mit mehreren Bezeichnungen direkt mit der Leistung Ihres Modells. Dabei gilt: Je qualitativ hochwertiger, eindeutiger und abwechslungsreicher Ihr Dataset ist, desto genauer ist das Modell.
Auswerten und Verbessern des Modells
Die Bewertung der Vorhersageleistung Ihres Modells geht über die Anzahl der korrekten Vorhersagen hinaus. Eine Klassifizierung ist korrekt, wenn die tatsächliche Bezeichnung x lautet und das Modell die Bezeichnung x vorhersagt. In der Praxis führt dies bei falsch klassifizierten Dokumenten zu verschiedenen Arten von Fehlern:
- Falsch positiv: Das Modell sagt die Bezeichnung x voraus, doch die Bezeichnung der Datei lautet nicht x.
- Falsch negativ: Das Modell sagt die Bezeichnung x nicht voraus, obwohl die Bezeichnung der Datei x lautet.
Diese Metriken werden in drei von Azure KI Language bereitgestellte Measures übersetzt:
- Trefferquote: Verhältnis der richtig positiven Treffer zu allen Bezeichnungen: Wie viele der tatsächlichen Bezeichnungen wurden identifiziert?
- Genauigkeit: Verhältnis der richtig positiven zu allen identifizierten positiven Treffern: Wie viele der vorhergesagten Bezeichnungen sind korrekt?
- F1-Score: Funktion aus Trefferquote und Genauigkeit als einzelne Bewertung für ein möglichst ausgewogenes Verhältnis der einzelnen Komponenten.
Tipp
Erfahren Sie mehr über die Auswertungsmetriken von Azure KI Language, einschließlich der genauen Berechnung dieser Metriken.
Bei Projekten mit einer Bezeichnung können Sie die Qualität der Klassifizierung der einzelnen Klassen ermitteln und weitere Qualitätsdaten zum Trainieren des Modells bereitstellen. Bei Projekten mit mehreren Bezeichnungen ist die Suche nach Qualitätsdaten komplexer, da die Matrix mögliche Permutationen der Bezeichnungskombinationen aufweist.
Angenommen, Ihr Modell klassifiziert Spiele mit der Bezeichnung „Action“ sowie einige Spiele mit der Bezeichnung „Action und Strategie“ korrekt, scheitert jedoch bei der Klassifizierung von Spielen mit der Bezeichnung „Strategie“. Zur Verbesserung des Modells sollten Sie mehr verschiedene Zusammenfassungen von hoher Qualität von Spielen der Kategorien „Action und Strategie“ sowie „Strategie“ bereitstellen, um eine Unterscheidung dieser Klassen zu trainieren. Die Komplexität dieser Aufgabe steigt exponentiell mit der Anzahl möglicher Klassen für Ihr Modell.
API-Nutzlast
Azure KI Language stellt eine REST-API bereit, mit der Sie Ihr Modell erstellen und damit interagieren können. Zur Angabe der Anforderung wird JSON-Text verwendet. Die API ist in mehrere sprachspezifische SDKs untergliedert. Bei den Beispielen in diesem Modul liegt der Schwerpunkt jedoch auf der Basis-REST-API.
Für die Übermittlung einer Klassifizierungsaufgabe benötigt die API den JSON-Text zur Angabe der Aufgabe, die ausgeführt werden soll. In der nächsten Lerneinheit wird die REST-API ausführlicher beschrieben. Im Folgenden können Sie sich bereits mit Teilen des erforderlichen Texts vertraut machen.
Klassifizierungsmodelle mit einfacher Bezeichnung geben den Projekttyp customSingleLabelClassification
an:
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customSingleLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "<LANGUAGE-CODE>",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customSingleLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class2"
}
},
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class1"
}
}
]
}
}
Klassifizierungsmodelle mit mehrfacher Bezeichnung geben den Projekttyp CustomMultiLabelClassification
an.
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customMultiLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "<LANGUAGE-CODE>",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customMultiLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
]
},
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"classes": [
{
"category": "Class2"
}
]
}
]
}
}