Rileva lingua
L'API Rilevamento lingua di Azure AI valuta l'input di testo e, per ogni documento inviato, restituisce gli identificatori della lingua con un punteggio che indica l'attendibilità dell'analisi.
Questa funzionalità è utile per gli archivi di contenuto che includono testo arbitrario, in cui la lingua è sconosciuta. Un altro scenario può riguardare un chatbot. Se un utente avvia una sessione con il chatbot, è possibile usare il rilevamento della lingua per determinare la lingua in uso e configurare le risposte del bot nella lingua appropriata.
È possibile analizzare i risultati di questa analisi per determinare la lingua usata nel documento di input. La risposta restituisce anche un punteggio, che riflette l'attendibilità del modello (valore compreso tra 0 e 1).
Il rilevamento della lingua può funzionare con documenti o singole frasi. È importante tenere presente che la dimensione del documento deve essere inferiore a 5.120 caratteri. Il limite di dimensioni è definito per ogni documento e ogni raccolta è limitata a 1.000 elementi (ID). Di seguito è riportato un esempio di payload JSON formattato correttamente da inviare al servizio nel corpo della richiesta, inclusa una raccolta di documenti,ognuno dei quali contiene un ID univoco e il testo da analizzare. Facoltativamente, è possibile specificare una proprietà countryHint per migliorare le prestazioni di previsione.
{
"kind": "LanguageDetection",
"parameters": {
"modelVersion": "latest"
},
"analysisInput":{
"documents":[
{
"id": "1",
"text": "Hello world",
"countryHint": "US"
},
{
"id": "2",
"text": "Bonjour tout le monde"
}
]
}
}
Il servizio restituirà una risposta JSON che contiene un risultato per ogni documento nel corpo della richiesta, inclusa la lingua rilevata e un valore che indica il livello di confidenza della previsione. Il livello di attendibilità è un valore compreso tra 0 e 1, in cui i valori più vicini a 1 corrispondono a un livello di attendibilità maggiore. Ecco un esempio di risposta JSON standard mappata alla richiesta JSON precedente.
{ "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"
}
}
In questo esempio tutte le lingue indicano un'attendibilità pari a 1, in particolare perché il testo è relativamente semplice e la lingua è facilmente identificabile.
Se si passa un documento con contenuto multilingue, il servizio si comporterà in modo leggermente diverso. Se all'interno dello stesso documento è presente contenuto in più lingue, viene visualizzata la lingua più rappresentata, ma con una classificazione positiva inferiore, che riflette l'attendibilità marginale della valutazione. Nell'esempio seguente l'input è costituito da una combinazione di inglese, spagnolo e francese. L'analizzatore usa l'analisi statistica del testo per determinare la lingua predominante.
{
"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?"
}
]
}
L'esempio seguente mostra una risposta per questo esempio multilingue.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "Spanish",
"iso6391Name": "es",
"confidenceScore": 0.9375
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}
L'ultima condizione da considerare è la presenza di ambiguità in termini di contenuto in lingua. Questo scenario può verificarsi se si invia contenuto testuale che l'analizzatore non riesce ad analizzare, ad esempio a causa di problemi di codifica dei caratteri durante la conversione del testo in una variabile di tipo stringa. Di conseguenza, la risposta per il nome della lingua e il codice ISO indicherà (sconosciuta) e il valore del punteggio verrà restituito come 0
. L'esempio seguente mostra la risposta in questo caso.
{
"documents": [
{
"id": "1",
"detectedLanguage": {
"name": "(Unknown)",
"iso6391Name": "(Unknown)",
"confidenceScore": 0.0
},
"warnings": []
}
],
"errors": [],
"modelVersion": "2022-10-01"
}