Rilevare la lingua

Completato

L'API di rilevamento del linguaggio di intelligenza artificiale di Azure valuta l'input di testo e, per ogni documento inviato, restituisce gli identificatori di lingua con un punteggio che indica la forza dell'analisi.

Questa funzionalità è utile per gli archivi contenuto che raccolgono testo arbitrario, in cui la lingua è sconosciuta. Un altro scenario potrebbe comportare un chatbot. Se un utente avvia una sessione con il chatbot, il rilevamento della lingua può essere usato per determinare quale lingua usa e consentire di configurare le risposte del bot nel linguaggio appropriato.

È possibile analizzare i risultati di questa analisi per determinare quale lingua viene usata nel documento di input. La risposta restituisce anche un punteggio, che riflette l'attendibilità del modello (un valore compreso tra 0 e 1).

Il rilevamento della lingua può funzionare con documenti o singole frasi. È importante notare che la dimensione del documento deve essere inferiore a 5.120 caratteri. Il limite di dimensioni è per documento e ogni raccolta è limitata a 1.000 elementi (ID). Di seguito è riportato un esempio di payload JSON formattato correttamente che è possibile inviare al servizio nel corpo della richiesta, inclusa una raccolta di documenti , ognuno contenente un ID univoco e il testo da analizzare. Facoltativamente, è possibile fornire un countryHint per migliorare le prestazioni di stima.

{
    "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, inclusi il linguaggio stimato e un valore che indica il livello di attendibilità della stima. Il livello di attendibilità è un valore compreso tra 0 e 1, con valori più vicini a 1 che sono un livello di confidenza superiore. Di seguito è riportato un esempio di risposta JSON standard mappata al codice JSON della richiesta 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"
    }
}

Nell'esempio, tutte le lingue mostrano una confidenza di 1, principalmente perché il testo è relativamente semplice e facile da identificare per la lingua.

Se si passa un documento con contenuto multilingue, il servizio avrà un comportamento leggermente diverso. Il contenuto linguistico misto all'interno dello stesso documento restituisce la lingua con la rappresentazione più grande nel contenuto, ma con una classificazione positiva inferiore, riflettendo la forza marginale di tale valutazione. Nell'esempio seguente l'input è una miscela di inglese, spagnolo e francese. L'analizzatore utilizza 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 è quando si verifica un'ambiguità nel contenuto linguistico. Lo scenario può verificarsi se si invia contenuto testuale che l'analizzatore non è in grado di analizzare, ad esempio a causa di problemi di codifica dei caratteri durante la conversione del testo in una variabile stringa. Di conseguenza, la risposta per il nome della lingua e il codice ISO indicherà (sconosciuto) e il valore del punteggio verrà restituito come 0. Nell'esempio seguente viene illustrato l'aspetto della risposta.

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