在我的节目,我必须找到一个输入字符串的语言。 例如,如果一个用户输入
"hello world"
检测的语言是英语,并且如果用户输入
"RUE"
它应该是法语。
目前,在我的项目中,用户可以输入法语或英语。
我试过使用CultureInfo类,但我没有得到任何结果。
在我的节目,我必须找到一个输入字符串的语言。 例如,如果一个用户输入
"hello world"
检测的语言是英语,并且如果用户输入
"RUE"
它应该是法语。
目前,在我的项目中,用户可以输入法语或英语。
我试过使用CultureInfo类,但我没有得到任何结果。
没有构建功能,这不是一项简单的任务,但看看this question and answer。如果你有足够大的学习基础,那么它可以用来确定一个文本被写入的语言。它总是最好的猜测,因为一些文本如医学英语使用了很多你会发现的单词法文文本(或至少在哪里的文字比英文更类似于英文,即使文本是用英文写的)
一个非常好的例子,它可以很难确定语言,特别是当文本短实际上是“rue”。这是法国的街道,但也是至少4个不同国家的城市,所以有5种可能的语言。一个是法国人,一个是英国人。 (弗吉尼亚州有一个小镇Rue)
在.NET中没有这样的内置功能,所以你需要自己实现它(这在资源方面非常昂贵),或者试图利用公共服务,如谷歌翻译可能(或可能不是)对此任务有用。
我认为你需要包含语言词典,然后匹配单词输入以预测提供输入的准确语言。
TextCat对语言识别非常有用。它有很多不同的语言实现。
Ivan Akcheurov已经生成了一个没有端口的版本,可以找到HERE。
它是纯粹的.net框架的dll +命令行界面。它与来自TextCat的74种语言模型完全兼容,因此它能够检测开箱即用的语言。
Google Translate API支持检测字符串的语言。这是一个paid service,但可能值钱。
您的应用程序需要某种字典,因此它可以识别字符串。无论如何,没有办法承认。 –
“rue”也是一个英文单词。即使它没有形成一个完整的英文句子,为什么你的程序不会将它检测为英文而是法文? – BoltClock
你可以使用谷歌语言API(不推荐使用)或类似的东西。看看下面的答案:http://stackoverflow.com/questions/1192768/return-the-language-of-a-given-string/1192802#1192802。没有简单的方法来实现这个开箱即用。 –