栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何检测字符串的语言?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何检测字符串的语言?

如果您的代码上下文可以访问互联网,则可以尝试使用Google API进行语言检测。
http://pre.google.com/apis/ajaxlanguage/documentation/

var text = "¿Dónde está el baño?";google.language.detect(text, function(result) {  if (!result.error) {    var language = 'unknown';    for (l in google.language.Languages) {      if (google.language.Languages[l] == result.language) {        language = l;        break;      }    }    var container = document.getElementById("detection");    container.innerHTML = text + " is: " + language + "";  }});

并且,由于您使用的是c#,因此请阅读本文,了解如何从c#调用API。

更新:该c#链接已消失,这是其核心的缓存副本:

string s = TextBoxTranslateEnglishToHebrew.Text;string key = "YOUR GOOGLE AJAX API KEY";GoogleLangaugeDetector detector =   new GoogleLangaugeDetector(s, VERSION.ONE_POINT_ZERO, key);GoogleTranslator gTranslator = new GoogleTranslator(s, VERSION.ONE_POINT_ZERO,   detector.LanguageDetected.Equals("iw") ? LANGUAGE.HEBREW : LANGUAGE.ENGLISH,   detector.LanguageDetected.Equals("iw") ? LANGUAGE.ENGLISH : LANGUAGE.HEBREW,   key);TextBoxTranslation.Text = gTranslator.Translation;

基本上,您需要创建一个URI并将其发送给Google,如下所示:

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=hello%20worled&langpair=en%7ciw&key=your_google_api_key_goes_here

这告诉API您想要将“ hello world”从英语翻译为希伯来语,Google的JSON响应应像这样:

{"responseData": {"translatedText":"שלום העולם"}, "responseDetails": null, "responseStatus": 200}

我选择制作一个代表典型Google JSON响应的基类:

[Serializable]public class JSONResponse{   public string responseDetails = null;   public string responseStatus = null;}

然后,从该类继承的Translation对象:

[Serializable]public class Translation: JSONResponse{   public TranslationResponseData responseData =     new TranslationResponseData();}

这个Translation类具有一个TranslationResponseData对象,如下所示:

[Serializable]public class TranslationResponseData{   public string translatedText;}

最后,我们可以制作GoogleTranslator类:

using System;using System.Collections.Generic;using System.Text;using System.Web;using System.Net;using System.IO;using System.Runtime.Serialization.Json;namespace GoogleTranslationAPI{   public class GoogleTranslator   {      private string _q = "";      private string _v = "";      private string _key = "";      private string _langPair = "";      private string _requestUrl = "";      private string _translation = "";      public GoogleTranslator(string queryTerm, VERSION version, LANGUAGE languageFrom,         LANGUAGE languageTo, string key)      {         _q = HttpUtility.UrlPathEnpre(queryTerm);         _v = HttpUtility.UrlEnpre(EnumStringUtil.GetStringValue(version));         _langPair = HttpUtility.UrlEnpre(EnumStringUtil.GetStringValue(languageFrom) + "|" + EnumStringUtil.GetStringValue(languageTo));         _key = HttpUtility.UrlEnpre(key);         string enpredRequestUrlFragment = string.Format("?v={0}&q={1}&langpair={2}&key={3}", _v, _q, _langPair, _key);         _requestUrl = EnumStringUtil.GetStringValue(baseURL.TRANSLATE) + enpredRequestUrlFragment;         GetTranslation();      }      public string Translation      {         get { return _translation; }         private set { _translation = value; }      }      private void GetTranslation()      {         try         { WebRequest request = WebRequest.Create(_requestUrl); WebResponse response = request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string json = reader.ReadLine(); using (MemoryStream ms = new MemoryStream(Encoding.Unipre.GetBytes(json))) {    DataContractJsonSerializer ser =       new DataContractJsonSerializer(typeof(Translation));    Translation translation = ser.ReadObject(ms) as Translation;    _translation = translation.responseData.translatedText; }         }         catch (Exception) { }      }   }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/447192.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号