josephwilk-rsemantic 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ == 0.1.2
2
+
3
+ = Bugs
4
+ * Fixed problem where LSA was raising errors when trying to reduce dimensions of non-square matrixes. (Joseph Wilk)
5
+
1
6
  == 0.1.1
2
7
 
3
8
  = Bugs
@@ -7,17 +7,14 @@ module Semantic
7
7
  def transform(matrix, number_of_dimensions_to_reduce = 1)
8
8
  columns = matrix.num_columns
9
9
 
10
- if dimensions <= columns: #Its a valid reduction
11
-
10
+ if number_of_dimensions_to_reduce <= columns: #Its a valid reduction
12
11
  u, sigma, vt = matrix.singular_value_decomposition
13
12
 
14
13
  sigma_prime = reduce_dimensions(number_of_dimensions_to_reduce, sigma)
15
14
 
16
- #Reconstruct MATRIX' and Save transform
17
15
  matrix_prime = u * sigma_prime * vt
18
-
19
16
  else
20
- raise Exception, "dimension reduction cannot be greater than %s" % rows
17
+ raise Exception, "dimension reduction cannot be greater than %s" % columns
21
18
  end
22
19
 
23
20
  matrix_prime
@@ -25,13 +22,20 @@ module Semantic
25
22
 
26
23
  private
27
24
  def reduce_dimensions(number_of_dimensions_to_reduce, matrix)
28
- columns = matrix.num_columns
29
- for index in ((columns-number_of_dimensions_to_reduce)...columns)
30
- matrix[index,index] = 0
25
+ for diagonal_index in dimensions_to_be_reduced(matrix, number_of_dimensions_to_reduce)
26
+ matrix[diagonal_index, diagonal_index] = 0
31
27
  end
32
28
  matrix
33
29
  end
34
30
 
31
+ def dimensions_to_be_reduced(matrix, number_of_dimensions_to_reduce)
32
+ (diagonal_matrix_length(matrix) - number_of_dimensions_to_reduce)...diagonal_matrix_length(matrix)
33
+ end
34
+
35
+ def diagonal_matrix_length(matrix)
36
+ matrix.num_columns < matrix.num_rows ? matrix.num_columns : matrix.num_rows
37
+ end
38
+
35
39
  end
36
40
  end
37
41
  end
@@ -2,7 +2,7 @@ module Semantic #:nodoc:
2
2
  class VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 1
5
- TINY = 1
5
+ TINY = 2
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/rsemantic.gemspec CHANGED
@@ -1,14 +1,14 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{rsemantic}
3
- s.version = "0.1.1"
3
+ s.version = "0.1.2"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Joseph Wilk"]
7
- s.date = %q{2008-11-14}
7
+ s.date = %q{2008-11-19}
8
8
  s.description = %q{A document vector search with flexible matrix transforms. Currently supports Latent semantic analysis and Term frequency - inverse document frequency}
9
9
  s.email = ["josephwilk@joesniff.co.uk"]
10
10
  s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt", "TODO.txt"]
