# File lib/classifier/lsi/content_node.rb, line 35
    def raw_vector_with( word_list )
      if $GSL
         vec = Vector.new(word_list.size)
      else
         vec = Array.new(word_list.size, 0)
      end

      @word_hash.each_key do |word|
        vec[word_list[word]] = @word_hash[word] if word_list[word]
      end
     
      # Perform the scaling transform
      total_words = vec.sum
      
      # Perform first-order association transform if this vector has more
      # than one word in it. 
      if total_words > 1.0 
        weighted_total = 0.0
        vec.each do |term|
          if ( term > 0 )
            weighted_total += (( term / total_words ) * Math.log( term / total_words ))
          end
        end 
        vec = vec.collect { |val| Math.log( val + 1 ) / -weighted_total }
      end
      
      if $GSL
         @raw_norm   = vec.normalize
         @raw_vector = vec
      else
         @raw_norm   = Vector[*vec].normalize
         @raw_vector = Vector[*vec]
      end
    end