言語検出

完了

Azure AI Language 検出 API では、送信された各ドキュメントのテキスト入力が評価され、言語識別子と、分析の強度を示すスコアが返されます。

この機能は、言語が不明な任意のテキストを取集するコンテンツ ストアに役立ちます。 もう 1 つのシナリオでは、チャットボットを含めることができます。 ユーザーがチャットボットとのセッションを開始するときに、言語検出を使用して、使用している言語を特定し、適切な言語でボットの応答を構成することができます。

この分析の結果を解析して、入力ドキュメントでいずれの言語が使用されるかを特定できます。 応答では、モデルの信頼度 (0 から 1 までの値) が反映されたスコアも返されます。

言語検出は、ドキュメントまたは単一のフレーズで使用できます。 ドキュメントのサイズは 5120 文字未満でなければならないことに注意することが重要です。 サイズ制限はドキュメント単位であり、各コレクションは 1000 個の項目 (ID) に制限されています。 要求本文に入れてサービスに送信できる、適切な形式の JSON ペイロードのサンプルを次に示します。documents のコレクション、それぞれの一意の id、分析する text が含まれます。 必要に応じて、countryHint を指定して予測のパフォーマンスを向上させることができます。

{
    "kind": "LanguageDetection",
    "parameters": {
        "modelVersion": "latest"
    },
    "analysisInput":{
        "documents":[
              {
                "id": "1",
                "text": "Hello world",
                "countryHint": "US"
              },
              {
                "id": "2",
                "text": "Bonjour tout le monde"
              }
        ]
    }
}

サービスでは、要求本文の各ドキュメントの結果を含む JSON 応答を返します。この応答には、予測された言語と予測の信頼レベルを示す値が含まれます。 信頼度は 0 から 1 までの値で、値が 1 に近づくほど信頼度が高いことを示します。 上記の要求の JSON にマップされる標準の JSON 応答の例を次に示します。

{   "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
          {
            "detectedLanguage": {
              "confidenceScore": 1,
              "iso6391Name": "en",
              "name": "English"
            },
            "id": "1",
            "warnings": []
          },
          {
            "detectedLanguage": {
              "confidenceScore": 1,
              "iso6391Name": "fr",
              "name": "French"
            },
            "id": "2",
            "warnings": []
          }
        ],
        "errors": [],
        "modelVersion": "2022-10-01"
    }
}

このサンプルでは、すべての言語で信頼度が 1 と示されています。これは主に、テキストが比較的単純で、言語を識別しやすいためです。

多言語のコンテンツを含むドキュメントを渡すと、サービスの動作は少し異なります。 同じドキュメント内の言語が混在したコンテンツでは、コンテンツの最大の表現で言語が返されますが、評価の肯定度は低くなります。これは、その評価の限界強度が反映されるためです。 次の例では、入力が英語、スペイン語、フランス語の混在です。 アナライザーでは、テキストの統計分析を使用して "主要な" 言語を特定します。

{
  "documents": [
    {
      "id": "1",
      "text": "Hello, I would like to take a class at your University. ¿Se ofrecen clases en español? Es mi primera lengua y más fácil para escribir. Que diriez-vous des cours en français?"
    }
  ]
}

次のサンプルでは、この多言語の例に対する応答を示しています。

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "Spanish",
                "iso6391Name": "es",
                "confidenceScore": 0.9375
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2022-10-01"
}

考慮すべき最後の条件は、言語の内容にあいまいさがある場合です。 このシナリオが発生し得るのは、送信したテキスト コンテンツをアナライザーが解析できない場合です。たとえば、テキストを文字列変数に変換する際に文字エンコードの問題が発生した場合などです。 その結果、言語名と ISO コードの応答に (unknown) と示され、スコアの値は 0 として返されます。 次の例では、応答がどのようになるかを示しています。

{
    "documents": [
        {
            "id": "1",
            "detectedLanguage": {
                "name": "(Unknown)",
                "iso6391Name": "(Unknown)",
                "confidenceScore": 0.0
            },
            "warnings": []
        }
    ],
    "errors": [],
    "modelVersion": "2022-10-01"
}