カテゴリ:

文字列とバイナリ関数 (大規模言語モデル)

CLASSIFY_TEXT (SNOWFLAKE.CORTEX)

自由形式のテキストデータを、指定したカテゴリに分類します。

構文

SNOWFLAKE.CORTEX.CLASSIFY_TEXT( <input> , <list_of_categories> )
Copy

引数

必須:

input

分類する文字列。入力文字列は大文字と小文字を区別します。同じ文字列でも大文字と小文字が異なれば、結果は異なる場合があります。

list_of_categories

カテゴリを表す文字列の配列。少なくとも2個、多くても100個の一意のカテゴリが含まれている必要があります。カテゴリは大文字と小文字を区別します。これらの要件が満たされない場合、この関数はエラーメッセージを返します。エラーの全リストについては、 エラー条件 をご参照ください。

戻り値

JSON オブジェクトを含む文字列を返します。JSON オブジェクトには、入力プロンプトが分類されているカテゴリが含まれます。無効な引数が指定されると、エラーが返されます。エラーの詳細については、 エラー条件 をご参照ください。

アクセス制御の要件

ユーザーは、 SNOWFLAKE.CORTEX_USER データベースロール が付与されているロールを使用する必要があります。この権限の詳細については、 必要な権限 をご参照ください。

使用上の注意

最適なパフォーマンスを得るためには、以下のガイドラインに従ってください。

  • 入力とカテゴリには分かりやすい英語のテキストを使用します。

  • 入力テキストでの分かりやすい英語ではないテキストの量を制限します。例えば、テキスト入力でのコードスニペットやログなどのコンテンツを制限してみてください。

  • テキストには、オープンソースでないコードやフォーマット(会社固有の言語、独自のフォーマットなど)を含めないでください。この関数はエラーを返しませんが、結果は期待したものとは異なる場合があります。

  • カテゴリラベルに略語、特殊文字、専門用語を使用しないでください。

  • カテゴリは説明的である必要があります。例えば、 Xa4s3category 1 などのカテゴリを使用しても、良い結果は得られません。

  • カテゴリは相互に排他的である必要があります。

次の例では、プロンプトを travel または cooking の2つのカテゴリに分類しています。

SELECT SNOWFLAKE.CORTEX.CLASSIFY_TEXT('One day I will see the world', ['travel', 'cooking']);
Copy
{
  "label": "travel"
}

以下の例では、 text_classification_table というテーブルを作成しています。このテーブルには、テキストの列と、そのテキストに対して可能なカテゴリの列があります。次に、 CLASSIFY_TEXT 関数がテーブルの各行で呼び出され、テキスト列の文字列を分類します。

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;
Copy