Поделиться через


Как использовать функцию распознавания языка

Функция распознавания языка может оценить текст и вернуть идентификатор языка, указывающий, на каком языке написан документ.

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

Функция "Распознавание языка" может обнаруживать широкий спектр языков, их наречий, диалектов и некоторых региональных или национальных языков.

Варианты разработки

Чтобы использовать обнаружение языка, вы отправляете необработанный неструктурированный текст для анализа и обрабатываете выходные данные API в приложении. Анализ выполняется на условиях "как есть", без дополнительной настройки используемой модели для ваших данных. Существует три способа использования обнаружения языка:

Вариант разработки Description
Студия службы "Язык" Language Studio — это веб-платформа, которая позволяет попробовать связывание сущностей с текстовыми примерами без учетной записи Azure и собственных данных при регистрации. Дополнительные сведения см. в кратком руководстве по веб-сайту Или языковой студии Language Studio.
REST API или клиентская библиотека (пакет SDK для Azure) Интегрируйте обнаружение языка в приложения с помощью REST API или клиентской библиотеки, доступной на различных языках. Дополнительные сведения см. в кратком руководстве по обнаружению языка.
Контейнер Docker Используйте доступный контейнер Docker, чтобы развернуть эту функцию локально. Эти контейнеры Docker позволяют разместить службу ближе к данным, чтобы обеспечивать безопасность, соответствие требованиям и пользоваться другими операционными преимуществами.

Определение способа обработки данных (необязательно)

Выбор модели распознавания языка

По умолчанию при распознавании языка в тексте будет использоваться последняя доступная модель ИИ. Вы также можете настроить запросы API для использования определенной версии модели.

Языки ввода

При отправке документов для оценки, функция распознавания языка попытается определить, был ли текст написан на каком-либо из поддерживаемых языков.

Если содержимое на менее распространенном языке, вы можете попробовать применить распознавание языка, чтобы узнать, вернет ли эта функция код. Для языков, которые невозможно распознать, ответ — unknown.

Отправка данных

Совет

Вы можете использовать для распознавания языка контейнер Docker, чтобы использовать API в локальной среде.

Анализ выполняется при получении запроса. При синхронном использовании функции распознавания языка состояние не отслеживается. Никакие данные в учетной записи не сохраняются, а все результаты немедленно возвращаются в ответе.

При асинхронном использовании этой функции результаты API доступны в течение 24 часов с момента приема запроса и указываются в ответе. По истечении этого периода результаты очищаются и больше не будут доступны для извлечения.

Получение результатов распознавания языка

При получении результатов от функции распознавания языка можно передать результаты в приложение или сохранить выходные данные в файл в локальной системе.

Обнаружение языка возвращает один преобладающий язык для каждого документа, который вы отправляете, а также имя ISO 639-1, удобочитаемое пользователем имя, оценка достоверности, имя скрипта и код скрипта в соответствии со стандартом ISO 15924. Положительная оценка 1 означает наивысший уровень достоверности анализа.

Неоднозначное содержимое

В некоторых случаях неоднозначность языков на основе входных данных может быть трудно устранить. Используйте параметр countryHint, чтобы указать код страны или региона в формате ISO 3166-1 alpha-2. По умолчанию API использует "US" как указание страны по умолчанию. Чтобы удалить такое поведение, можно сбросить этот параметр, установив вместо этого значения пустую строку countryHint = "".

Например, "обмен данными" распространен как на английском, так и на французском языках, а если задан ограниченный контекст, ответ будет основан на указании "США" страны или региона. Если известно, что источник текста находится во Франции, такие данные можно использовать в качестве указания.

Примечание.

Неоднозначное содержимое может привести к снижению показателей достоверности. Ответ countryHint применим только в том случае, если оценка достоверности меньше 0,8.

Входные данные

{
    "documents": [
        {
            "id": "1",
            "text": "communication"
        },
        {
            "id": "2",
            "text": "communication",
            "countryHint": "fr"
        }
    ]
}

Во втором документе модель обнаружения языка имеет дополнительный контекст, чтобы сделать лучшее решение, так как оно содержит countryHint свойство в входных данных выше. При этом будут возвращены следующие выходные данные.

