Filformat för klassificeringsuppsättning
Klassificeringsuppsättningar har stöd för flera filformat för överföring av klassificeringsdata. Varje format har specifika krav för slutförda dataöverföringar.
När filen är korrekt formaterad enligt dessa specifikationer kan du överföra data via gränssnittet Klassificeringsuppsättningar eller API. Detaljerade överföringsanvisningar:
- Webbläsaröverföring: Se Överför i gränssnittet Schema för en klassificeringsgrupp.
- API-överföring: Se API för analysklassificeringar
Klassificeringsuppsättningar har stöd för följande filformat:
- JSON: JavaScript Object Notation-filer med strukturerade data
- CSV: Kommaavgränsade värdefiler
- TSV/TAB: Tabbseparerade värdefiler
Allmänna filkrav
Alla filformat måste uppfylla följande krav:
- Filkodning: Använd UTF-8 utan byteordningsmärken. Latin1-kodning stöds också.
- Teckengränser: Enskilda klassificeringsvärden har en maxgräns på 255 byte.
- Nyckelkrav: Nyckelvärden får inte vara tomma eller bara innehålla blanksteg. Om det finns dubblettnycklar används den sista förekomsten.
JSON-filformatet följer konventioner för JSON-rader (JSONL). Filen måste innehålla ett JSON-objekt per rad, där varje objekt representerar en enda klassificeringspost.
| note note |
|---|
| NOTE |
Trots följande konventioner för JSON-rader använder du filtillägget .json för alla överföringar. Användning av tillägget .jsonl kan orsaka fel. |
JSON-struktur
Varje JSON-objekt måste innehålla:
-
key(obligatoriskt): Unik identifierare för klassificeringsposten -
data(krävs för uppdateringar): Ett objekt som innehåller klassificeringskolumnnamn och deras värden -
action(valfritt): Den åtgärd som ska utföras. Följande värden stöds:update(standard)delete-fielddelete-key
-
enc(valfritt): Datakodningsspecifikation. Följande värden stöds:utf8ellerUTF8(standard)latin1ellerLATIN1
Alla JSON-fältnamn (key, data, action, enc) är skiftlägeskänsliga och måste skrivas med gemener.
JSON-exempel
Grundläggande uppdateringspost:
| code language-json |
|---|
|
Uppdatering med angiven kodning:
| code language-json |
|---|
|
Ta bort specifika fält:
| code language-json |
|---|
|
Ta bort en hel nyckel:
| code language-json |
|---|
|
JSON-valideringsregler
- Fältet
keyär obligatoriskt och får inte vara null eller tomt. - För
update-åtgärder är fältetdataobligatoriskt och får inte vara tomt. - För
delete-field-åtgärder måste fältetdatainnehålla de fält som ska tas bort. - Fältet
delete-keyfår inte finnas fördata-åtgärder. - Kodningsvärden som stöds är inte skiftlägeskänsliga och innehåller standardnamn på teckenuppsättningar.
CSV-filer (kommaseparerade värden) avgränsar klassificeringsdatafält med kommatecken.
CSV-struktur
- Rubrikrad: Den första raden måste innehålla kolumnrubriker och den första kolumnen måste vara nyckelkolumn. Efterföljande kolumner ska matcha namn i ditt klassificeringsschema
- Datarader: Varje efterföljande rad innehåller klassificeringsdata
- Avgränsare: Fält avgränsas med kommatecken
- Citat: Fält som innehåller kommatecken, citattecken eller radmatningar ska omslutas av citattecken
CSV-exempel
Grundläggande klassificeringsdata:
| code language-csv |
|---|
|
Ta bort en hel nyckel:
| code language-csv |
|---|
|
Ta bort specifika fält (blandat med uppdateringar):
| code language-csv |
|---|
|
CSV-formateringsregler
- Fält som innehåller kommatecken måste omslutas av citattecken.
- Fält som innehåller dubbla citattecken måste undvika citattecken genom att dubblera dem (
""). - Tomma fält representerar null-värden för den klassificeringen.
- Radavstånd och avslutande blanksteg runt fält trimmas automatiskt.
- Specialtecken (tabbar, nya rader) i citattecken bevaras.
Ta bort åtgärder:
- Använd
~deletekey~i alla fält för att ta bort hela nyckeln och alla dess klassificeringsdata - Använd
~empty~i specifika fält om du bara vill ta bort dessa klassificeringsvärden (övriga fält förblir oförändrade) - När du använder
~empty~kan du blanda borttagningar med uppdateringar i samma fil
I TSV- (Tab-Separated Values) och TABB-filer används tabbtecken för att skilja klassificeringsdatafält åt.
Strukturen för TSV och TAB
- Rubrikrad: Den första raden måste innehålla kolumnrubriker och den första kolumnen måste vara nyckelkolumn. Efterföljande kolumner ska matcha namn i ditt klassificeringsschema.
- Datarader: Varje efterföljande rad innehåller klassificeringsdata.
- Avgränsare: Fält avgränsas med tabbtecken (
\t). - Citat: I allmänhet behövs ingen offert, men vissa implementeringar stöder citattecken.
Exempel på TSV och TAB
Grundläggande klassificeringsdata:
| code language-tsv |
|---|
|
Ta bort en hel nyckel:
| code language-tsv |
|---|
|
Ta bort specifika fält (blandat med uppdateringar):
| code language-tsv |
|---|
|
Formateringsregler för TSV/TAB
- Fält avgränsas med enkla tabbtecken.
- Tomma fält (på varandra följande flikar) representerar null-värden.
- Normalt behövs ingen specialoffert.
- Radavstånd och avslutande blanksteg bevaras.
- Tidslinjetecken i fält bör undvikas.
Ta bort åtgärder:
- Använd
~deletekey~i vilket fält som helst för att ta bort hela nyckeln och alla dess klassificeringsdata. - Använd
~empty~i specifika fält om du bara vill ta bort dessa klassificeringsvärden (lämnar andra fält intakta). - När du använder
~empty~kan du blanda borttagningar med uppdateringar i samma fil.
Felhantering
Vanliga problem och lösningar vid överföring:
Allmänna filformatsfel
- Ogiltigt filformat: Verifiera att filtillägget matchar innehållsformatet (
.json,.csv,.tsveller.tab). - Okänt huvud: Kolumnnamn måste matcha ditt klassificeringsmängdsschema (gäller för alla format).
CSV- och TSV-specifika fel
- Den första kolumnen måste vara nyckeln: Kontrollera att CSV- eller TSV-filen har en korrekt rubrikrad med nyckelkolumnen först.
- Minst två rubrikobjekt krävs: CSV- eller TSV-filer måste ha minst en
Key-kolumn och en klassificeringskolumn. - Den första rubrikkolumnen måste heta Key: Den första kolumnrubriken måste vara exakt
Key(versaltK, skiftlägeskänsligt). - Tomma rubriker tillåts inte: Alla CSV-/TSV-kolumnrubriker måste ha namn.
- Antalet kolumner matchade inte rubrikerna: Varje CSV- eller TSV-datarad måste ha samma antal fält som rubrikraden.
- "Felformaterat dokument: Kontrollera CSV-citat, rätt tabbseparation i TSV-filer med mera.
JSON-specifika fel
- Nyckeln är ett obligatoriskt fält: Alla JSON-poster måste ha ett
"key"-fält som inte är tomt (skiftlägeskänsligt). - Data är ett obligatoriskt fält när åtgärd=uppdatering används: JSON-uppdateringsåtgärder måste innehålla ett
"data"-fält. - Data är ett obligatoriskt fält när åtgärd=delete-field används: JSON delete-field-åtgärder måste ange vilka fält som ska tas bort i fältet
"data". - Data får inte finnas när action=delete-key används: JSON delete-key-åtgärder kan inte innehålla ett
"data"-fält. - Kodning som inte stöds: Använd bara kodningsvärden som stöds i fältet
"enc"(utf8,UTF8,latin1,LATIN1). - Ogiltig JSON-syntax: Kontrollera att JSON-filen är korrekt formaterad enligt JSONL-konventioner. Kontrollera också om det finns allmän JSON-formatering, saknade citattecken, kommatecken, hakparenteser osv.
Storleksbegränsningsfel
- Nyckeln överskrider maxstorleken: Enskilda nycklar får inte överskrida 255 byte.
- Kolumnvärdet överskrider maxstorleken: Enskilda klassificeringsvärden får inte överskrida 255 byte.
Bästa praxis
- Filstorlek: 50 MB är den maximala filstorleken för webbläsaröverföringar och API-överföringar.
- Gruppbearbetning: För stora datauppsättningar bör du dela upp dem i mindre filer.
- Dataverifiering: Testa med en liten exempelfil innan du överför stora datamängder.
- Säkerhetskopiera: Behåll kopior av dina källdatafiler.
- Inkrementella uppdateringar: Använd JSON-format för att få exakt kontroll över uppdateringar och borttagningar av enskilda poster.