Principy typů klasifikačních projektů
Vlastní klasifikace textu přiřazuje popisky, které ve službě Azure AI Language je třída , kterou vývojář definuje, textovým souborům. Například souhrn videohry se může klasifikovat jako "Adventure", "Strategy", "Action" nebo "Sports".
Vlastní klasifikace textu spadá do dvou typů projektů:
- Klasifikace s jedním popiskem – ke každému souboru můžete přiřadit pouze jednu třídu. Podle výše uvedeného příkladu se souhrn videohry dá klasifikovat pouze jako "Dobrodružství" nebo "Strategie".
- Více klasifikací popisků – ke každému souboru můžete přiřadit více tříd. Tento typ projektu vám umožní klasifikovat souhrn videohry jako "Dobrodružství" nebo "Dobrodružství a strategie".
Při vytváření vlastního projektu klasifikace textu můžete určit, který projekt chcete sestavit.
Jeden vs. více projektů popisků
Kromě možnosti umístit soubory do více klasifikací jsou klíčové rozdíly u více projektů klasifikace popisků, důležité informace o vylepšení modelu a datové části rozhraní API pro úlohy klasifikace.
Popisování dat
V projektech s jedním popiskem je každý soubor přiřazen jednu třídu během procesu popisování; Zadání třídy v jazyce Azure AI umožňuje vybrat pouze jednu třídu.
Při označování více projektů popisků můžete přiřadit libovolný počet tříd pro každý soubor. Dopad přidané složitosti znamená, že vaše data musí zůstat jasná a poskytnout dobrou distribuci možných vstupů, ze které se váš model může poučit.
Správné označování dat, zejména u více projektů popisků, přímo koreluje s tím, jak dobře model funguje. Čím vyšší je kvalita, přehlednost a variace datové sady, tím přesnější bude váš model.
Vyhodnocení a vylepšení modelu
Měření prediktivního výkonu modelu přesahuje počet predikcí, které byly správné. Správné klasifikace jsou, když je skutečný popisek x a model předpovídá popisek x. V reálném světě vedou dokumenty k různým druhům chyb, pokud klasifikace není správná:
- Falešně pozitivní – model predikuje x, ale soubor není označený jako x.
- Falešně negativní – model nepředikuje popisek x, ale soubor je ve skutečnosti označený jako x.
Tyto metriky se překládají do tří měr poskytovaných jazykem Azure AI:
- Vzpomeňte si – ze všech skutečných popisků, kolik bylo identifikováno; poměr pravdivě pozitivních hodnot ke všemu, co bylo označeno.
- Přesnost – kolik predikovaných popisků je správné; poměr pravdivě pozitivních hodnot ke všem identifikovaným pozitivním.
- F1 Score – funkce úplnosti a přesnosti, která má poskytnout jedno skóre pro maximalizaci rovnováhy jednotlivých součástí
Tip
Další informace o metrikách vyhodnocování jazyka Azure AI, včetně přesného výpočtu těchto metrik
S projektem s jedním popiskem můžete určit, které třídy nejsou klasifikovány, ani ostatní, a najít kvalitnější data, která se mají použít při trénování modelu. U více projektů popisků se zjištění kvality dat stává složitější díky matici možných permutací kombinovaných popisků.
Pojďme například model správně klasifikovat hry "Akce" a některé hry "Akce a strategie", ale selhávají u her "Strategie". Pokud chcete svůj model vylepšit, budete chtít najít více kvalitních a různorodých souhrnů pro hry "Akce i strategie" a také hry "Strategie" a naučit model, jak je odlišit. Tato výzva se exponenciálně zvyšuje o více možných tříd, do které model klasifikuje.
Datová část rozhraní API
Azure AI Language poskytuje rozhraní REST API pro sestavení a interakci s vaším modelem pomocí textu JSON k zadání požadavku. Toto rozhraní API se abstrahuje do více sad SDK specifických pro jazyk, ale v tomto modulu se zaměříme na naše příklady na základní rozhraní REST API.
Aby bylo možné odeslat úlohu klasifikace, rozhraní API vyžaduje, aby tělo JSON určilo, který úkol se má provést. Další informace o rozhraní REST API se dozvíte v další lekci, ale stojí za to se seznámit s částmi požadovaného těla.
Modely klasifikace s jedním popiskem určují typ customSingleLabelClassification
projektu:
{
"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"
}
}
]
}
}
Více modelů klasifikace popisků určuje typ projektu 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"
}
]
}
]
}
}