2011-05-05 16 views
9

W mojej aplikacji Rails 3 użytkownicy mogą pisać wiadomości na forum. Chciałbym określić, jaki jest język dla danej wiadomości. Interesuję się językami angielskim, rosyjskim i hebrajskim. Czy istnieje jakaś wbudowana biblioteka w Ruby/Rails dla takiego zadania? Jeśli nie, wszelkie pomysły zostaną docenione.Jak wykrywać język danego tekstu?

+0

tutaj dobre odpowiedzi też https://stackoverflow.com/questions/3285511/how-can-i-detect-a-users-input-language-using-ruby-without-using-an-online-serv –

Odpowiedz

6

Użyj tego: https://github.com/nashby/wtf_lang

"ruby is so awesome!".lang # => "en" 
"ruby is so awesome!".full_lang # => "ENGLISH" 
+0

Dzięki! Czy wiesz, że istnieje coś podobnego, co pozwala przetłumaczyć jeden język na inny i korzysta z translatora Google? –

+0

Nie ma za co! Sprawdź to - https://github.com/jimmycuadra/to_lang –

+0

Świetnie, wielkie dzięki! –

5

Możesz użyć api dostarczonych przez google do odgadnięcia go za pomocą Google Translate.

Patrz tutaj dla dokumentacji: http://code.google.com/apis/language/translate/v1/using_rest_langdetect.html

+0

nie ma tam sekcji "Używanie Ruby" :( –

+2

Och, w takim przypadku będziesz musiał użyć Javy ... Niestety, nie mogłem się oprzeć :). Ma interfejs JSON. Możesz generować i parsować JSON łatwo z Ruby. – Matt

+0

W rzeczywistości istnieją tylko przykłady, należy przeanalizować JSON w każdym języku. W Ruby możesz użyć tego: http://developer.yahoo.com/ruby/ruby-json.html – Hartator

2

Skoro dotyczy języków z różnych zestawów znaków można wykopać charakter kody, które są przeważnie w twoich łańcuchach. Możesz wtedy sprawdzić, czy wpadają w zestawy kodu reprezentujące znaki hebrajskie/crylliczne.