问题
The Bing spell check API has a 10,000 char limit for the chunk of text that the request would like to do a spell check [mode=spell] or proof read [mode=proof(default)].
However I am running into an issue where a chunk of misspelt text clearly under the limit of 10k, does not return back with flagged tokens in a spell check request, but does return back in the proof read request.
What gives? Is there a lower limit for Spell check?
Output for both requests below. I am using POST in both cases and both responses return a 200 OK
Mode: spell
Request:
POST https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?mode=spell HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: api.cognitive.microsoft.com Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••
Text=This is a long sentance with some mistakes in here. its supposed to be a question but i can’t think of a long question. maybe that means i don’t have something selious to ask?
Response:
Vary: Accept-Encoding BingAPIs-TraceId: 2802E335D1A04D22865FCA6039E61233 X-MSEdge-ClientID: 3F1CA016365F6B862DF6AA10376E6A50 X-MSAPI-UserState: 97c3 BingAPIs-Market: en-US X-MSEdge-Ref: Ref A: 2802E335D1A04D22865FCA6039E61233 Ref B: E62A760E2E5891B3D022742C51159258 Ref C: Tue Jan 10 13:44:58 2017 PST apim-request-id: 7b94e044-d1fe-4bbc-a153-4d4e5ef30586 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload Cache-Control: max-age=0, private Date: Tue, 10 Jan 2017 21:44:57 GMT P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND" Content-Length: 44 Content-Type: application/json; charset=utf-8 Expires: Tue, 10 Jan 2017 21:43:57 GMT
{ "_type": "SpellCheck", "flaggedTokens": [] }
Mode: proof
Request:
POST https://api.cognitive.microsoft.com/bing/v5.0/spellcheck/?mode=proof HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: api.cognitive.microsoft.com Ocp-Apim-Subscription-Key: ••••••••••••••••••••••••••••••••
Text=This is a long sentance with some mistakes in here. its supposed to be a question but i can’t think of a long question. maybe that means i don’t have something selious to ask?
Response:
Vary: Accept-Encoding BingAPIs-TraceId: 627B24C4E6D148E1B441F29A4872942B X-MSEdge-ClientID: 33F31CBFF80462EB27B316B9F935630A X-MSAPI-UserState: 983f BingAPIs-Market: en-US X-MSEdge-Ref: Ref A: 627B24C4E6D148E1B441F29A4872942B Ref B: 79AB388A3DFCBD481B71DB909B097DC3 Ref C: Tue Jan 10 13:46:16 2017 PST apim-request-id: 645f3de5-6823-40d1-aea6-312e10d1eee2 Strict-Transport-Security: max-age=31536000; includeSubDomains; preload Cache-Control: max-age=0, private Date: Tue, 10 Jan 2017 21:46:16 GMT P3P: CP="NON UNI COM NAV STA LOC CURa DEVa PSAa PSDa OUR IND" Content-Length: 700 Content-Type: application/json; charset=utf-8 Expires: Tue, 10 Jan 2017 21:45:16 GMT
{
"_type": "SpellCheck",
"flaggedTokens": [
{ "offset": 15, "token": "sentance", "type": "UnknownToken", "suggestions": [ { "suggestion": "sentence", "score": 0.687877624668787 } ] }, { "offset": 86, "token": "i", "type": "UnknownToken", "suggestions": [ { "suggestion": "I", "score": 0 } ] }, { "offset": 137, "token": "i", "type": "UnknownToken", "suggestions": [ { "suggestion": "I", "score": 0 } ] }, { "offset": 52, "token": "its", "type": "UnknownToken", "suggestions": [ { "suggestion": "it's", "score": 0.830337199488689 } ] }, { "offset": 160, "token": "selious", "type": "UnknownToken", "suggestions": [ { "suggestion": "serious", "score": 0.897224156828521 }, { "suggestion": "delicious", "score": 0.687622047694618 } ] }
]
}
回答1:
This is a different source of Bing's API, but is probably the source of truth: https://dev.cognitive.microsoft.com/docs/services/56e73033cf5ff80c2008c679/operations/56e73036cf5ff81048ee6727
Spell - Meant to provide Search engine like spelling corrections. It will correct small queries(up to length 9 tokens) without any casing changes and will be more optimized (perf and relevance) towards search like queries.
来源:https://stackoverflow.com/questions/41579088/does-bing-spell-check-api-have-an-additional-length-restriction-for-mode-spell