2012-09-15 5 views
3

아는 사람 있습니까? 나는 완벽하게 좋은 단어 인 맞춤법 검사 "촉진제"를 전달합니다. 나는 "가속 해"돌아온다? 브라우저에서 Google을 열고 "accelerants"를 입력하면 "accelerates"라고 제안하지 않습니까?Google 맞춤법 검사기 API

using System; 
using System.Net; 
using System.Text; 
using System.Text.RegularExpressions; 

namespace SpellCheck 
{ 
    class googel_SP 
    { 
     public string word; 
     public void run_G() 
     { 
      string retValue = string.Empty; 
      string Iword = "accelerants"; 

      try 
      { 
       string uri = "https://www.google.com/tbproxy/spell?lang=en:"; 
       using (WebClient webclient = new WebClient()) 
       { 
        string postData = string.Format("<?xml version=\"1.0\"  encoding=\"utf-8\" ?> " 
        + "<spellrequest textalreadyclipped=\"0\" ignoredups=\"0\"  ignoredigits=\"1\" " 
        + "ignoreallcaps=\"1\"><text>{0}</text></spellrequest>", Iword); 

        webclient.Headers.Add("Content-Type", "application/x-www-form- urlencoded"); 
        byte[] bytes = Encoding.ASCII.GetBytes(postData); 
        byte[] response = webclient.UploadData(uri, "POST", bytes); 
        string data = Encoding.ASCII.GetString(response); 
        if (data != string.Empty) 
        { 
         retValue = Regex.Replace(data, @"<(.|\n)*?>",  string.Empty).Split('\t')[0]; 
         Console.WriteLine(" word in -> " + word + " word out -> " +  retValue); 
        } 
       } 
      } 
      catch (Exception exp) 
      { 

      } 
      //return retValue; 
     } 
    } 

} 

답변

0

재미있는 ... 난 당신의 코드를 실행하고 나는 의도적으로 검색 용어로 "accelrants"를 전달하면, 올바르게 "촉진제"를 반환합니다. 그러나 "accelerants"를 전달하면 "accelerates"를 반환합니다. 언어와 텍스트 인코딩을 변경해도 차이가없는 것처럼 보입니다.

다음은 동일한 작업을 수행합니다 대체 코드 job..obviously 오류 처리의 약간을 필요로입니다하지만 당신은 아이디어 :

string retValue = string.Empty; 
word = "accelerants"; 

string uri = string.Format("http://www.google.com/complete/search?output=toolbar&q={0}", word); 

HttpWebRequest request = (HttpWebRequest) WebRequest.Create(uri); 
HttpWebResponse response = (HttpWebResponse) request.GetResponse(); 

using (StreamReader sr = new StreamReader(response.GetResponseStream())) { 
    retValue = sr.ReadToEnd(); 
} 

XDocument doc = XDocument.Parse(retValue); 

XAttribute attr = doc.Root.Element("CompleteSuggestion").Element("suggestion").Attribute("data"); 

string correctedWord = attr.Value; 
를 얻을 수