Sha256: 4d7e39af74b2a71ab6070295e575902c21219b6c8d34623c69fb41c9b5ff873c

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

require 'gsl'
require 'delegate'
require 'stringio'

module RSemantic
  module VectorSpace

    class Model < DelegateClass(::GSL::Matrix)
      def initialize(matrix, keywords)
        @keywords = keywords || {}
        @_dc_obj = matrix
        super(matrix)
      end

      def matrix=(matrix)
        @_dc_obj = matrix
      end

      def matrix
        @_dc_obj
      end

      def to_s
        out = StringIO.new
        out.print " " * 12

        matrix.size2.times do |id|
          out.print "  D#{id+1}  "
        end
        out.puts

        matrix.to_a.each_with_index do |terms, index|

          if @keywords.has_value?(index)
            index_position = @keywords.values.index(index)
            key = @keywords.keys[index_position]

            out.print "#{key.ljust(10)}"
          end
          out.print "[ "

          terms.each do |document|
            out.print "%+0.2f " % document
          end
          out.print "]"
          out.puts
        end

        out.string
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rsemantic-0.3.0 lib/rsemantic/vector_space/model.rb