Bing Yazım Denetimi API'sini kullanarak Yazım Denetimi
Bing Yazım Denetimi yazım denetimi gerçekleştiriyor ve yanlış yazılmış sözcükler için satır içi öneriler sağlıyor. Bu makalede, uygulamanın yazım hatalarını Bing Yazım Denetimi REST API için Bing Yazım Denetimi REST API nasıl kullanabileceğiniz Xamarin.Forms açıklanmıştır.
Genel Bakış
Api Bing Yazım Denetimi REST API iki çalışma moduna sahiptir ve API'ye istekte kullanılırken bir mod belirtilmelidir:
Spellbüyük/kısa metni (9 sözcüke kadar) büyük/yeni bir değişiklik yapmadan düzelter.Proofuzun metni düzelter, büyük/küçük resim düzeltmeleri ve temel noktalama işaretleri sağlar ve agresif düzeltmeleri bastırıyor.
Not
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Api'yi kullanmak için bir API anahtarı Bing Yazım Denetimi gerekir. Bu, Bilişsel Hizmetleri Deneyin'de edinilen bilgilerdir
Bing Yazım Denetimi API'si tarafından desteklenen dillerin listesi için bkz. Desteklenen diller. Bing Yazım Denetimi API hakkında daha fazla bilgi için bkz. Bing Yazım Denetimi Belgeleri.
Kimlik Doğrulaması
Bing Yazım Denetimi API'sinde yapılan her istek, üst bilgi değeri olarak belirtilmelidir bir API anahtarı Ocp-Apim-Subscription-Key gerektirir. Aşağıdaki kod örneğinde API anahtarının bir isteğin üst Ocp-Apim-Subscription-Key bilgisinde nasıl ekli olduğu gösterir:
public BingSpellCheckService()
{
httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", Constants.BingSpellCheckApiKey);
}
Api'lere geçerli bir API anahtarı Bing Yazım Denetimi olması 401 yanıt hatasına neden olur.
Yazım Denetimi Gerçekleştirme
Yazım denetimi, api'ye bir GET veya POST isteğinde bulundurarak SpellCheck elde https://api.cognitive.microsoft.com/bing/v7.0/SpellCheck edilebilir. GET isteğinde, yazım denetimi yapılan metin sorgu parametresi olarak gönderilir. POST isteğinde, yazım denetimi yapılan metin istek gövdesinde gönderilir. GET istekleri, sorgu parametresi dizesi uzunluğu sınırlaması nedeniyle 1500 karakterlik yazım denetimiyle sınırlıdır. Bu nedenle, kısa dizeler yazım denetimi olmadığı sürece POST istekleri genellikle yapılır.
Örnek uygulamada yöntemi yazım SpellCheckTextAsync denetimi işlemini çağırır:
public async Task<SpellCheckResult> SpellCheckTextAsync(string text)
{
string requestUri = GenerateRequestUri(Constants.BingSpellCheckEndpoint, text, SpellCheckMode.Spell);
var response = await SendRequestAsync(requestUri);
var spellCheckResults = JsonConvert.DeserializeObject<SpellCheckResult>(response);
return spellCheckResults;
}
yöntemi bir istek URI'si oluşturur ve ardından isteği API'ye gönderir ve sonucu SpellCheckTextAsyncSpellCheck içeren bir JSON yanıtı döndürür. JSON yanıtı, sonuç görüntüleme için çağırma yöntemine döndürülarak,rialized.
Yazım Denetlemeyi Yapılandırma
Yazım denetimi işlemi, HTTP sorgu parametreleri belirterek yalıtabilirsiniz:
string GenerateRequestUri(string spellCheckEndpoint, string text, SpellCheckMode mode)
{
string requestUri = spellCheckEndpoint;
requestUri += string.Format("?text={0}", text); // text to spell check
requestUri += string.Format("&mode={0}", mode.ToString().ToLower()); // spellcheck mode - proof or spell
return requestUri;
}
Bu yöntem, metni yazım denetimi ve yazım denetimi modu olarak ayarlar.
Sanal ağ hakkında daha fazla Bing Yazım Denetimi REST API için bkz. Yazım Denetimi API v7 başvurusu.
İsteği Gönderme
yöntemi, SendRequestAsync get isteğini Bing Yazım Denetimi REST API döndürür:
async Task<string> SendRequestAsync(string url)
{
var response = await httpClient.GetAsync(url);
return await response.Content.ReadAsStringAsync();
}
Bu yöntem GET isteğini API'ye gönderir ve istek URL'si çevrilen metni ve yazım SpellCheck denetimi modunu belirtir. Ardından yanıt okunur ve çağıran yönteme döndürülür.
İsteğin geçerli olması şartıyla API, isteğin başarılı olduğunu ve istenen bilgilerin yanıtta olduğunu belirten SpellCheck 200 (Tamam) HTTP durum kodunu gönderir. Yanıt nesnelerinin listesi için bkz. Yanıt nesneleri.
Yanıtı İşleme
API yanıtı JSON biçiminde döndürülür. Aşağıdaki JSON verileri yanlış yazılmış metnin yanıt iletisini Go shappin tommorow gösterir:
{
"_type":"SpellCheck",
"flaggedTokens":[
{
"offset":3,
"token":"shappin",
"type":"UnknownToken",
"suggestions":[
{
"suggestion":"shopping",
"score":1
}
]
},
{
"offset":11,
"token":"tommorow",
"type":"UnknownToken",
"suggestions":[
{
"suggestion":"tomorrow",
"score":1
}
]
}
],
"correctionType":"High"
}
dizisi, metinde doğru yazilemey olarak işaretlenen veya dilbilgisi olarak yanlış olan flaggedTokens bir sözcük dizisi içerir. Yazım veya dil bilgisi hatası bulunamasa dizi boş olur. Dizi içindeki etiketler:
offset– metin dizesinin başından işaretlenen sözcükle sıfır tabanlı kaydırma.token– metin dizesinde doğru yaz olmayan veya dilbilgisi açıdan yanlış olan sözcük.type– sözcüğün işaretlenmesine neden olan hatanın türü. İki olası değer vardır:RepeatedTokenveUnknownToken.suggestions– yazım veya dil bilgisi hatasını düzeltecek bir sözcük dizisi. Dizi, önerilen düzeltmenin doğru olduğu güven düzeyini gösterensuggestionscorebir ve dizisini gösterir.
Örnek uygulamada, JSON yanıtı bir örnekten, sonuç görüntüleme için çağırma yöntemine döndürüldü. SpellCheckResult Aşağıdaki kod örneği, örneğin SpellCheckResult görüntülenmek için nasıl işlenmiş olduğunu gösterir:
var spellCheckResult = await bingSpellCheckService.SpellCheckTextAsync(TodoItem.Name);
foreach (var flaggedToken in spellCheckResult.FlaggedTokens)
{
TodoItem.Name = TodoItem.Name.Replace(flaggedToken.Token, flaggedToken.Suggestions.FirstOrDefault().Suggestion);
}
Bu kod, koleksiyonda da aynı şekilde ilerler ve kaynak metinde yanlış yazılmış veya dilbilgisiyle yanlış yazılmış tüm FlaggedTokens sözcükleri ilk öneriyle değiştirir. Aşağıdaki ekran görüntüleri yazım denetimi öncesinde ve sonrasında gösterir:


Not
Yukarıdaki örnekte kolaylık sağlamak için 10000000000000000000000000000000000000000000000000000000000000 Replace API, güncelleştirme gerçekleştirmek için kaynak metinde doğru konumu belirlemek üzere üretim uygulamaları offset için kullanılacak değeri sağlar.
Özet
Bu makalede, uygulamanın yazım hatalarını Bing Yazım Denetimi REST API için Bing Yazım Denetimi REST API nasıl kullanabileceğiniz Xamarin.Forms açıklanmıştır. Bing Yazım Denetimi yazım denetimi gerçekleştiriyor ve yanlış yazılmış sözcükler için satır içi öneriler sağlıyor.
Örneği indirme