Sha256: c42a808adedac51b0068b1d7111aecf6fcf12c2048ca8ef8f45c9369167a5b32

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

if RUBY_PLATFORM =~/(mswin|mingw)/i
  require "lingua/#{RUBY_VERSION.sub(/\.\d+$/, '')}/stemmer_native"
else
  require 'lingua/stemmer_native'
end

module Lingua
  def self.stemmer(o, options={})
    stemmer = Stemmer.new(options)

    words = Array(o).map { |e| e.to_s }

    results = []
    words.each do |word|
      result = stemmer.stem(word)
      if block_given?
        yield result
      else
        results << result
      end
    end

    return stemmer if block_given?
    results.length == 1 ? results[0] : results
  end

  class Stemmer
    VERSION = File.read(File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "VERSION"))).strip!

    attr_reader :language
    attr_reader :encoding

    # Creates a new Stemmer, pass <tt>:language</tt> and <tt>:encoding</tt>
    # as arguments to change encoding or language, otherwise english with UTF_8
    # will be used
    #
    #   require 'lingua/stemmer'
    #   s = Lingua::Stemmer.new :language => 'fr'
    #
    def initialize options = {}
      @language = (options[:language] || 'en').to_s
      @encoding = (options[:encoding] || 'UTF_8').to_s
      native_init @language, @encoding
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-stemmer-0.8.5 lib/lingua/stemmer.rb
ruby-stemmer-0.8.3 lib/lingua/stemmer.rb
ruby-stemmer-0.8.2 lib/lingua/stemmer.rb
ruby-stemmer-0.8.1 lib/lingua/stemmer.rb