jruby_mahout 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +6 -0
- data/.rspec +2 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +27 -0
- data/MIT-LICENSE +20 -0
- data/README.md +30 -0
- data/Rakefile +6 -0
- data/jruby_mahout.gemspec +22 -0
- data/lib/jruby_mahout.rb +8 -0
- data/lib/jruby_mahout/data_model.rb +20 -0
- data/lib/jruby_mahout/evaluator.rb +18 -0
- data/lib/jruby_mahout/mahout_imports.rb +34 -0
- data/lib/jruby_mahout/mysql_manager.rb +5 -0
- data/lib/jruby_mahout/postgres_manager.rb +76 -0
- data/lib/jruby_mahout/recommender.rb +78 -0
- data/lib/jruby_mahout/recommender_builder.rb +56 -0
- data/lib/jruby_mahout/version.rb +3 -0
- data/spec/recommender_data.csv +10000 -0
- data/spec/recommender_spec.rb +296 -0
- data/spec/spec_helper.rb +7 -0
- metadata +110 -0
@@ -0,0 +1,296 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe JrubyMahout::Recommender do
|
4
|
+
describe ".new" do
|
5
|
+
context "with valid arguments" do
|
6
|
+
it "should return an instance of JrubyMahout::Recommender for PearsonCorrelationSimilarity and GenericUserBasedRecommender" do
|
7
|
+
JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", 5, "GenericUserBasedRecommender", false).should
|
8
|
+
be_an_instance_of JrubyMahout::Recommender
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return an instance of JrubyMahout::Recommender for EuclideanDistanceSimilarity and GenericUserBasedRecommender" do
|
12
|
+
JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", 5, "GenericUserBasedRecommender", false).should
|
13
|
+
be_an_instance_of JrubyMahout::Recommender
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should return an instance of JrubyMahout::Recommender for SpearmanCorrelationSimilarity and GenericUserBasedRecommender" do
|
17
|
+
JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", 5, "GenericUserBasedRecommender", false).should
|
18
|
+
be_an_instance_of JrubyMahout::Recommender
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return an instance of JrubyMahout::Recommender for LogLikelihoodSimilarity and GenericUserBasedRecommender" do
|
22
|
+
JrubyMahout::Recommender.new("LogLikelihoodSimilarity", 5, "GenericUserBasedRecommender", false).should
|
23
|
+
be_an_instance_of JrubyMahout::Recommender
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return an instance of JrubyMahout::Recommender for TanimotoCoefficientSimilarity and GenericUserBasedRecommender" do
|
27
|
+
JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false).should
|
28
|
+
be_an_instance_of JrubyMahout::Recommender
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should return an instance of JrubyMahout::Recommender for GenericItemSimilarity and GenericUserBasedRecommender" do
|
32
|
+
JrubyMahout::Recommender.new("GenericItemSimilarity", 5, "GenericUserBasedRecommender", false).should
|
33
|
+
be_an_instance_of JrubyMahout::Recommender
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should return an instance of JrubyMahout::Recommender for PearsonCorrelationSimilarity and GenericItemBasedRecommender" do
|
37
|
+
JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", nil, "GenericItemBasedRecommender", false).should
|
38
|
+
be_an_instance_of JrubyMahout::Recommender
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should return an instance of JrubyMahout::Recommender for EuclideanDistanceSimilarity and GenericItemBasedRecommender" do
|
42
|
+
JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", nil, "GenericItemBasedRecommender", false).should
|
43
|
+
be_an_instance_of JrubyMahout::Recommender
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should return an instance of JrubyMahout::Recommender for SpearmanCorrelationSimilarity and GenericItemBasedRecommender" do
|
47
|
+
JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", nil, "GenericItemBasedRecommender", false).should
|
48
|
+
be_an_instance_of JrubyMahout::Recommender
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should return an instance of JrubyMahout::Recommender for LogLikelihoodSimilarity and GenericItemBasedRecommender" do
|
52
|
+
JrubyMahout::Recommender.new("LogLikelihoodSimilarity", nil, "GenericItemBasedRecommender", false).should
|
53
|
+
be_an_instance_of JrubyMahout::Recommender
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should return an instance of JrubyMahout::Recommender for TanimotoCoefficientSimilarity and GenericItemBasedRecommender" do
|
57
|
+
JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", nil, "GenericItemBasedRecommender", false).should
|
58
|
+
be_an_instance_of JrubyMahout::Recommender
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should return an instance of JrubyMahout::Recommender for GenericItemSimilarity and GenericItemBasedRecommender" do
|
62
|
+
JrubyMahout::Recommender.new("GenericItemSimilarity", nil, "GenericItemBasedRecommender", false).should
|
63
|
+
be_an_instance_of JrubyMahout::Recommender
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should return an instance of JrubyMahout::Recommender for SlopeOneRecommender" do
|
67
|
+
JrubyMahout::Recommender.new(nil, nil, "SlopeOneRecommender", false).should
|
68
|
+
be_an_instance_of JrubyMahout::Recommender
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
describe "data_model=" do
|
74
|
+
it "should load file data model" do
|
75
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false)
|
76
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
77
|
+
|
78
|
+
recommender.data_model.should be_an_instance_of org.apache.mahout.cf.taste.impl.model.file.FileDataModel
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should load postgres data model" do
|
82
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false)
|
83
|
+
recommender.data_model = JrubyMahout::DataModel.new("postgres", {
|
84
|
+
:host => "localhost",
|
85
|
+
:port => 5432,
|
86
|
+
:db_name => "postgres",
|
87
|
+
:username => "postgres",
|
88
|
+
:password => "postgres",
|
89
|
+
:table_name => "taste_preferences"
|
90
|
+
}).data_model
|
91
|
+
|
92
|
+
recommender.data_model.should be_an_instance_of org.apache.mahout.cf.taste.impl.model.jdbc.PostgreSQLJDBCDataModel
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
describe ".recommend" do
|
97
|
+
context "with valid arguments" do
|
98
|
+
it "should return an array for PearsonCorrelationSimilarity and GenericUserBasedRecommender" do
|
99
|
+
recommender = JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", 5, "GenericUserBasedRecommender", false)
|
100
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
101
|
+
|
102
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should return an array for EuclideanDistanceSimilarity and GenericUserBasedRecommender" do
|
106
|
+
recommender = JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", 5, "GenericUserBasedRecommender", false)
|
107
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
108
|
+
|
109
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should return an array for SpearmanCorrelationSimilarity and GenericUserBasedRecommender" do
|
113
|
+
recommender = JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", 5, "GenericUserBasedRecommender", false)
|
114
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
115
|
+
|
116
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should return an array for LogLikelihoodSimilarity and GenericUserBasedRecommender" do
|
120
|
+
recommender = JrubyMahout::Recommender.new("LogLikelihoodSimilarity", 5, "GenericUserBasedRecommender", false)
|
121
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
122
|
+
|
123
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
124
|
+
end
|
125
|
+
|
126
|
+
it "should return an array for TanimotoCoefficientSimilarity and GenericUserBasedRecommender" do
|
127
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false)
|
128
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
129
|
+
|
130
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should return an array for GenericItemSimilarity and GenericUserBasedRecommender" do
|
134
|
+
recommender = JrubyMahout::Recommender.new("GenericItemSimilarity", 5, "GenericUserBasedRecommender", false)
|
135
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
136
|
+
|
137
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
138
|
+
end
|
139
|
+
|
140
|
+
it "should return an array for PearsonCorrelationSimilarity and GenericItemBasedRecommender" do
|
141
|
+
recommender = JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", nil, "GenericItemBasedRecommender", false)
|
142
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
143
|
+
|
144
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should return an array for EuclideanDistanceSimilarity and GenericItemBasedRecommender" do
|
148
|
+
recommender = JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", nil, "GenericItemBasedRecommender", false)
|
149
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
150
|
+
|
151
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should return an array for LogLikelihoodSimilarity and GenericItemBasedRecommender" do
|
155
|
+
recommender = JrubyMahout::Recommender.new("LogLikelihoodSimilarity", nil, "GenericItemBasedRecommender", false)
|
156
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
157
|
+
|
158
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
159
|
+
end
|
160
|
+
|
161
|
+
it "should return an array for TanimotoCoefficientSimilarity and GenericItemBasedRecommender" do
|
162
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", nil, "GenericItemBasedRecommender", false)
|
163
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
164
|
+
|
165
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
166
|
+
end
|
167
|
+
|
168
|
+
it "should return an array for GenericItemSimilarity and GenericItemBasedRecommender" do
|
169
|
+
recommender = JrubyMahout::Recommender.new("GenericItemSimilarity", nil, "GenericItemBasedRecommender", false)
|
170
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
171
|
+
|
172
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
173
|
+
end
|
174
|
+
|
175
|
+
it "should return an array for SlopeOneRecommender" do
|
176
|
+
recommender = JrubyMahout::Recommender.new("nil", nil, "SlopeOneRecommender", false)
|
177
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
178
|
+
|
179
|
+
recommender.recommend(1, 10, nil).should be_an_instance_of Array
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
context "with invalid arguments" do
|
184
|
+
it "should return nil for SpearmanCorrelationSimilarity and GenericItemBasedRecommender" do
|
185
|
+
recommender = JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", nil, "GenericItemBasedRecommender", false)
|
186
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
187
|
+
|
188
|
+
recommender.recommend(1, 10, nil).should be nil
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
|
193
|
+
describe ".evaluate" do
|
194
|
+
context "with valid arguments" do
|
195
|
+
it "should return a float" do
|
196
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false)
|
197
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
198
|
+
|
199
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should return an array for PearsonCorrelationSimilarity and GenericUserBasedRecommender" do
|
203
|
+
recommender = JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", 5, "GenericUserBasedRecommender", false)
|
204
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
205
|
+
|
206
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should return a float for EuclideanDistanceSimilarity and GenericUserBasedRecommender" do
|
210
|
+
recommender = JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", 5, "GenericUserBasedRecommender", false)
|
211
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
212
|
+
|
213
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
214
|
+
end
|
215
|
+
|
216
|
+
it "should return a float for SpearmanCorrelationSimilarity and GenericUserBasedRecommender" do
|
217
|
+
recommender = JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", 5, "GenericUserBasedRecommender", false)
|
218
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
219
|
+
|
220
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
221
|
+
end
|
222
|
+
|
223
|
+
it "should return a float for LogLikelihoodSimilarity and GenericUserBasedRecommender" do
|
224
|
+
recommender = JrubyMahout::Recommender.new("LogLikelihoodSimilarity", 5, "GenericUserBasedRecommender", false)
|
225
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
226
|
+
|
227
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
228
|
+
end
|
229
|
+
|
230
|
+
it "should return a float for TanimotoCoefficientSimilarity and GenericUserBasedRecommender" do
|
231
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", 5, "GenericUserBasedRecommender", false)
|
232
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
233
|
+
|
234
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
235
|
+
end
|
236
|
+
|
237
|
+
it "should return a float for GenericItemSimilarity and GenericUserBasedRecommender" do
|
238
|
+
recommender = JrubyMahout::Recommender.new("GenericItemSimilarity", 5, "GenericUserBasedRecommender", false)
|
239
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
240
|
+
|
241
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
242
|
+
end
|
243
|
+
|
244
|
+
it "should return a float for PearsonCorrelationSimilarity and GenericItemBasedRecommender" do
|
245
|
+
recommender = JrubyMahout::Recommender.new("PearsonCorrelationSimilarity", nil, "GenericItemBasedRecommender", false)
|
246
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
247
|
+
|
248
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
249
|
+
end
|
250
|
+
|
251
|
+
it "should return a float for EuclideanDistanceSimilarity and GenericItemBasedRecommender" do
|
252
|
+
recommender = JrubyMahout::Recommender.new("EuclideanDistanceSimilarity", nil, "GenericItemBasedRecommender", false)
|
253
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
254
|
+
|
255
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
256
|
+
end
|
257
|
+
|
258
|
+
it "should return a float for LogLikelihoodSimilarity and GenericItemBasedRecommender" do
|
259
|
+
recommender = JrubyMahout::Recommender.new("LogLikelihoodSimilarity", nil, "GenericItemBasedRecommender", false)
|
260
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
261
|
+
|
262
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
263
|
+
end
|
264
|
+
|
265
|
+
it "should return a float for TanimotoCoefficientSimilarity and GenericItemBasedRecommender" do
|
266
|
+
recommender = JrubyMahout::Recommender.new("TanimotoCoefficientSimilarity", nil, "GenericItemBasedRecommender", false)
|
267
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
268
|
+
|
269
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
270
|
+
end
|
271
|
+
|
272
|
+
it "should return a float for GenericItemSimilarity and GenericItemBasedRecommender" do
|
273
|
+
recommender = JrubyMahout::Recommender.new("GenericItemSimilarity", nil, "GenericItemBasedRecommender", false)
|
274
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
275
|
+
|
276
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should return a float for SlopeOneRecommender" do
|
280
|
+
recommender = JrubyMahout::Recommender.new("nil", nil, "SlopeOneRecommender", false)
|
281
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
282
|
+
|
283
|
+
recommender.evaluate(0.7, 0.3).should be_an_instance_of Float
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
context "with invalid arguments" do
|
288
|
+
it "should return nil for SpearmanCorrelationSimilarity and GenericItemBasedRecommender" do
|
289
|
+
recommender = JrubyMahout::Recommender.new("SpearmanCorrelationSimilarity", nil, "GenericItemBasedRecommender", false)
|
290
|
+
recommender.data_model = JrubyMahout::DataModel.new("file", { :file_path => "spec/recommender_data.csv" }).data_model
|
291
|
+
|
292
|
+
recommender.evaluate(0.7, 0.3).should be nil
|
293
|
+
end
|
294
|
+
end
|
295
|
+
end
|
296
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jruby_mahout
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.2.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Vasily Vasinov
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ! '>='
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: !binary |-
|
21
|
+
MA==
|
22
|
+
none: false
|
23
|
+
requirement: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ! '>='
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: !binary |-
|
28
|
+
MA==
|
29
|
+
none: false
|
30
|
+
prerelease: false
|
31
|
+
type: :development
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: rspec
|
34
|
+
version_requirements: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: !binary |-
|
39
|
+
MA==
|
40
|
+
none: false
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: !binary |-
|
46
|
+
MA==
|
47
|
+
none: false
|
48
|
+
prerelease: false
|
49
|
+
type: :development
|
50
|
+
description: Jruby Mahout is a gem that unleashes the power of Apache Mahout in the world of Jruby. Mahout is a superior machine learning library written in Java. It deals with recommendations, clustering and classification machine learning problems at scale. Until now it was difficult to use it in Ruby projects. You'd have to implement Java interfaces in Jruby yourself, which is not quick especially if you just started exploring the world of machine learning.
|
51
|
+
email:
|
52
|
+
- vasinov@me.com
|
53
|
+
executables: []
|
54
|
+
extensions: []
|
55
|
+
extra_rdoc_files: []
|
56
|
+
files:
|
57
|
+
- .gitignore
|
58
|
+
- .rspec
|
59
|
+
- Gemfile
|
60
|
+
- Gemfile.lock
|
61
|
+
- MIT-LICENSE
|
62
|
+
- README.md
|
63
|
+
- Rakefile
|
64
|
+
- jruby_mahout.gemspec
|
65
|
+
- lib/jruby_mahout.rb
|
66
|
+
- lib/jruby_mahout/data_model.rb
|
67
|
+
- lib/jruby_mahout/evaluator.rb
|
68
|
+
- lib/jruby_mahout/mahout_imports.rb
|
69
|
+
- lib/jruby_mahout/mysql_manager.rb
|
70
|
+
- lib/jruby_mahout/postgres_manager.rb
|
71
|
+
- lib/jruby_mahout/recommender.rb
|
72
|
+
- lib/jruby_mahout/recommender_builder.rb
|
73
|
+
- lib/jruby_mahout/version.rb
|
74
|
+
- spec/recommender_data.csv
|
75
|
+
- spec/recommender_spec.rb
|
76
|
+
- spec/spec_helper.rb
|
77
|
+
homepage: https://github.com/vasinov/jruby_mahout
|
78
|
+
licenses:
|
79
|
+
- MIT
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options: []
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: !binary |-
|
89
|
+
MA==
|
90
|
+
none: false
|
91
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ! '>='
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: !binary |-
|
96
|
+
MA==
|
97
|
+
none: false
|
98
|
+
requirements: []
|
99
|
+
rubyforge_project:
|
100
|
+
rubygems_version: 1.8.24
|
101
|
+
signing_key:
|
102
|
+
specification_version: 3
|
103
|
+
summary: Jruby Mahout is a gem that unleashes the power of Apache Mahout in the world of Jruby.
|
104
|
+
test_files:
|
105
|
+
- !binary |-
|
106
|
+
c3BlYy9yZWNvbW1lbmRlcl9kYXRhLmNzdg==
|
107
|
+
- !binary |-
|
108
|
+
c3BlYy9yZWNvbW1lbmRlcl9zcGVjLnJi
|
109
|
+
- !binary |-
|
110
|
+
c3BlYy9zcGVjX2hlbHBlci5yYg==
|