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