Language and region support for LUIS

Important

LUIS will be retired on October 1st 2025 and starting April 1st 2023 you will not be able to create new LUIS resources. We recommend migrating your LUIS applications to conversational language understanding to benefit from continued product support and multilingual capabilities.

LUIS has a variety of features within the service. Not all features are at the same language parity. Make sure the features you are interested in are supported in the language culture you are targeting. A LUIS app is culture-specific and cannot be changed once it is set.

Multilingual LUIS apps

If you need a multilingual LUIS client application such as a chatbot, you have a few options. If LUIS supports all the languages, you develop a LUIS app for each language. Each LUIS app has a unique app ID, and endpoint log. If you need to provide language understanding for a language LUIS does not support, you can use the Translator service to translate the utterance into a supported language, submit the utterance to the LUIS endpoint, and receive the resulting scores.

Note

A newer version of Language Understanding capabilities is now available as part of Azure AI Language. For more information, see Azure AI Language Documentation. For language understanding capabilities that support multiple languages within the Language Service, see Conversational Language Understanding.

Languages supported

LUIS understands utterances in the following languages:

Language Locale Prebuilt domain Prebuilt entity Phrase list recommendations **Sentiment analysis and key phrase extraction
Arabic (preview - modern standard Arabic) ar-AR - - - -
*Chinese zh-cn -
Dutch nl-NL - -
English (United States) en-US
English (UK) en-GB
French (Canada) fr-CA - - -
French (France) fr-FR
German de-DE
Gujarati (preview) gu-IN - - - -
Hindi (preview) hi-IN - - -
Italian it-IT
*Japanese ja-JP Key phrase only
Korean ko-KR - - Key phrase only
Marathi (preview) mr-IN - - - -
Portuguese (Brazil) pt-BR not all sub-cultures
Spanish (Mexico) es-MX -
Spanish (Spain) es-ES
Tamil (preview) ta-IN - - - -
Telugu (preview) te-IN - - - -
Turkish tr-TR - Sentiment only

Language support varies for prebuilt entities and prebuilt domains.

*Chinese support notes

  • In the zh-cn culture, LUIS expects the simplified Chinese character set instead of the traditional character set.
  • The names of intents, entities, features, and regular expressions may be in Chinese or Roman characters.
  • See the prebuilt domains reference for information on which prebuilt domains are supported in the zh-cn culture.

*Japanese support notes

  • Because LUIS does not provide syntactic analysis and will not understand the difference between Keigo and informal Japanese, you need to incorporate the different levels of formality as training examples for your applications.
    • でございます is not the same as です.
    • です is not the same as だ.

**Language service support notes

The Language service includes keyPhrase prebuilt entity and sentiment analysis. Only Portuguese is supported for subcultures: pt-PT and pt-BR. All other cultures are supported at the primary culture level.

Speech API supported languages

See Speech Supported languages for Speech dictation mode languages.

Rare or foreign words in an application

In the en-us culture, LUIS learns to distinguish most English words, including slang. In the zh-cn culture, LUIS learns to distinguish most Chinese characters. If you use a rare word in en-us or character in zh-cn, and you see that LUIS seems unable to distinguish that word or character, you can add that word or character to a phrase-list feature. For example, words outside of the culture of the application -- that is, foreign words -- should be added to a phrase-list feature.

Hybrid languages

Hybrid languages combine words from two cultures such as English and Chinese. These languages are not supported in LUIS because an app is based on a single culture.

Tokenization

To perform machine learning, LUIS breaks an utterance into tokens based on culture.

Language every space or special character character level compound words
Arabic
Chinese
Dutch
English (en-us)
English (en-GB)
French (fr-FR)
French (fr-CA)
German
Gujarati
Hindi
Italian
Japanese
Korean
Marathi
Portuguese (Brazil)
Spanish (es-ES)
Spanish (es-MX)
Tamil
Telugu
Turkish

Custom tokenizer versions

The following cultures have custom tokenizer versions:

Culture Version Purpose
German
de-de
1.0.0 Tokenizes words by splitting them using a machine learning-based tokenizer that tries to break down composite words into their single components.
If a user enters Ich fahre einen krankenwagen as an utterance, it is turned to Ich fahre einen kranken wagen. Allowing the marking of kranken and wagen independently as different entities.
German
de-de
1.0.2 Tokenizes words by splitting them on spaces.
If a user enters Ich fahre einen krankenwagen as an utterance, it remains a single token. Thus krankenwagen is marked as a single entity.
Dutch
nl-nl
1.0.0 Tokenizes words by splitting them using a machine learning-based tokenizer that tries to break down composite words into their single components.
If a user enters Ik ga naar de kleuterschool as an utterance, it is turned to Ik ga naar de kleuter school. Allowing the marking of kleuter and school independently as different entities.
Dutch
nl-nl
1.0.1 Tokenizes words by splitting them on spaces.
If a user enters Ik ga naar de kleuterschool as an utterance, it remains a single token. Thus kleuterschool is marked as a single entity.

Migrating between tokenizer versions

Tokenization happens at the app level. There is no support for version-level tokenization.

Import the file as a new app, instead of a version. This action means the new app has a different app ID but uses the tokenizer version specified in the file.