Sha256: fe2e3598edb8ba3c80cbdaaebcc7b6825250dddf3ea84bdcb7f7b7b9fcbca404

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

module Semantic
  class Search

    def initialize(documents, options={})
      Semantic.logger.level = options[:verbose] ? Logger::INFO : Logger::ERROR 
      
      @builder = VectorSpace::Builder.new(options)
      @matrix_transformer = MatrixTransformer.new(options)

      @vector_space_model = @builder.build_document_matrix(documents)
      
      Semantic.logger.info(@vector_space_model)
      
      @vector_space_model = @matrix_transformer.apply_transforms(@vector_space_model)
    end
  
    def related(documentId)
      ratings = []
      for index in (0...@vector_space_model.ncol)
        ratings << Compare.similarity(@vector_space_model.column(documentId), @vector_space_model.column(index))
      end
      ratings
    end

    def search(searchList)
      ratings = []
      query_vector = @builder.build_query_vector(searchList)
      for index in (0...@vector_space_model.ncol)
        ratings << Compare.similarity(query_vector, @vector_space_model.column(index))
      end
      ratings
    end
  
  end
end

Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
josephwilk-rsemantic-0.1.1 lib/semantic/search.rb
josephwilk-rsemantic-0.1.2 lib/semantic/search.rb
josephwilk-rsemantic-0.1.3 lib/semantic/search.rb
rsemantic-0.1.3 lib/semantic/search.rb