recommendify-ruby 0.3.8
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/Gemfile +9 -0
- data/README.md +154 -0
- data/Rakefile +18 -0
- data/doc/example.png +0 -0
- data/doc/example.rb +87 -0
- data/doc/example_data.csv +120048 -0
- data/ext/cc_item.h +8 -0
- data/ext/cosine.c +3 -0
- data/ext/extconf.rb +18 -0
- data/ext/iikey.c +18 -0
- data/ext/jaccard.c +19 -0
- data/ext/output.c +22 -0
- data/ext/recommendify.c +214 -0
- data/ext/sort.c +23 -0
- data/ext/version.h +17 -0
- data/lib/recommendify.rb +9 -0
- data/lib/recommendify/base.rb +86 -0
- data/lib/recommendify/cc_matrix.rb +51 -0
- data/lib/recommendify/cosine_input_matrix.rb +7 -0
- data/lib/recommendify/input_matrix.rb +52 -0
- data/lib/recommendify/jaccard_input_matrix.rb +62 -0
- data/lib/recommendify/neighbor.rb +19 -0
- data/lib/recommendify/recommendify.rb +25 -0
- data/lib/recommendify/similarity_matrix.rb +62 -0
- data/lib/recommendify/sparse_matrix.rb +53 -0
- data/recommendify.gemspec +25 -0
- data/spec/base_spec.rb +188 -0
- data/spec/cc_matrix_shared.rb +89 -0
- data/spec/cosine_input_matrix_spec.rb +18 -0
- data/spec/input_matrix_shared.rb +27 -0
- data/spec/input_matrix_spec.rb +29 -0
- data/spec/jaccard_input_matrix_spec.rb +95 -0
- data/spec/recommendify_spec.rb +28 -0
- data/spec/similarity_matrix_spec.rb +93 -0
- data/spec/sparse_matrix_spec.rb +78 -0
- data/spec/spec_helper.rb +42 -0
- metadata +128 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
require "rspec"
|
2
|
+
require "redis"
|
3
|
+
|
4
|
+
require ::File.expand_path('../../lib/recommendify', __FILE__)
|
5
|
+
|
6
|
+
require ::File.expand_path('../input_matrix_shared.rb', __FILE__)
|
7
|
+
require ::File.expand_path('../cc_matrix_shared.rb', __FILE__)
|
8
|
+
|
9
|
+
def flush_redis!
|
10
|
+
Recommendify.redis = Redis.new
|
11
|
+
Recommendify.redis.keys("recommendify-test*").each do |k|
|
12
|
+
Recommendify.redis.del(k)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class Recommendify::Base
|
17
|
+
|
18
|
+
def redis_prefix
|
19
|
+
"recommendify-test"
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
class TestRecommender < Recommendify::Base
|
26
|
+
|
27
|
+
input_matrix :jaccard_one,
|
28
|
+
:similarity_func => :jaccard
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
class Recommendify::TestInputMatrix
|
33
|
+
|
34
|
+
def initialize(opts)
|
35
|
+
@opts = opts
|
36
|
+
end
|
37
|
+
|
38
|
+
def method_missing(method, *args)
|
39
|
+
@opts[method]
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
metadata
ADDED
@@ -0,0 +1,128 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: recommendify-ruby
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.8
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Paul Asmuth
|
9
|
+
- Raj Shah
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2013-03-08 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: redis
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.2.2
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - '>='
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 2.2.2
|
31
|
+
- !ruby/object:Gem::Dependency
|
32
|
+
name: rspec
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: 2.8.0
|
39
|
+
type: :development
|
40
|
+
prerelease: false
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 2.8.0
|
47
|
+
description: Recommendify is a distributed, incremental item-based recommendation
|
48
|
+
engine for binary input ratings. It's based on ruby and redis and uses an approach
|
49
|
+
called "Collaborative Filtering"
|
50
|
+
email:
|
51
|
+
- paul@paulasmuth.com
|
52
|
+
- brainix@gmail.com
|
53
|
+
executables: []
|
54
|
+
extensions: []
|
55
|
+
extra_rdoc_files: []
|
56
|
+
files:
|
57
|
+
- Gemfile
|
58
|
+
- README.md
|
59
|
+
- Rakefile
|
60
|
+
- doc/example.png
|
61
|
+
- doc/example.rb
|
62
|
+
- doc/example_data.csv
|
63
|
+
- ext/cc_item.h
|
64
|
+
- ext/cosine.c
|
65
|
+
- ext/extconf.rb
|
66
|
+
- ext/iikey.c
|
67
|
+
- ext/jaccard.c
|
68
|
+
- ext/output.c
|
69
|
+
- ext/recommendify.c
|
70
|
+
- ext/sort.c
|
71
|
+
- ext/version.h
|
72
|
+
- lib/recommendify.rb
|
73
|
+
- lib/recommendify/base.rb
|
74
|
+
- lib/recommendify/cc_matrix.rb
|
75
|
+
- lib/recommendify/cosine_input_matrix.rb
|
76
|
+
- lib/recommendify/input_matrix.rb
|
77
|
+
- lib/recommendify/jaccard_input_matrix.rb
|
78
|
+
- lib/recommendify/neighbor.rb
|
79
|
+
- lib/recommendify/recommendify.rb
|
80
|
+
- lib/recommendify/similarity_matrix.rb
|
81
|
+
- lib/recommendify/sparse_matrix.rb
|
82
|
+
- recommendify.gemspec
|
83
|
+
- spec/base_spec.rb
|
84
|
+
- spec/cc_matrix_shared.rb
|
85
|
+
- spec/cosine_input_matrix_spec.rb
|
86
|
+
- spec/input_matrix_shared.rb
|
87
|
+
- spec/input_matrix_spec.rb
|
88
|
+
- spec/jaccard_input_matrix_spec.rb
|
89
|
+
- spec/recommendify_spec.rb
|
90
|
+
- spec/similarity_matrix_spec.rb
|
91
|
+
- spec/sparse_matrix_spec.rb
|
92
|
+
- spec/spec_helper.rb
|
93
|
+
homepage: http://github.com/brainix/recommendify
|
94
|
+
licenses:
|
95
|
+
- MIT
|
96
|
+
post_install_message:
|
97
|
+
rdoc_options: []
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
107
|
+
none: false
|
108
|
+
requirements:
|
109
|
+
- - '>='
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0'
|
112
|
+
requirements: []
|
113
|
+
rubyforge_project:
|
114
|
+
rubygems_version: 1.8.25
|
115
|
+
signing_key:
|
116
|
+
specification_version: 3
|
117
|
+
summary: ruby/redis based recommendation engine (collaborative filtering)
|
118
|
+
test_files:
|
119
|
+
- spec/base_spec.rb
|
120
|
+
- spec/cc_matrix_shared.rb
|
121
|
+
- spec/cosine_input_matrix_spec.rb
|
122
|
+
- spec/input_matrix_shared.rb
|
123
|
+
- spec/input_matrix_spec.rb
|
124
|
+
- spec/jaccard_input_matrix_spec.rb
|
125
|
+
- spec/recommendify_spec.rb
|
126
|
+
- spec/similarity_matrix_spec.rb
|
127
|
+
- spec/sparse_matrix_spec.rb
|
128
|
+
- spec/spec_helper.rb
|