- Kategorien:
Zeichenfolgen- und Binärfunktionen (Large Language Model)
CLASSIFY_TEXT (SNOWFLAKE.CORTEX)¶
Klassifiziert Freitext in von Ihnen bereitgestellte Kategorien.
Syntax¶
SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories>, [ <options> ] )
Argumente¶
Benötigt:
input
Zeichenfolge zum Klassifizieren Bei der Eingabezeichenfolge wird zwischen Groß- und Kleinschreibung unterschieden. Sie können unterschiedliche Ergebnisse für dieselbe Zeichenfolge mit unterschiedlicher Großschreibung erhalten.
list_of_categories
Array, das die Kategorien darstellt. Muss mindestens zwei und darf höchstens 100 eindeutige Kategorien enthalten. Bei Kategorien wird zwischen Groß- und Kleinschreibung unterschieden. Wenn diese Anforderungen nicht erfüllt sind, gibt die Funktion einen Fehler zurück. Eine vollständige Auflistung der Fehler finden Sie unter Fehlerbedingungen.
Kategorien können einfache Zeichenfolgen oder SQL-Objekte sein. Alle Kategorien müssen vom gleichen Typ sein. Mithilfe von Objekten können Sie eine Beschreibung und Beispiele für jede Kategorie bereitstellen und so den Kontext liefern, der die Klassifizierungsgenauigkeit verbessern kann. Sie müssen nicht für jede Kategorie eine Beschreibung oder ein Beispiel angeben. Es steht Ihnen frei, für jede Kategorie eine Beschreibung, Beispiele, beides oder keines von beidem anzugeben.
label
: Der Name der Kategorie. Dieser Schlüssel ist erforderlich.description
: Eine Beschreibung der Kategorie. Die Beschreibungen sollten nicht länger als etwa 25 Wörter (1–2 Sätze) lang sein. Dieser Schlüssel ist optional.examples
: Ein Array von Beispielen, die für die Kategorie repräsentativ sind. Normalerweise werden nicht mehr als fünf Beispiele benötigt, aber es gibt eine Obergrenze von 20 Beispielen pro Kategorie. Die Anzahl der Beispiele muss nicht für jede Kategorie gleich sein. Dieser Schlüssel ist optional.
Bemerkung
Beschreibungen und Beispiele zählen als Eingabetoken, was die Kosten für die Klassifizierung erhöht. Lesen Sie mehr unter Hinweise zu Kosten.
Optional:
options
Ein Objekt, das die optionale Konfiguration (als Schlüssel/Wert-Paare) für die Klassifizierungsoperation enthält. Derzeit ist der einzige verfügbare Schlüssel:
task_description
: Eine Zeichenfolge mit einer kurzen Erläuterung der Textklassifizierungsaufgabe. Die Aufgabenbeschreibungen sollten nicht mehr als 50 Wörter (3–4 Sätze) lang sein.
Rückgabewerte¶
Gibt eine Zeichenfolge zurück, die ein JSON-Objekt enthält. Das JSON-Objekt enthält die Kategorie, als die die Eingabeaufforderung eingestuft wurde. Wenn ungültige Argumente angegeben werden, wird ein Fehler zurückgegeben. Weitere Informationen zu den Fehlern finden Sie unter Fehlerbedingungen.
Anforderungen an die Zugriffssteuerung¶
Benutzer müssen eine Rolle verwenden, der die Datenbankrolle SNOWFLAKE.CORTEX_USER zugewiesen wurde: Weitere Informationen zu dieser Berechtigung finden Sie unter Erforderliche Berechtigungen.
Nutzungshinweise¶
Um eine optimale Leistung zu erzielen, befolgen Sie diese Richtlinien:
Verwenden Sie einfachen englischen Text für Eingaben und Kategorien.
Begrenzen Sie die Menge an Text im Eingabetext, der nicht aus einfachem Englisch besteht. Versuchen Sie zum Beispiel, Inhalte wie Codeschnipsel oder Protokolle in der Texteingabe zu beschränken.
Der Text sollte keinen Code oder Formate enthalten, die nicht quelloffen sind (firmenspezifische Sprachen, proprietäre Formate usw.). Die Funktion gibt zwar keinen Fehler zurück, aber die Ergebnisse entsprechen möglicherweise nicht Ihren Erwartungen.
Verwenden Sie keine Abkürzungen, Sonderzeichen oder Fachausdrücke in den Kategoriebezeichnungen.
Kategorien sollten beschreibend sein. Wenn Sie zum Beispiel eine Kategorie wie
Xa4s3
odercategory 1
verwenden, werden Sie keine guten Ergebnisse erzielen.Die Kategorien sollten sich gegenseitig ausschließen.
Das Hinzufügen einer klaren Aufgabenbeschreibung kann die Genauigkeit verbessern, wenn die Beziehung zwischen dem Eingabetext und den Kategorien mehrdeutig oder nuanciert ist.
Das Hinzufügen von Beschreibungen für Bezeichnungen kann die Genauigkeit in Fällen verbessern, in denen die Beschreibungen mehrdeutig sind oder wenn bei der Auswahl einer bestimmten Bezeichnung eine bestimmte Logik befolgt werden sollte. Konzentrieren Sie sich beim Verfassen von Beschreibungen auf die wichtigsten Aspekte, die eine bestimmte Bezeichnung von den anderen unterscheiden.
Beispiele können helfen, die Genauigkeit zu verbessern.
Beispiele¶
Verwenden von erforderlichen Argumenten¶
Diese Beispiele zeigen, wie Sie die Funktion CLASSIFY_TEXT mit nur den erforderlichen Argumenten verwenden können.
Das folgende Beispiel ordnet die Eingabeaufforderung einer von zwei Kategorien zu, travel
oder cooking
:
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
{
"label": "travel"
}
Das folgende Beispiel erstellt eine Tabelle, text_classification_table
, die eine Spalte für Text und eine Spalte für mögliche Kategorien für diesen Text enthält. Die Funktion CLASSIFY_TEXT wird in jeder Zeile der Tabelle aufgerufen, um die Zeichenfolge in der Textspalte zu klassifizieren.
CREATE OR REPLACE TEMPORARY TABLE text_classification_table AS
SELECT 'France' AS input, ['North America', 'Europe', 'Asia'] AS classes
UNION ALL
SELECT 'Singapore', ['North America', 'Europe', 'Asia']
UNION ALL
SELECT 'one day I will see the world', ['travel', 'cooking', 'dancing']
UNION ALL
SELECT 'my lobster bisque is second to none', ['travel', 'cooking', 'dancing'];
SELECT input,
classes,
SNOWFLAKE.CORTEX.CLASSIFY_TEXT(input, classes)['label'] as classification
FROM text_classification_table;
Verwenden von optionalen Argumenten¶
Diese Beispiele veranschaulichen, wie Sie die Funktion CLASSIFY_TEXT mit Kategoriebeschreibungen und Beispielen und/oder einer Aufgabenbeschreibung verwenden können.
Das folgende Beispiel klassifiziert die Eingabeaufforderung in eine von drei Kategorien (Reisen, Kochen oder Fitness), wobei nur eine Aufgabenbeschreibung bereitgestellt wird:
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'When I am not at work, I love creating recipes using every day ingredients',
['travel', 'cooking', 'fitness'],
{
'task_description': 'Return a classification of the Hobby identified in the text'
}
);
{
"label": "cooking"
}
Das folgende Beispiel klassifiziert die Eingabeaufforderung in eine der Kategorien (Reisen, Kochen oder Fitness), wobei alle Optionen verwendet werden.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'I love running every morning before the world wakes up',
[{
'label': 'travel',
'description': 'Hobbies related to going from one place to another',
'examples': ['I like flying to Europe', 'Every summer we go to Italy' , 'I love traveling to learn new cultures']
},{
'label': 'cooking',
'description': 'Hobbies related to preparing food',
'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
},{
'label': 'fitness',
'description': 'Hobbies related to being active and healthy',
'examples': ['I cannot live without my Strava app', 'Running is life' , 'I go to the Gym every day']
}],
{'task_description': 'Return a classification of the Hobby identified in the text'})
{
"label": "fitness"
}
Das folgende Beispiel klassifiziert die Eingabeaufforderung in eine von drei Kategorien zu (Reisen, Kochen oder Fitness), wobei alle Optionen verwendet werden. Allerdings fehlen bei einigen Kategorien die Beschreibung oder Beispiele, und die Anzahl der Beispiele variiert.
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT(
'I love running every morning before the world wakes up',
[{
'label': 'travel',
'description': 'Hobbies related to going from one place to another',
'examples': ['I like flying to Europe']
},{
'label': 'cooking',
'examples': ['I like learning about new ingredients', 'You must bring your soul to the recipe' , 'Baking is my therapy']
},{
'label': 'fitness',
'description': 'Hobbies related to being active and healthy'
}],
{'task_description': 'Return a classification of the Hobby identified in the text'})
{
"label": "fitness"
}