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

Завершено

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"
}