Определение языка

Завершено

API обнаружения языка ИИ Azure оценивает текстовые данные и возвращает идентификаторы языка с оценкой, указывающей на силу анализа.

Эта возможность полезна для хранилищ контента, которые собирают произвольный текст, где язык неизвестен. Другой сценарий может включать бот чата. Если пользователь запускает сеанс с ботом чата, обнаружение языка можно использовать для определения того, какой язык он использует и позволяет настроить ответы бота на соответствующем языке.

Результаты этого анализа можно проанализировать, чтобы определить, какой язык используется в входном документе. Ответ также возвращает оценку, которая отражает достоверность модели (значение от 0 до 1).

Обнаружение языка может работать с документами или одними фразами. Важно отметить, что размер документа должен быть не более 5120 символов. Ограничение размера — на документ, и каждая коллекция ограничена 1000 элементами (идентификаторами). Ниже показан пример правильно отформатированных полезных данных JSON, которые можно отправить в службу в теле запроса, включая коллекцию документов , каждый из которых содержит уникальный идентификатор и текст для анализа. Кроме того, можно предоставить 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 будет отображаться как (неизвестно), а значение оценки будет показано как 0. В следующем примере показано, как будет выглядеть ответ.

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