Uso de Bing Spell Check API

Advertencia

El 30 de octubre de 2020, las API de Bing Search se trasladaron de los servicios de Azure AI a los servicios de Bing Search. Esta documentación se proporciona solo como referencia. Para obtener documentación actualizada, consulte la documentación de Bing Search API. Para obtener instrucciones sobre cómo crear nuevos recursos de Azure para Bing Search, consulte el artículo sobre la creación de un recurso de Bing Search a través de Azure Marketplace.

En este artículo puede aprender sobre el uso de Bing Spell Check API para realizar la revisión ortográfica y gramatical contextual. Aunque la mayoría de los correctores ortográficos dependen de conjuntos de reglas basadas en diccionario, el corrector ortográfico de Bing aprovecha el aprendizaje automático y la traducción automática estadística para proporcionar correcciones precisas y contextuales.

Modos de comprobación ortográfica

La API admite dos modos de corrección, Proof y Spell. Vea los ejemplos aquí.

Proof: para documentos

El modo predeterminado es Proof. El modo de corrección ortográfica Proof es el que proporciona las comprobaciones más completas, agrega el uso de mayúsculas, la puntuación básica y otras características para facilitar la creación de documentos. Pero está disponible solo en los mercados de en-US (inglés de Estados Unidos), es-ES (español) y pt-BR (portugués) (Nota: en el caso de español y portugués solo en versión beta). Para los restantes mercados, establezca el parámetro de consulta de modo en Ortografía.

Nota:

Si el texto de la consulta tiene más de 4096 caracteres, se truncará a 4096 y luego se procesará.

Spell: para consultas y búsquedas web

Spell es más agresivo para devolver mejores resultados de búsqueda. El modo Spell busca la mayoría de los errores ortográficos, pero no encuentra algunos de los errores gramaticales que Proof detecta, por ejemplo, las palabras repetidas o los errores de mayúsculas y minúsculas.

Nota:

  • La longitud máxima de consulta admitida es inferior. Si la consulta supera la longitud máxima, ni la consulta ni sus resultados se modificarán.
    • 130 caracteres para los códigos de idioma siguientes: en, de, es, fr, pl, pt, sv, ru, nl, nb, tr-tr, it, zh y ko.
    • 65 caracteres para los demás.
  • El modo de corrección ortográfica no admite caracteres de corchetes ([ y ]) en las consultas y puede causar resultados incoherentes. Se recomienda eliminarlos de las consultas cuando se usa el modo de corrección ortográfica.

Configuración del mercado

Un código de mercado se debe especificar con el parámetro de consulta mkt en la solicitud. De lo contrario, la API usará un mercado predeterminado en función de la dirección IP de la solicitud.

Compatibilidad con HTTP POST y GET

La API admite de HTTP POST o HTTP GET. Lo que se usa depende de la longitud del texto que se va a revisar. Si todas las cadenas tienen menos de 1500 caracteres, usaría una operación GET. Pero si desea admitir cadenas de hasta 10 000 caracteres, usaría POST. La cadena de texto puede incluir cualquier carácter UTF-8 válido.

El ejemplo siguiente muestra una solicitud POST para comprobar la ortografía y la gramática de una cadena de texto. El ejemplo incluye el parámetro de consulta mode por razones de integridad (se podría se han omitido, ya que el valor predeterminado de mode es Proof). El parámetro de consulta text contiene la cadena que deben revisar.

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  

Si utiliza HTTP GET, incluiría el parámetro de consulta text en la cadena de consulta de la dirección URL

A continuación se muestra la respuesta a la solicitud anterior. La respuesta contiene un objeto 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  
        }]  
    }]  
}  

El campo flaggedTokens enumera los errores de ortografía y gramática que la API encontró en la cadena text. El campo token contiene la palabra que se va a reemplazar. Usaría el desplazamiento de base cero en el campo offset para buscar el token en la cadena text. Luego, reemplazaría la palabra de dicha ubicación por la palabra del campo suggestion.

Si el campo type es RepeatedToken, puede reemplazar el token por suggestion, pero es probable que también necesite quitar el espacio final.

Solicitudes de limitación

El servicio y el tipo de suscripción determinan el número de consultas que puede realizar por segundo (QPS). Asegúrese de que la aplicación incluye la lógica necesaria para mantenerse dentro de su cuota. Si se alcanza el límite de consultas por segundo, o se supera, se produce un error en la solicitud y se devolverá el código de estado HTTP 429. La respuesta incluye el encabezado Retry-After, que indica cuánto tiempo debe esperar antes de enviar otra solicitud.

Denegación de servicio frente a Limitación

El servicio diferencia entre un ataque de denegación de servicio (DoS) y una infracción de las consultas por segundo. Si el servicio sospecha de un ataque de denegación de servicio, la solicitud se realiza correctamente (código de estado HTTP 200 OK). Sin embargo, el cuerpo de la respuesta está vacío.

Pasos siguientes