11
- s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "TODO.txt", "config/hoe.rb", "config/requirements.rb", "gem_tasks/deployment.rake", "gem_tasks/environment.rake", "gem_tasks/examples.rake", "gem_tasks/fix_cr_lf.rake", "gem_tasks/gemspec.rake", "gem_tasks/rspec.rake", "gem_tasks/website.rake", "lib/semantic.rb", "lib/semantic/compare.rb", "lib/semantic/matrix_transformer.rb", "lib/semantic/parser.rb", "lib/semantic/search.rb", "lib/semantic/transform.rb", "lib/semantic/transform/lsa_transform.rb", "lib/semantic/transform/tf_idf_transform.rb", "lib/semantic/vector_space.rb", "lib/semantic/vector_space/builder.rb", "lib/semantic/vector_space/model.rb", "lib/semantic/version.rb", "resources/english.stop", "rsemantic.gemspec", "spec/semantic/compare_spec.rb", "spec/semantic/matrix_transformer_spec.rb", "spec/semantic/parser_spec.rb", "spec/semantic/search_spec.rb", "spec/semantic/transform/lsa_transform_spec.rb", "spec/semantic/transform/tf_idf_transform_spec.rb", "spec/semantic/vector_space/builder_spec.rb", "spec/semantic/vector_space/model_spec.rb", "spec/spec.opts", "spec/spec_helper.rb"]
11
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "TODO.txt", "config/hoe.rb", "config/requirements.rb", "coverage/index.html", "coverage/lib-semantic-compare_rb.html", "coverage/lib-semantic-matrix_transformer_rb.html", "coverage/lib-semantic-parser_rb.html", "coverage/lib-semantic-search_rb.html", "coverage/lib-semantic-transform-lsa_transform_rb.html", "coverage/lib-semantic-transform-tf_idf_transform_rb.html", "coverage/lib-semantic-transform_rb.html", "coverage/lib-semantic-vector_space-builder_rb.html", "coverage/lib-semantic-vector_space-model_rb.html", "coverage/lib-semantic-vector_space_rb.html", "coverage/lib-semantic-version_rb.html", "coverage/lib-semantic_rb.html", "gem_tasks/deployment.rake", "gem_tasks/environment.rake", "gem_tasks/examples.rake", "gem_tasks/fix_cr_lf.rake", "gem_tasks/gemspec.rake", "gem_tasks/rspec.rake", "gem_tasks/website.rake", "lib/semantic.rb", "lib/semantic/compare.rb", "lib/semantic/matrix_transformer.rb", "lib/semantic/parser.rb", "lib/semantic/search.rb", "lib/semantic/transform.rb", "lib/semantic/transform/lsa_transform.rb", "lib/semantic/transform/tf_idf_transform.rb", "lib/semantic/vector_space.rb", "lib/semantic/vector_space/builder.rb", "lib/semantic/vector_space/model.rb", "lib/semantic/version.rb", "resources/english.stop", "rsemantic.gemspec", "spec/semantic/compare_spec.rb", "spec/semantic/matrix_transformer_spec.rb", "spec/semantic/parser_spec.rb", "spec/semantic/search_spec.rb", "spec/semantic/transform/lsa_transform_spec.rb", "spec/semantic/transform/tf_idf_transform_spec.rb", "spec/semantic/vector_space/builder_spec.rb", "spec/semantic/vector_space/model_spec.rb", "spec/spec.opts", "spec/spec_helper.rb"]
12
12
  s.has_rdoc = true
13
13
  s.homepage = %q{http://github.com/josephwilk/rsemantic}
14
14
  s.rdoc_options = ["--main", "README.txt"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: josephwilk-rsemantic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Wilk
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-11-14 00:00:00 -08:00
12
+ date: 2008-11-19 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -68,6 +68,19 @@ files:
68
68
  - TODO.txt
69
69
  - config/hoe.rb
70
70
  - config/requirements.rb
71
+ - coverage/index.html
72
+ - coverage/lib-semantic-compare_rb.html
73
+ - coverage/lib-semantic-matrix_transformer_rb.html
74
+ - coverage/lib-semantic-parser_rb.html
75
+ - coverage/lib-semantic-search_rb.html
76
+ - coverage/lib-semantic-transform-lsa_transform_rb.html
77
+ - coverage/lib-semantic-transform-tf_idf_transform_rb.html
78
+ - coverage/lib-semantic-transform_rb.html
79
+ - coverage/lib-semantic-vector_space-builder_rb.html
80
+ - coverage/lib-semantic-vector_space-model_rb.html
81
+ - coverage/lib-semantic-vector_space_rb.html
82
+ - coverage/lib-semantic-version_rb.html
83
+ - coverage/lib-semantic_rb.html
71
84
  - gem_tasks/deployment.rake
72
85
  - gem_tasks/environment.rake
73
86
  - gem_tasks/examples.rake