Supporto multilingue e emoji nelle funzionalità del servizio lingua

Il supporto multilingue e emoji ha portato a codifica Unicode che usano più di un punto di codice per rappresentare un singolo carattere visualizzato, denominato grapheme. Ad esempio, le emoji come 🌷 e 👍 possono usare diversi caratteri per comporre la forma con caratteri aggiuntivi per gli attributi visivi, ad esempio il tono della pelle. Analogamente, la parola अनुच्छेद Hindi viene codificata come cinque lettere e tre segni di combinazione.

A causa delle diverse lunghezze delle possibili codifiche multilingue e emoji, le funzionalità del servizio linguistico possono restituire gli offset nella risposta.

Offset nella risposta api

Ogni volta che vengono restituiti gli offset, tenere presente che:

  • Gli elementi nella risposta possono essere specifici dell'endpoint chiamato.
  • I payload HTTP POST/GET vengono codificati in UTF-8, che potrebbero o meno essere la codifica dei caratteri predefinita nel compilatore client o nel sistema operativo.
  • Gli offset fanno riferimento ai conteggi grapheme basati sullo standard Unicode 8.0.0 , non sui conteggi dei caratteri.

Estrazione di sottostringa dal testo con offset

Gli offset possono causare problemi quando si usano metodi di sottostringa basati su caratteri, ad esempio il metodo sottostringa .NET(). Un problema è che un offset può causare la fine di un metodo di sottostringa al centro di una codifica grapheme a più caratteri anziché alla fine.

In .NET prendere in considerazione l'uso della classe StringInfo , che consente di usare una stringa come serie di elementi testuali anziché singoli oggetti carattere. È anche possibile cercare librerie di splitter grapheme nell'ambiente software preferito.

Le funzionalità del servizio language restituiscono anche questi elementi testuali, per praticità.

Gli endpoint che restituiscono un offset supportano il stringIndexType parametro. Questo parametro regola gli offset attributi e length nell'output dell'API in modo che corrisponda allo schema di iterazione stringa richiesta. Attualmente, sono supportati tre tipi:

  • textElement_v8(impostazione predefinita): eserate su graphemes come definito dallo standard Unicode 8.0.0
  • unicodeCodePoint: esegue l'iterazione dei punti di codice Unicode, lo schema predefinito per Python 3
  • utf16CodeUnit: esegue l'iterazione su unità di codice UTF-16, lo schema predefinito per JavaScript, Java e .NET

Se l'ambiente di programmazione richiesto corrisponde all'ambiente di programmazione scelto, l'estrazione stringIndexType della sottostringa può essere eseguita usando metodi di sottostringa o sezione standard.

Vedi anche