Grundlegendes zu Typen von Klassifizierungsprojekten
Benutzerdefinierte Textklassifizierung weist Bezeichnungen zu, die im Azure-Sprachdienst eine Klasse sind, die der Entwickler definiert, Textdateien zu. Beispielsweise kann eine Videospielzusammenfassung als "Adventure", "Strategy", "Action" oder "Sports" klassifiziert werden.
Benutzerdefinierte Textklassifizierung fällt in zwei Arten von Projekten:
- Klassifizierung einzelner Bezeichnungen – Sie können jeder Datei nur eine Klasse zuweisen. Nach dem obigen Beispiel konnte eine Videospielzusammenfassung nur als "Adventure" oder "Strategie" klassifiziert werden.
- Mehrere Bezeichnungsklassifizierungen – Sie können jeder Datei mehrere Klassen zuweisen. Mit diesem Projekttyp können Sie eine Videospielzusammenfassung als "Adventure" oder "Adventure and Strategy" klassifizieren.
Beim Erstellen ihres benutzerdefinierten Textklassifizierungsprojekts können Sie angeben, welches Projekt Sie erstellen möchten.
Vergleich zwischen Projekten mit einer Bezeichnung und Projekten mit mehreren Bezeichnungen
Neben der Fähigkeit, Dateien in mehrere Kategorien einzustufen, liegen die wesentlichen Unterschiede bei Projekten zur Klassifizierung mit mehreren Labels in den Kennzeichnungen, den Überlegungen zur Verbesserung Ihres Modells und der API-Nutzlast für Klassifizierungsaufgaben.
Bezeichnen von Daten
In Einzelbeschriftungsprojekten wird jeder Datei während des Beschriftungsprozesses eine Klasse zugewiesen. Die Klassenzuweisung in Azure Language lässt nur die Auswahl einer Klasse zu.
Beim Bezeichnen mehrerer Bezeichnungsprojekte können Sie beliebig viele Klassen pro Datei zuweisen. Die Auswirkungen der hinzugefügten Komplexität bedeutet, dass Ihre Daten klar bleiben müssen und eine gute Verteilung möglicher Eingaben für Ihr Modell bieten, aus der Sie lernen können.
Die korrekte Kennzeichnung von Daten, insbesondere für Projekte mit mehreren Labels, ist direkt mit der Leistung Ihres Modells korreliert. Je höher die Qualität, Klarheit und Variation Ihres Datasets ist, desto genauer ist Ihr Modell.
Bewerten und Verbessern Ihres Modells
Das Messen der prädiktiven Leistung Ihres Modells geht darüber hinaus, wie viele Vorhersagen korrekt waren. Richtige Klassifizierungen sind, wenn die tatsächliche Bezeichnung x ist und das Modell eine Beschriftung x vorhersagt. In der realen Welt führen Dokumente zu unterschiedlichen Arten von Fehlern, wenn eine Klassifizierung nicht korrekt ist:
- Falsch positives - Modell prognostiziert x, aber die Datei ist nicht mit x beschriftet.
- Falsch negativ - Das Modell prognostiziert keine Beschriftung x, aber die Datei ist tatsächlich x beschriftet.
Diese Metriken werden in drei von Azure Language bereitgestellte Measures übersetzt:
- Trefferquote: Verhältnis der richtig-positiven Treffer zu allen Bezeichnungen: Wie viele der tatsächlichen Bezeichnungen wurden identifiziert?
- Präzision - Wie viele der vorhergesagten Labels richtig sind; das Verhältnis von wahren Positiven zu allen identifizierten Positiven.
- 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 Azure-Sprachauswertungsmetriken, einschließlich genau der Berechnung dieser Metriken
Mit einem einzelnen Kennzeichnungsprojekt können Sie identifizieren, welche Klassen nicht so gut klassifiziert sind wie andere, und qualitativ hochwertigere Daten für die Schulung Ihres Modells finden. Bei mehreren Etikettenprojekten wird das Ermitteln von Qualitätsdaten aufgrund der Matrix möglicher Permutationen kombinierter Etiketten komplexer.
Nehmen wir beispielsweise an, dass Ihr Modell "Action"-Spiele und einige "Action- und Strategie"-Spiele richtig klassifizieren, aber bei "Strategie"-Spielen fehlschlägt. Um Ihr Modell zu verbessern, sollten Sie qualitativ hochwertigere und abwechslungsreichere Zusammenfassungen für "Action- und Strategie"-Spiele sowie "Strategie"-Spiele finden, um Ihr Modell zu vermitteln, wie sie die beiden unterscheiden können. Diese Herausforderung erhöht sich exponentiell mit mehr möglichen Klassen, in die Ihr Modell klassifizieren wird.
API-Nutzdaten
Azure Language stellt eine REST-API zum Erstellen und Interagieren mit Ihrem Modell bereit, indem ein JSON-Textkörper zum Angeben der Anforderung verwendet wird. Diese API wird in mehrere sprachspezifische SDKs umgewandelt, jedoch konzentrieren wir uns in diesem Modul auf Beispiele zur grundlegenden REST-API.
Um eine Klassifizierungsaufgabe zu übermitteln, erfordert die API den JSON-Text, um anzugeben, welche Aufgabe ausgeführt werden soll. In der nächsten Einheit erfahren Sie mehr über die REST-API, aber es ist sinnvoll, sich bereits mit Teilen des erforderlichen Anforderungstexts vertraut zu machen.
Klassifizierungsmodelle für einzelne Labels geben einen Projekttyp von customSingleLabelClassification an.
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customSingleLabelClassification",
"description": "Trying out custom single 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"
}
}
]
}
}
Mehrere Bezeichnungsklassifizierungsmodelle geben einen Projekttyp an customMultiLabelClassification
{
"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"
}
]
}
]
}
}