Выходные данные

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

Если анализатору не удается выполнить синтаксический анализ входных данных,он возвращается (Unknown). Например, текстовая строка, состоящая только из чисел.

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

Содержание на разных языках

Содержимое на разных языках в одном и том же документе возвращает язык с самым большим представлением в содержимом, но с более низкой положительным рейтингом. Рейтинг отражает предельную силу оценки. В следующем примере входные данные — сочетание английского, испанского и французского языков. Анализатор подсчитывает число знаков в каждом сегменте, чтобы определить преобладающий язык.

Входные данные

{
    "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?"
        }
    ]
}

Выходные данные

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

{
    "kind": "LanguageDetectionResults",
    "results": {
        "documents": [
            {
                "id": "1",
                "detectedLanguage": {
                    "name": "Spanish",
                    "iso6391Name": "es",
                    "confidenceScore": 0.97,
                    "script": "Latin",
                    "scriptCode": "Latn"
                },
                "warnings": []
            }
        ],
        "errors": [],
        "modelVersion": "2023-12-01"
    }
}

Имя скрипта и код скрипта

Примечание.

  • Обнаружение скриптов в настоящее время ограничено выбором языков.
  • Обнаружение скрипта доступно только для текстовых входных данных, длина которых превышает 12 символов.

Обнаружение языка обеспечивает возможность обнаружения нескольких сценариев на язык в соответствии со стандартом ISO 15924. В частности, распознавание языка возвращает два свойства, связанные со скриптом:

  • script: удобочитаемое пользователем имя идентифицированного скрипта
  • scriptCode: код ISO 15924 для идентифицированного скрипта

Выходные данные API включают значение scriptCode свойства для документов, которые по крайней мере 12 символов или больше длины и соответствуют списку поддерживаемых языков и скриптов. Обнаружение скриптов предназначено для пользователей, язык которых может быть транслитерирован или написан в нескольких сценариях, таких как язык Казаха или Хинди.

Ранее обнаружение языка было разработано для обнаружения языка документов на различных языках, диалектах и региональных вариантах, но было ограничено "Романизация". Романизация относится к преобразованию текста из одной системы записи в римский (латинский) скрипт, и необходимо обнаружить многие индо-европейские языки. Однако существуют другие языки, написанные на нескольких сценариях, таких как казах, которые могут быть написаны на кириллице, Персо-арабском и латинском скриптах. Существуют и другие случаи, когда пользователи могут выбирать или должны выполнять транслитерацию языка в нескольких сценариях, таких как транслитерация Хинди в латинице, из-за ограниченной доступности клавиатур, которые поддерживают свой скрипт Devanagari.

Следовательно, расширенная поддержка обнаружения языка для обнаружения скриптов ведет себя следующим образом:

Входные данные

{ 
    "kind": "LanguageDetection", 
    "parameters": { 
        "modelVersion": "latest" 
    }, 
    "analysisInput": { 
        "documents": [ 
            { 
                "id": "1", 
                "text": "आप कहाँ जा रहे हैं?" 
            }, 
            { 
                "id": "2", 
                "text": "Туған жерім менің - Қазақстаным" 
            } 
        ] 
    } 
} 

Выходные данные

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

{ 
    "kind": "LanguageDetectionResults", 
    "results": { 
        "documents": [ 
            { 
                "id": "1", 
                "detectedLanguage": { 
                    "name": "Hindi", 
                    "iso6391Name": "hi", 
                    "confidenceScore": 1.0, 
                    "script": "Devanagari", 
                    "scriptCode": "Deva" 
                }, 
                "warnings": [] 
            }, 
            { 
                "id": "2", 
                "detectedLanguage": { 
                    "name": "Kazakh", 
                    "iso6391Name": "kk", 
                    "confidenceScore": 1.0, 
                    "script": "Cyrillic",  
                    "scriptCode": "Cyrl" 
                }, 
                "warnings": [] 
            } 
        ], 
        "errors": [], 
        "modelVersion": "2023-12-01" 
    } 
}

Ограничения службы и данных

Сведения о размере и числе запросов, которые можно отправлять в минуту и секунду, см. в статье об ограничениях службы.

См. также