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.
Bing Spell Check supported languages
See Bing Spell Check Supported languages for a list of supported languages and status.
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 |
---|---|---|
Germande-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. |
Germande-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. |
Dutchnl-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. |
Dutchnl-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.