2011-09-21 121 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種語言模型完全兼容,因此它能夠檢測開箱即用的語言。