LanguageDetection
Ruby bindings for Chromium Compact Language Detector (source). This gem is using source codes from chromium-compact-language-detector port.
Installation
Add this line to your application's Gemfile:
gem 'language_detection'
And then execute:
$ bundle
Or install it yourself as:
$ gem install language_detection
Usage
>> require 'language_detection'
=> true
>> language = LanguageDetection.perform("This is some example text for language detection")
=> #<LanguageDetection::Language:0x007fae0404f628 @name="english", @code="en", @reliable=true, @text_bytes=51, @details=[#<LanguageDetection::Language:0x007fae0404eb10 @name="english", @code="en", @details=[], @percent=100, @score=49.43273905996759>]>
>> language.name
=> "english"
>> language.code
=> "en"
>> language.reliable
=> true
>> language.details # contains up to 3 languages sorted by score
=> [#<LanguageDetection::Language:0x007fae0404eb10 @name="english", @code="en", @details=[], @percent=100, @score=49.43273905996759>]
>> language.details.first.percent
=> 100
>> language.details.first.score
=> 49.43273905996759
the other way is to include LanguageDetection
module in your class
class Article
include LanguageDetection
attr_accessor :title, :content
def initialize(params = {})
@title = params[:title]
@content = params[:content]
end
def to_s
"#{title}\n#{content}"
end
end
which provides Article#language
method using Article#to_s
method as parameter
>> article = Article.new :title => "Web development that doesn't hurt", :content => "Tens of thousands of Rails applications are already live..."
>> article.language
=> #<LanguageDetection::Language:0x007fae049dd8e8 @name="english", @code="en", @reliable=true, @text_bytes=93, @details=[#<LanguageDetection::Language:0x007fae049dd118 @name="english", @code="en", @details=[], @percent=100, @score=80.22690437601297>]>
or you can add String#language
method by require 'language_detection/string'
>> require 'language_detection'
=> true
>> require 'language_detection/string'
=> true
>> "Web development that doesn't hurt".language
=> #<LanguageDetection::Language:0x007fae049cfec8 @name="english", @code="en", @reliable=true, @text_bytes=36, @details=[#<LanguageDetection::Language:0x007fae049cf7e8 @name="english", @code="en", @details=[], @percent=100, @score=39.70826580226905>]>
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request