2011-09-21 45 views
0

可能重复:
Return the language of a given string查找字符串的语言,C#

在我的节目,我必须找到一个输入字符串的语言。 例如,如果一个用户输入

"hello world" 

检测的语言是英语,并且如果用户输入

"RUE" 

它应该是法语。

目前,在我的项目中,用户可以输入法语或英语。

我试过使用CultureInfo类,但我没有得到任何结果。

+0

您的应用程序需要某种字典,因此它可以识别字符串。无论如何,没有办法承认。 –

+4

“rue”也是一个英文单词。即使它没有形成一个完整的英文句子,为什么你的程序不会将它检测为英文而是法文? – BoltClock

+1

你可以使用谷歌语言API(不推荐使用)或类似的东西。看看下面的答案:http://stackoverflow.com/questions/1192768/return-the-language-of-a-given-string/1192802#1192802。没有简单的方法来实现这个开箱即用。 –

回答

0

没有构建功能,这不是一项简单的任务,但看看this question and answer。如果你有足够大的学习基础,那么它可以用来确定一个文本被写入的语言。它总是最好的猜测,因为一些文本如医学英语使用了很多你会发现的单词法文文本(或至少在哪里的文字比英文更类似于英文,即使文本是用英文写的)

一个非常好的例子,它可以很难确定语言,特别是当文本短实际上是“rue”。这是法国的街道,但也是至少4个不同国家的城市,所以有5种可能的语言。一个是法国人,一个是英国人。 (弗吉尼亚州有一个小镇Rue)

0

在.NET中没有这样的内置功能,所以你需要自己实现它(这在资源方面非常昂贵),或者试图利用公共服务,如谷歌翻译可能(或可能不是)对此任务有用。

1

我认为你需要包含语言词典,然后匹配单词输入以预测提供输入的准确语言。

TextCat对语言识别非常有用。它有很多不同的语言实现。

Ivan Akcheurov已经生成了一个没有端口的版本,可以找到HERE

它是纯粹的.net框架的dll +命令行界面。它与来自TextCat的74种语言模型完全兼容,因此它能够检测开箱即用的语言。