Sha256: 47225e68ee47c234ddaaefc9189b325cac8805c0570cd5b5378a285e94fac331

Contents?: true

Size: 1.26 KB

Versions: 4

Compression:

Stored size: 1.26 KB

Contents

require 'sastrawi/dictionary/array_dictionary'

require 'sastrawi/stemmer/cached_stemmer'
require 'sastrawi/stemmer/stemmer'

require 'sastrawi/stemmer/cache/array_cache'

##
# Stemmer factory helps creating a pre-configured stemmer

module Sastrawi
  module Stemmer
    class StemmerFactory
      def create_stemmer(is_dev = false)
        stemmer = Sastrawi::Stemmer::Stemmer.new(create_default_dictionary(is_dev))

        cache_result = Sastrawi::Stemmer::Cache::ArrayCache.new
        cached_stemmer = Sastrawi::Stemmer::CachedStemmer.new(cache_result, stemmer)

        cached_stemmer
      end

      def create_default_dictionary(is_dev = false)
        words = get_words(is_dev)
        dictionary = Sastrawi::Dictionary::ArrayDictionary.new(words)

        dictionary
      end

      def get_words(is_dev = false)
        get_words_from_file
      end

      def get_words_from_file
        root_directory = File.expand_path('../../../..', __FILE__)
        dictionary_file_path = File.join(root_directory, 'data/base-word.txt')

        dictionary_content = []
        File.open(dictionary_file_path, 'r') do |file|
          file.each do |line|
            dictionary_content.push(line.chomp)
          end
        end

        dictionary_content
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sastrawi-0.1.4 lib/sastrawi/stemmer/stemmer_factory.rb
sastrawi-0.1.3 lib/sastrawi/stemmer/stemmer_factory.rb
sastrawi-0.1.2 lib/sastrawi/stemmer/stemmer_factory.rb
sastrawi-0.1.1 lib/sastrawi/stemmer/stemmer_factory.rb