- Categorias:
- Funções de cadeia de caracteres e binários (funções de AI) 
CLASSIFY_TEXT (SNOWFLAKE.CORTEX)¶
Nota
AI_CLASSIFY é a versão mais recente dessa função. Você pode usar o AI_CLASSIFY para classificação de imagens e de vários rótulos. Você pode continuar a usar CLASSIFY_TEXT (SNOWFLAKE.CORTEX).
Classifica o texto de forma livre em categorias fornecidas pelo usuário.
Sintaxe¶
SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories>, [ <options> ] )
Argumentos¶
Obrigatório:
- input
- Cadeia de caracteres a ser classificada. A cadeia de caracteres de entrada diferencia maiúsculas de minúsculas. É possível obter resultados diferentes para a mesma cadeia de caracteres que usa capitalização diferente. 
- list_of_categories
- Matriz que representa as categorias. Deve conter no mínimo duas e no máximo 100 categorias exclusivas. As categorias diferenciam maiúsculas de minúsculas. - As categorias podem ser cadeias de caracteres simples ou objetos SQL; todas as categorias devem ser do mesmo tipo. Usando objetos, é possível fornecer uma descrição e exemplos de cada categoria, fornecendo um contexto que pode ajudar a melhorar a precisão da classificação. Não é obrigatório fornecer descrições ou exemplos para cada categoria; você tem a liberdade de fornecer uma descrição, exemplos, ambos ou nenhum para cada categoria. - label: o nome da categoria. Essa chave é necessária.
- description: uma descrição da categoria. As descrições não devem ter mais de 25 palavras (1 a 2 frases). Essa chave é opcional.
- examples: uma matriz de exemplos que sejam representativos da categoria. Normalmente, não são necessários mais de cinco exemplos, mas há um limite de 20 exemplos por categoria. O número de exemplos não precisa ser o mesmo para cada categoria. Essa chave é opcional.
 - Nota - As descrições e os exemplos contam como tokens de entrada, o que aumenta o custo da operação de classificação. Leia mais em Considerações sobre custo. 
Opcional:
- options
- Um objeto com configuração opcional (como pares chave-valor) para a operação de classificação. Atualmente, a única chave disponível é: - task_description: uma cadeia de caracteres com uma breve explicação da tarefa de classificação de texto. As descrições de tarefas não devem conter mais do que 50 palavras (3 a 4 frases).
 
Retornos¶
Um valor OBJECT (VARIANT). O campo label do objeto é uma cadeia de caracteres que especifica a categoria à qual pertence o prompt de entrada.
Requisitos de controle de acesso¶
Os usuários devem usar uma função que tenha a função do banco de dados SNOWFLAKE.CORTEX_USER. Consulte Privilégios obrigatórios para obter mais informações sobre esse privilégio.
Notas de uso¶
Para um desempenho ideal, siga estas diretrizes:
- Use texto em inglês simples para entradas e categorias. 
- Limite a quantidade de texto que não seja em inglês simples no texto de entrada. Por exemplo, tente limitar conteúdo como trechos de código ou logs na entrada de texto. 
- O texto não deve conter código ou formatos que não sejam de código aberto (linguagens específicas da empresa, formatos proprietários etc.). A função não retornará um erro, mas os resultados podem não ser os esperados. 
- Não use abreviações, caracteres especiais ou jargões nos rótulos das categorias. 
- As categorias devem ser descritivas. Por exemplo, usar uma categoria como - Xa4s3ou- category 1não produzirá bons resultados.
- As categorias devem ser mutuamente exclusivas. 
- A inclusão de uma descrição clara da tarefa pode melhorar a precisão quando a relação entre o texto de entrada e as categorias for ambígua ou diferenciada. 
- A adição de descrições de rótulos pode melhorar a precisão nos casos em que as descrições são ambíguas ou quando uma lógica específica deve ser seguida ao selecionar um determinado rótulo. Ao escrever descrições, concentre-se nos principais aspectos que distinguem um determinado rótulo dos demais. 
- Cada rótulo, descrição e exemplo conta como tokens de entrada para cada registro processado por uma chamada de função CLASSIFY_TEXT. Os custos são incorridos de acordo. 
- Exemplos podem ajudar a melhorar a precisão. 
Exemplos¶
Como usar argumentos necessários¶
Esses exemplos ilustram como usar a função CLASSIFY_TEXT apenas com os argumentos necessários.
O exemplo a seguir classifica o prompt em uma das duas categorias, travel ou cooking:
SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
{
  "label": "travel"
}
O exemplo a seguir cria uma tabela, text_classification_table, que contém uma coluna para texto e uma coluna para possíveis categorias para esse texto. A função CLASSIFY_TEXT é chamada em cada linha da tabela para classificar a cadeia de caracteres na coluna de texto.
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;
Como usar argumentos opcionais¶
Esses exemplos ilustram como usar a função CLASSIFY_TEXT com descrições e exemplos de categorias e/ou uma descrição de tarefa.
O exemplo a seguir classifica o prompt em uma das três categorias (viagem, culinária ou condicionamento físico), fornecendo apenas uma descrição da tarefa:
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"
}
O exemplo a seguir classifica o prompt em uma das categorias viagem, culinária ou condicionamento físico, usando todas as opções.
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"
}
O exemplo a seguir classifica o prompt em uma das três categorias (viagem, culinária ou condicionamento físico) usando todas as opções. No entanto, a descrição ou os exemplos são omitidos para algumas categorias, e o número de exemplos varia.
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"
}
Limitações¶
As funções do Snowflake Cortex não são compatíveis com tabelas dinâmicas.