Определение языка
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"
}