Uso dell'API Controllo ortografico Bing

Avviso

Il 30 ottobre 2020 le API Ricerca Bing sono state spostate dai servizi di intelligenza artificiale di Azure ai servizi di Ricerca Bing. Questa documentazione viene fornita solo per riferimento. Per la documentazione aggiornata, vedere la documentazione dell'API ricerca Bing. Per istruzioni sulla creazione di nuove risorse di Azure per la ricerca Bing, vedere Creare una risorsa Ricerca Bing tramite il Azure Marketplace.

Questo articolo illustra come usare l'API Controllo ortografico Bing per eseguire il controllo grammaticale e ortografico contestuale. Mentre la maggior parte dei correttori ortografici usa set di regole basate sul dizionario, il controllo ortografico Bing usa l'apprendimento automatico e la traduzione automatica statistica per fornire correzioni accurate e contestuali.

Modalità di controllo ortografico

L'API supporta due modalità di controllo ortografico, Proof e Spell. Alcuni esempi sono disponibili qui.

Proof - per i documenti

La modalità predefinita è Proof. La Proof modalità di ortografia fornisce i controlli più completi, l'aggiunta di maiuscole e minuscole, la punteggiatura di base e altre funzionalità per facilitare la creazione di documenti. È tuttavia disponibile solo nei mercati en-US (Inglese - Stati Uniti), es-ES (Spagnolo), pt-BR (Portoghese). Nota: per lo spagnolo e il portoghese è disponibile solo la versione beta. Per tutti gli altri mercati è necessario impostare su Spell il parametro della query per la modalità.

Nota

se la lunghezza del testo della query è superiore a 4096, il testo verrà troncato a 4096 caratteri e quindi verrà elaborato.

Ortografia: per le ricerche/query Web

L'opzione Spell è più aggressiva, in modo da restituire risultati della ricerca migliori. La modalità Spell individua la maggior parte degli errori di ortografia, ma non trova alcuni errori grammaticali rilevati da Proof, ad esempio gli errori relativi a maiuscole e minuscole e alle parole ripetute.

Nota

  • La lunghezza massima supportata della query è indicata di seguito. Se la query supera la lunghezza massima, la query e i relativi risultati non verranno modificati.
    • 130 caratteri per i codici lingua seguenti: en, de, es, fr, pl, pt, sv, ru, nl, nb, tr-tr, it, zh, ko.
    • 65 caratteri per tutti gli altri.
  • La modalità Spell non supporta l'uso dei caratteri di parentesi quadra ([ e ]) nelle query e può causare risultati incoerenti. È consigliabile rimuoverli dalle query quando si usa la modalità Spell.

Impostazione relativa al mercato

È necessario specificare un codice di mercato con il parametro di query mkt nella richiesta, altrimenti l'API userà un mercato predefinito basato sull'indirizzo IP della richiesta.

Supporto di HTTP POST e HTTP GET

L'API supporta HTTP POST o HTTP GET. L'opzione usata dipende dalla lunghezza del testo da sottoporre a controllo ortografico. Se le stringhe hanno lunghezza sempre inferiore a 1.500 caratteri, è consigliabile usare GET. Per supportare stringhe con lunghezza massina di 10.000 caratteri, è necessario usare POST. La stringa di testo può includere qualsiasi carattere UTF-8 valido.

L'esempio seguente mostra una richiesta POST per il controllo dell'ortografia e della grammatica di una stringa di testo. L'esempio include il parametro di query mode per motivi di completezza. È anche possibile non usarlo in questo caso, perché per mode viene usata per impostazione predefinita la modalità Proof. Il parametro di query di testo contiene la stringa da controllare.

POST https://api.cognitive.microsoft.com/bing/v7.0/spellcheck?mode=proof&mkt=en-us HTTP/1.1  
Content-Type: application/x-www-form-urlencoded  
Content-Length: 47  
Ocp-Apim-Subscription-Key: 123456789ABCDE  
X-MSEdge-ClientIP: 999.999.999.999  
X-Search-Location: lat:47.60357;long:-122.3295;re:100  
X-MSEdge-ClientID: <blobFromPriorResponseGoesHere>  
Host: api.cognitive.microsoft.com  
 
text=when+its+your+turn+turn,+john,+come+runing  

Se si usa HTTP GET, è necessario includere il parametro di query text nella stringa di query dell'URL

Di seguito è riportata la risposta alla richiesta precedente. La risposta contiene un oggetto SpellCheck.

{  
    "_type" : "SpellCheck",  
    "flaggedTokens" : [{  
        "offset" : 5,  
        "token" : "its",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "it's",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 25,  
        "token" : "john",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "John",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 19,  
        "token" : "turn",  
        "type" : "RepeatedToken",  
        "suggestions" : [{  
            "suggestion" : "",  
            "score" : 1  
        }]  
    },  
    {  
        "offset" : 35,  
        "token" : "runing",  
        "type" : "UnknownToken",  
        "suggestions" : [{  
            "suggestion" : "running",  
            "score" : 1  
        }]  
    }]  
}  

Il campo flaggedTokens elenca gli errori di ortografia e di grammatica rilevati dall'API nella stringa text. Il campo token contiene la parola da sostituire. È necessario usare l'offset in base zero nel campo offset per trovare il token nella stringa text. Sostituire quindi la parola in tale posizione con la parola specificata nel campo suggestion.

Se il campo type è RepeatedToken, il token verrà comunque sostituito con suggestion ma è probabile che sia anche necessario rimuovere lo spazio finale.

Limitazione delle richieste

Il tipo di servizio e di sottoscrizione determina il numero di query al secondo che è possibile effettuare. Assicurarsi che l'applicazione includa la logica necessaria per rimanere entro la quota. Se il limite di query al secondo viene raggiunto o superato, la richiesta avrà esito negativo e verrà restituito un codice di stato HTTP 429. La risposta include l'intestazione Retry-After, che indica il tempo di attesa necessario prima dell'invio di un'altra richiesta.

Confronto tra Denial of Service (DoS) e limitazione

Il servizio distingue tra un attacco Denial of Service e una violazione del limite di query al secondo. Se il servizio sospetta un attacco Denial of Service, la richiesta avrà esito positivo, con codice di stato HTTP 200 OK. Il corpo della risposta sarà tuttavia vuoto.

Passaggi successivi