- Catégories :
Fonctions de chaîne et fonctions binaires (Large Language Model)
CLASSIFY_TEXT (SNOWFLAKE.CORTEX)¶
Classe le texte libre dans des catégories que vous fournissez.
Syntaxe¶
SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories>, [ <options> ] )
Arguments¶
Obligatoire :
input
Chaîne à classer. La chaîne d’entrée est sensible à la casse. Vous pouvez obtenir des résultats différents pour la même chaîne qui utilise une majuscule différente.
list_of_categories
Tableau qui représente les catégories. Doit contenir au moins deux et au plus 100 catégories uniques. Les catégories sont sensibles à la casse. Si ces exigences ne sont pas satisfaites, la fonction renvoie une erreur. Pour une liste complète des erreurs, voir Conditions d’erreur.
Les catégories peuvent être de simples chaînes ou des objets SQL ; toutes les catégories doivent être du même type. En utilisant des objets, vous pouvez fournir une description et des exemples de chaque catégorie, en fournissant un contexte qui peut aider à améliorer la précision de la classification. Il n’est pas exigé de fournir des descriptions ou des exemples pour chaque catégorie ; vous êtes libre de fournir une description, des exemples, les deux ou aucun des deux pour chaque catégorie.
label
: Le nom de la catégorie. Cette clé est obligatoire.description
: Une description de la catégorie. Les descriptions ne doivent pas dépasser 25 mots (1 à 2 phrases). Cette clé est facultative.examples
: Un tableau d’exemples représentatifs de la catégorie. En règle générale, il ne faut pas plus de cinq exemples, mais il y a une limite de 20 exemples par catégorie. Le nombre d’exemples ne doit pas nécessairement être le même pour chaque catégorie. Cette clé est facultative.
Note
Les descriptions et les exemples comptent comme des jetons d’entrée, ce qui augmente le coût de l’opération de classification. Pour en savoir plus, voir Considérations relatives aux clients.
Facultatif :
options
Un objet qui contient une configuration facultative (sous forme de paires clé/valeur) pour l’opération de classification. Actuellement, la seule clé disponible est la suivante :
task_description
: Une chaîne contenant une brève explication de la tâche de classification de texte. Les descriptions de tâches ne doivent pas dépasser 50 mots (3 à 4 phrases).
Renvoie¶
Renvoie une chaîne qui contient un objet JSON. L’objet JSON contient la catégorie dans laquelle l’invite de saisie a été classée. Si des arguments non valides sont fournis, une erreur est renvoyée. Pour plus de détails sur les erreurs, voir Conditions d’erreur.
Exigences en matière de contrôle d’accès¶
Les utilisateurs doivent utiliser un rôle auquel le rôle de base de données SNOWFLAKE.CORTEX_USER a été accordé. Voir Privilèges requis pour plus d’informations sur ce privilège.
Notes sur l’utilisation¶
Pour des performances optimales, suivez ces directives :
Utilisez du texte en anglais simple pour la saisie et les catégories.
Limitez la quantité de texte qui n’est pas de l’anglais simple dans le texte d’entrée. Par exemple, essayez de limiter le contenu tel que les extraits de code ou les journaux dans la saisie de texte.
Le texte ne doit pas contenir de code ou de formats qui ne sont pas open source (langages spécifiques à l’entreprise, formats propriétaires, etc.). La fonction ne renverra pas d’erreur, mais les résultats peuvent ne pas être ceux que vous attendez.
N’utilisez pas d’abréviations, de caractères spéciaux ou de jargon dans les étiquettes de catégorie.
Les catégories doivent être descriptives. Par exemple, utiliser une catégorie telle que
Xa4s3
oucategory 1
ne produira pas de bons résultats.Les catégories doivent s’exclure mutuellement.
L’ajout d’une description claire de la tâche peut améliorer la précision lorsque la relation entre le texte d’entrée et les catégories est ambiguë ou nuancée.
L’ajout de descriptions d’étiquettes peut améliorer la précision dans les cas où les descriptions sont ambiguës ou lorsqu’une logique spécifique doit être suivie lors de la sélection d’une étiquette particulière. Lorsque vous rédigez des descriptions, mettez l’accent sur les aspects clés qui distinguent une étiquette particulière des autres.
Des exemples peuvent aider à améliorer la précision.
Exemples¶
Utilisation des arguments requis¶
Ces exemples illustrent la manière d’utiliser la fonction CLASSIFY_TEXT avec uniquement les arguments requis.
L’exemple suivant classe l’invite dans l’une des deux catégories, travel
ou cooking
:
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
{
"label": "travel"
}
L’exemple suivant crée une table, text_classification_table
, qui contient une colonne pour le texte et une colonne pour les catégories possibles pour ce texte. La fonction CLASSIFY_TEXT est appelée sur chaque ligne de la table pour classer la chaîne dans la colonne de texte.
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;
Utilisation des arguments facultatifs¶
Ces exemples illustrent l’utilisation de la fonction CLASSIFY_TEXT avec des descriptions de catégories et des exemples et/ou une description de la tâche.
L’exemple suivant classe l’invite dans l’une des trois catégories (voyage, cuisine ou remise en forme), en ne fournissant qu’une description de la tâche :
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"
}
L’exemple suivant classe l’invite dans l’une des catégories suivantes (voyage, cuisine ou remise en forme), en utilisant toutes les options.
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"
}
L’exemple suivant classe l’invite dans l’une des trois catégories (voyage, cuisine ou remise en forme), en utilisant toutes les options. Cependant, la description ou les exemples sont omis pour certaines catégories, et le nombre d’exemples varie.
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"
}