sooth 2.0.0 → 2.3.0
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.
- checksums.yaml +5 -5
- data/CHANGELOG.md +6 -0
- data/Gemfile +8 -9
- data/Gemfile.lock +108 -94
- data/README.md +1 -2
- data/Rakefile +4 -4
- data/VERSION +1 -1
- data/ext/sooth_native/native.c +27 -1
- data/ext/sooth_native/sooth_predictor.c +22 -0
- data/ext/sooth_native/sooth_predictor.h +1 -0
- data/sooth.gemspec +42 -44
- data/spec/predictor_spec.rb +21 -0
- metadata +25 -39
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 90bc41abd21d0ea01fe4d0b0545b7273d9e00c85f82ed6910bfda9d585b034c7
|
|
4
|
+
data.tar.gz: 3caaae80b3c00b79d9b241a04f0f23a43cc2bb72bc86aaae4bc453c6c29ddd0f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 311093bd474955a2be8f836cd5d6cc09aa36679aa50f3464a53bb09ed853eca3626bb5f948f691d558e19d21d16813cb0f587de8ec7b4696926f64acb8e77b3b
|
|
7
|
+
data.tar.gz: 37addfac68bd1f47af487a58eda05fd00bd43d7f6ecd91bd6b1432014313678a54d73109c1ccf03685b511acb636c32b0eb621522a180d4f63bcbdf075615118
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## [v2.1.0](https://github.com/jasonhutchens/sooth/tree/v2.1.0) (2017-04-17)
|
|
4
|
+
[Full Changelog](https://github.com/jasonhutchens/sooth/compare/v2.0.0...v2.1.0)
|
|
5
|
+
|
|
6
|
+
## [v2.0.0](https://github.com/jasonhutchens/sooth/tree/v2.0.0) (2016-04-06)
|
|
7
|
+
[Full Changelog](https://github.com/jasonhutchens/sooth/compare/v1.0.3...v2.0.0)
|
|
8
|
+
|
|
3
9
|
## [v1.0.3](https://github.com/jasonhutchens/sooth/tree/v1.0.3) (2015-10-03)
|
|
4
10
|
[Full Changelog](https://github.com/jasonhutchens/sooth/compare/v1.0.2...v1.0.3)
|
|
5
11
|
|
data/Gemfile
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
source 'https://rubygems.org'
|
|
2
2
|
|
|
3
3
|
group :development do
|
|
4
|
-
gem 'rspec', '~> 3.
|
|
5
|
-
gem 'yard', '~> 0.
|
|
6
|
-
gem 'rdoc', '~>
|
|
7
|
-
gem '
|
|
8
|
-
gem '
|
|
9
|
-
gem '
|
|
10
|
-
gem '
|
|
11
|
-
gem '
|
|
12
|
-
gem 'github_changelog_generator', '~> 1.4'
|
|
4
|
+
gem 'rspec', '~> 3.10'
|
|
5
|
+
gem 'yard', '~> 0.9'
|
|
6
|
+
gem 'rdoc', '~> 6.3'
|
|
7
|
+
gem 'juwelier', '~> 2.4'
|
|
8
|
+
gem 'simplecov', '~> 0.21'
|
|
9
|
+
gem 'byebug', '~> 11.1'
|
|
10
|
+
gem 'rake-compiler', '~> 1.1'
|
|
11
|
+
gem 'github_changelog_generator', '~> 1.15'
|
|
13
12
|
end
|
data/Gemfile.lock
CHANGED
|
@@ -1,119 +1,133 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
activesupport (6.1.0)
|
|
5
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
|
6
|
+
i18n (>= 1.6, < 2)
|
|
7
|
+
minitest (>= 5.1)
|
|
8
|
+
tzinfo (~> 2.0)
|
|
9
|
+
zeitwerk (~> 2.3)
|
|
10
|
+
addressable (2.7.0)
|
|
11
|
+
public_suffix (>= 2.0.2, < 5.0)
|
|
12
|
+
builder (3.2.4)
|
|
13
|
+
byebug (11.1.3)
|
|
14
|
+
concurrent-ruby (1.1.7)
|
|
11
15
|
descendants_tracker (0.0.4)
|
|
12
16
|
thread_safe (~> 0.3, >= 0.3.1)
|
|
13
|
-
diff-lcs (1.
|
|
14
|
-
docile (1.
|
|
15
|
-
faraday (
|
|
17
|
+
diff-lcs (1.4.4)
|
|
18
|
+
docile (1.3.4)
|
|
19
|
+
faraday (1.3.0)
|
|
20
|
+
faraday-net_http (~> 1.0)
|
|
16
21
|
multipart-post (>= 1.2, < 3)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
ruby2_keywords
|
|
23
|
+
faraday-http-cache (2.2.0)
|
|
24
|
+
faraday (>= 0.8)
|
|
25
|
+
faraday-net_http (1.0.0)
|
|
26
|
+
git (1.8.1)
|
|
27
|
+
rchardet (~> 1.8)
|
|
28
|
+
github_api (0.19.0)
|
|
29
|
+
addressable (~> 2.4)
|
|
21
30
|
descendants_tracker (~> 0.0.4)
|
|
22
|
-
faraday (
|
|
23
|
-
hashie (>= 3.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
faraday (>= 0.8, < 2)
|
|
32
|
+
hashie (~> 3.5, >= 3.5.2)
|
|
33
|
+
oauth2 (~> 1.0)
|
|
34
|
+
github_changelog_generator (1.15.2)
|
|
35
|
+
activesupport
|
|
36
|
+
faraday-http-cache
|
|
37
|
+
multi_json
|
|
38
|
+
octokit (~> 4.6)
|
|
39
|
+
rainbow (>= 2.2.1)
|
|
31
40
|
rake (>= 10.0)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
retriable (~> 3.0)
|
|
42
|
+
hashie (3.6.0)
|
|
43
|
+
highline (2.0.3)
|
|
44
|
+
i18n (1.8.7)
|
|
45
|
+
concurrent-ruby (~> 1.0)
|
|
46
|
+
juwelier (2.4.9)
|
|
38
47
|
builder
|
|
39
|
-
bundler
|
|
40
|
-
git
|
|
48
|
+
bundler
|
|
49
|
+
git
|
|
41
50
|
github_api
|
|
42
|
-
highline
|
|
43
|
-
|
|
51
|
+
highline
|
|
52
|
+
kamelcase (~> 0)
|
|
53
|
+
nokogiri
|
|
54
|
+
psych
|
|
44
55
|
rake
|
|
45
56
|
rdoc
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
57
|
+
semver2
|
|
58
|
+
jwt (2.2.2)
|
|
59
|
+
kamelcase (0.0.2)
|
|
60
|
+
semver2 (~> 3)
|
|
61
|
+
mini_portile2 (2.5.0)
|
|
62
|
+
minitest (5.14.2)
|
|
63
|
+
multi_json (1.15.0)
|
|
64
|
+
multi_xml (0.6.0)
|
|
65
|
+
multipart-post (2.1.1)
|
|
66
|
+
nokogiri (1.11.0)
|
|
67
|
+
mini_portile2 (~> 2.5.0)
|
|
68
|
+
racc (~> 1.4)
|
|
69
|
+
oauth2 (1.4.4)
|
|
70
|
+
faraday (>= 0.8, < 2.0)
|
|
71
|
+
jwt (>= 1.0, < 3.0)
|
|
58
72
|
multi_json (~> 1.3)
|
|
59
73
|
multi_xml (~> 0.5)
|
|
60
74
|
rack (>= 1.2, < 3)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
rack (
|
|
68
|
-
rainbow (
|
|
69
|
-
rake (
|
|
70
|
-
rake-compiler (
|
|
75
|
+
octokit (4.20.0)
|
|
76
|
+
faraday (>= 0.9)
|
|
77
|
+
sawyer (~> 0.8.0, >= 0.5.3)
|
|
78
|
+
psych (3.3.0)
|
|
79
|
+
public_suffix (4.0.6)
|
|
80
|
+
racc (1.5.2)
|
|
81
|
+
rack (2.2.3)
|
|
82
|
+
rainbow (3.0.0)
|
|
83
|
+
rake (13.0.3)
|
|
84
|
+
rake-compiler (1.1.1)
|
|
71
85
|
rake
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
rspec-
|
|
77
|
-
rspec-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
rchardet (1.8.0)
|
|
87
|
+
rdoc (6.3.0)
|
|
88
|
+
retriable (3.1.2)
|
|
89
|
+
rspec (3.10.0)
|
|
90
|
+
rspec-core (~> 3.10.0)
|
|
91
|
+
rspec-expectations (~> 3.10.0)
|
|
92
|
+
rspec-mocks (~> 3.10.0)
|
|
93
|
+
rspec-core (3.10.1)
|
|
94
|
+
rspec-support (~> 3.10.0)
|
|
95
|
+
rspec-expectations (3.10.1)
|
|
81
96
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
82
|
-
rspec-support (~> 3.
|
|
83
|
-
rspec-mocks (3.
|
|
97
|
+
rspec-support (~> 3.10.0)
|
|
98
|
+
rspec-mocks (3.10.1)
|
|
84
99
|
diff-lcs (>= 1.2.0, < 2.0)
|
|
85
|
-
rspec-support (~> 3.
|
|
86
|
-
rspec-support (3.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
rspec-support (~> 3.10.0)
|
|
101
|
+
rspec-support (3.10.1)
|
|
102
|
+
ruby2_keywords (0.0.2)
|
|
103
|
+
sawyer (0.8.2)
|
|
104
|
+
addressable (>= 2.3.5)
|
|
105
|
+
faraday (> 0.8, < 2.0)
|
|
106
|
+
semver2 (3.4.2)
|
|
107
|
+
simplecov (0.21.0)
|
|
108
|
+
docile (~> 1.1)
|
|
109
|
+
simplecov-html (~> 0.11)
|
|
110
|
+
simplecov_json_formatter (~> 0.1)
|
|
111
|
+
simplecov-html (0.12.3)
|
|
112
|
+
simplecov_json_formatter (0.1.2)
|
|
113
|
+
thread_safe (0.3.6)
|
|
114
|
+
tzinfo (2.0.4)
|
|
115
|
+
concurrent-ruby (~> 1.0)
|
|
116
|
+
yard (0.9.26)
|
|
117
|
+
zeitwerk (2.4.2)
|
|
103
118
|
|
|
104
119
|
PLATFORMS
|
|
105
120
|
ruby
|
|
106
121
|
|
|
107
122
|
DEPENDENCIES
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
yard (~> 0.8)
|
|
123
|
+
byebug (~> 11.1)
|
|
124
|
+
github_changelog_generator (~> 1.15)
|
|
125
|
+
juwelier (~> 2.4)
|
|
126
|
+
rake-compiler (~> 1.1)
|
|
127
|
+
rdoc (~> 6.3)
|
|
128
|
+
rspec (~> 3.10)
|
|
129
|
+
simplecov (~> 0.21)
|
|
130
|
+
yard (~> 0.9)
|
|
117
131
|
|
|
118
132
|
BUNDLED WITH
|
|
119
|
-
1.
|
|
133
|
+
1.17.3
|
data/README.md
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
[](http://badge.fury.io/rb/sooth)
|
|
2
|
-
[](https://gemnasium.com/jasonhutchens/sooth)
|
|
3
2
|
[](https://codeship.com/projects/82075)
|
|
4
3
|
|
|
5
4
|
Sooth
|
|
@@ -19,4 +18,4 @@ Look at the [API docs](http://www.rubydoc.info/gems/sooth/Sooth/Predictor) to ge
|
|
|
19
18
|
Copyright
|
|
20
19
|
---------
|
|
21
20
|
|
|
22
|
-
Copyright (c)
|
|
21
|
+
Copyright (c) 2018 Jason Hutchens. See UNLICENSE for further details.
|
data/Rakefile
CHANGED
|
@@ -11,8 +11,8 @@ rescue Bundler::BundlerError => e
|
|
|
11
11
|
end
|
|
12
12
|
require 'rake'
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
|
|
14
|
+
require 'juwelier'
|
|
15
|
+
Juwelier::Tasks.new do |gem|
|
|
16
16
|
# gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
|
|
17
17
|
gem.name = "sooth"
|
|
18
18
|
gem.homepage = "http://github.com/jasonhutchens/sooth"
|
|
@@ -21,10 +21,10 @@ Jeweler::Tasks.new do |gem|
|
|
|
21
21
|
gem.description = %Q{Sooth is a simple stochastic predictive model.}
|
|
22
22
|
gem.email = "jasonhutchens@gmail.com"
|
|
23
23
|
gem.authors = ["Jason Hutchens"]
|
|
24
|
-
gem.required_ruby_version = "
|
|
24
|
+
gem.required_ruby_version = ">= 2.1"
|
|
25
25
|
# dependencies defined in Gemfile
|
|
26
26
|
end
|
|
27
|
-
|
|
27
|
+
Juwelier::RubygemsDotOrgTasks.new
|
|
28
28
|
|
|
29
29
|
require 'rake/extensiontask'
|
|
30
30
|
Rake::ExtensionTask.new('sooth_native')
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.
|
|
1
|
+
2.3.0
|
data/ext/sooth_native/native.c
CHANGED
|
@@ -43,7 +43,10 @@ void method_sooth_native_deallocate(void * predictor);
|
|
|
43
43
|
* def uncertainty(context)
|
|
44
44
|
* # (native code)
|
|
45
45
|
* end
|
|
46
|
-
* def surprise(context,
|
|
46
|
+
* def surprise(context, event)
|
|
47
|
+
* # (native code)
|
|
48
|
+
* end
|
|
49
|
+
* def frequency(context, event)
|
|
47
50
|
* # (native code)
|
|
48
51
|
* end
|
|
49
52
|
* end
|
|
@@ -159,6 +162,16 @@ VALUE method_sooth_native_uncertainty(VALUE self, VALUE context);
|
|
|
159
162
|
*/
|
|
160
163
|
VALUE method_sooth_native_surprise(VALUE self, VALUE bigram, VALUE limit);
|
|
161
164
|
|
|
165
|
+
/*
|
|
166
|
+
* Return a number indicating the frequency that the event has been observed
|
|
167
|
+
* within the given context.
|
|
168
|
+
*
|
|
169
|
+
* @param [Fixnum] context A number that provides a context for observations.
|
|
170
|
+
* @param [Fixnum] event A number representing the observed event.
|
|
171
|
+
* @return [Float] The frequency, as a number between 0.0 and 1.0
|
|
172
|
+
*/
|
|
173
|
+
VALUE method_sooth_native_frequency(VALUE self, VALUE bigram, VALUE limit);
|
|
174
|
+
|
|
162
175
|
//------------------------------------------------------------------------------
|
|
163
176
|
|
|
164
177
|
void Init_sooth_native()
|
|
@@ -181,6 +194,7 @@ void Init_sooth_native()
|
|
|
181
194
|
rb_define_method(SoothNative, "distribution", method_sooth_native_distribution, 1);
|
|
182
195
|
rb_define_method(SoothNative, "uncertainty", method_sooth_native_uncertainty, 1);
|
|
183
196
|
rb_define_method(SoothNative, "surprise", method_sooth_native_surprise, 2);
|
|
197
|
+
rb_define_method(SoothNative, "frequency", method_sooth_native_frequency, 2);
|
|
184
198
|
}
|
|
185
199
|
|
|
186
200
|
//------------------------------------------------------------------------------
|
|
@@ -368,4 +382,16 @@ method_sooth_native_surprise(VALUE self, VALUE context, VALUE event)
|
|
|
368
382
|
return DBL2NUM(surprise);
|
|
369
383
|
}
|
|
370
384
|
|
|
385
|
+
//------------------------------------------------------------------------------
|
|
386
|
+
|
|
387
|
+
VALUE
|
|
388
|
+
method_sooth_native_frequency(VALUE self, VALUE context, VALUE event)
|
|
389
|
+
{
|
|
390
|
+
SoothPredictor * predictor = NULL;
|
|
391
|
+
Check_Type(context, T_FIXNUM);
|
|
392
|
+
Check_Type(event, T_FIXNUM);
|
|
393
|
+
Data_Get_Struct(self, SoothPredictor, predictor);
|
|
394
|
+
return DBL2NUM(sooth_predictor_frequency(predictor, NUM2UINT(context), NUM2UINT(event)));
|
|
395
|
+
}
|
|
396
|
+
|
|
371
397
|
//==============================================================================
|
|
@@ -406,4 +406,26 @@ sooth_predictor_surprise(SoothPredictor * predictor, uint32_t id, uint32_t event
|
|
|
406
406
|
return -log2(frequency);
|
|
407
407
|
}
|
|
408
408
|
|
|
409
|
+
//------------------------------------------------------------------------------
|
|
410
|
+
|
|
411
|
+
double
|
|
412
|
+
sooth_predictor_frequency(SoothPredictor * predictor, uint32_t id, uint32_t event)
|
|
413
|
+
{
|
|
414
|
+
SoothContext * context = sooth_predictor_find_context(predictor, id);
|
|
415
|
+
|
|
416
|
+
if (context == NULL || context->count == 0)
|
|
417
|
+
{
|
|
418
|
+
return 0.0;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
SoothStatistic * statistic = sooth_predictor_find_statistic(context, event);
|
|
422
|
+
|
|
423
|
+
if (statistic == NULL || statistic->count == 0)
|
|
424
|
+
{
|
|
425
|
+
return 0.0;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return (double)statistic->count / (double)context->count;
|
|
429
|
+
}
|
|
430
|
+
|
|
409
431
|
//==============================================================================
|
|
@@ -30,6 +30,7 @@ uint32_t sooth_predictor_select(SoothPredictor * predictor, uint32_t id, uint32_
|
|
|
30
30
|
SoothStatistic * sooth_predictor_distribution(SoothPredictor * predictor, uint32_t id);
|
|
31
31
|
double sooth_predictor_uncertainty(SoothPredictor * predictor, uint32_t id);
|
|
32
32
|
double sooth_predictor_surprise(SoothPredictor * predictor, uint32_t id, uint32_t symbol);
|
|
33
|
+
double sooth_predictor_frequency(SoothPredictor * predictor, uint32_t id, uint32_t symbol);
|
|
33
34
|
|
|
34
35
|
//==============================================================================
|
|
35
36
|
|
data/sooth.gemspec
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
# Generated by
|
|
1
|
+
# Generated by juwelier
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit
|
|
3
|
+
# Instead, edit Juwelier::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
# stub: sooth 2.
|
|
5
|
+
# stub: sooth 2.3.0 ruby lib
|
|
6
6
|
# stub: ext/sooth_native/extconf.rb
|
|
7
7
|
|
|
8
8
|
Gem::Specification.new do |s|
|
|
9
|
-
s.name = "sooth"
|
|
10
|
-
s.version = "2.
|
|
9
|
+
s.name = "sooth".freeze
|
|
10
|
+
s.version = "2.3.0"
|
|
11
11
|
|
|
12
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
13
|
-
s.require_paths = ["lib"]
|
|
14
|
-
s.authors = ["Jason Hutchens"]
|
|
15
|
-
s.date = "
|
|
16
|
-
s.description = "Sooth is a simple stochastic predictive model."
|
|
17
|
-
s.email = "jasonhutchens@gmail.com"
|
|
18
|
-
s.extensions = ["ext/sooth_native/extconf.rb"]
|
|
12
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
|
13
|
+
s.require_paths = ["lib".freeze]
|
|
14
|
+
s.authors = ["Jason Hutchens".freeze]
|
|
15
|
+
s.date = "2021-01-04"
|
|
16
|
+
s.description = "Sooth is a simple stochastic predictive model.".freeze
|
|
17
|
+
s.email = "jasonhutchens@gmail.com".freeze
|
|
18
|
+
s.extensions = ["ext/sooth_native/extconf.rb".freeze]
|
|
19
19
|
s.extra_rdoc_files = [
|
|
20
|
+
"CHANGELOG.md",
|
|
20
21
|
"README.md"
|
|
21
22
|
]
|
|
22
23
|
s.files = [
|
|
@@ -39,46 +40,43 @@ Gem::Specification.new do |s|
|
|
|
39
40
|
"spec/predictor_spec.rb",
|
|
40
41
|
"spec/spec_helper.rb"
|
|
41
42
|
]
|
|
42
|
-
s.homepage = "http://github.com/jasonhutchens/sooth"
|
|
43
|
-
s.licenses = ["UNLICENSE"]
|
|
44
|
-
s.required_ruby_version = Gem::Requirement.new("
|
|
45
|
-
s.rubygems_version = "
|
|
46
|
-
s.summary = "Sooth is a simple stochastic predictive model."
|
|
43
|
+
s.homepage = "http://github.com/jasonhutchens/sooth".freeze
|
|
44
|
+
s.licenses = ["UNLICENSE".freeze]
|
|
45
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.1".freeze)
|
|
46
|
+
s.rubygems_version = "3.0.9".freeze
|
|
47
|
+
s.summary = "Sooth is a simple stochastic predictive model.".freeze
|
|
47
48
|
|
|
48
49
|
if s.respond_to? :specification_version then
|
|
49
50
|
s.specification_version = 4
|
|
50
51
|
|
|
51
52
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
|
52
|
-
s.add_development_dependency(%q<rspec
|
|
53
|
-
s.add_development_dependency(%q<yard
|
|
54
|
-
s.add_development_dependency(%q<rdoc
|
|
55
|
-
s.add_development_dependency(%q<
|
|
56
|
-
s.add_development_dependency(%q<
|
|
57
|
-
s.add_development_dependency(%q<
|
|
58
|
-
s.add_development_dependency(%q<
|
|
59
|
-
s.add_development_dependency(%q<
|
|
60
|
-
s.add_development_dependency(%q<github_changelog_generator>, ["~> 1.4"])
|
|
53
|
+
s.add_development_dependency(%q<rspec>.freeze, ["~> 3.10"])
|
|
54
|
+
s.add_development_dependency(%q<yard>.freeze, ["~> 0.9"])
|
|
55
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
|
56
|
+
s.add_development_dependency(%q<juwelier>.freeze, ["~> 2.4"])
|
|
57
|
+
s.add_development_dependency(%q<simplecov>.freeze, ["~> 0.21"])
|
|
58
|
+
s.add_development_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
|
59
|
+
s.add_development_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
|
|
60
|
+
s.add_development_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
|
|
61
61
|
else
|
|
62
|
-
s.add_dependency(%q<rspec
|
|
63
|
-
s.add_dependency(%q<yard
|
|
64
|
-
s.add_dependency(%q<rdoc
|
|
65
|
-
s.add_dependency(%q<
|
|
66
|
-
s.add_dependency(%q<
|
|
67
|
-
s.add_dependency(%q<
|
|
68
|
-
s.add_dependency(%q<
|
|
69
|
-
s.add_dependency(%q<
|
|
70
|
-
s.add_dependency(%q<github_changelog_generator>, ["~> 1.4"])
|
|
62
|
+
s.add_dependency(%q<rspec>.freeze, ["~> 3.10"])
|
|
63
|
+
s.add_dependency(%q<yard>.freeze, ["~> 0.9"])
|
|
64
|
+
s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
|
65
|
+
s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
|
|
66
|
+
s.add_dependency(%q<simplecov>.freeze, ["~> 0.21"])
|
|
67
|
+
s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
|
68
|
+
s.add_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
|
|
69
|
+
s.add_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
|
|
71
70
|
end
|
|
72
71
|
else
|
|
73
|
-
s.add_dependency(%q<rspec
|
|
74
|
-
s.add_dependency(%q<yard
|
|
75
|
-
s.add_dependency(%q<rdoc
|
|
76
|
-
s.add_dependency(%q<
|
|
77
|
-
s.add_dependency(%q<
|
|
78
|
-
s.add_dependency(%q<
|
|
79
|
-
s.add_dependency(%q<
|
|
80
|
-
s.add_dependency(%q<
|
|
81
|
-
s.add_dependency(%q<github_changelog_generator>, ["~> 1.4"])
|
|
72
|
+
s.add_dependency(%q<rspec>.freeze, ["~> 3.10"])
|
|
73
|
+
s.add_dependency(%q<yard>.freeze, ["~> 0.9"])
|
|
74
|
+
s.add_dependency(%q<rdoc>.freeze, ["~> 6.3"])
|
|
75
|
+
s.add_dependency(%q<juwelier>.freeze, ["~> 2.4"])
|
|
76
|
+
s.add_dependency(%q<simplecov>.freeze, ["~> 0.21"])
|
|
77
|
+
s.add_dependency(%q<byebug>.freeze, ["~> 11.1"])
|
|
78
|
+
s.add_dependency(%q<rake-compiler>.freeze, ["~> 1.1"])
|
|
79
|
+
s.add_dependency(%q<github_changelog_generator>.freeze, ["~> 1.15"])
|
|
82
80
|
end
|
|
83
81
|
end
|
|
84
82
|
|
data/spec/predictor_spec.rb
CHANGED
|
@@ -213,4 +213,25 @@ describe Sooth::Predictor do
|
|
|
213
213
|
expect(predictor.surprise(1, 3)).to eq(8)
|
|
214
214
|
end
|
|
215
215
|
end
|
|
216
|
+
|
|
217
|
+
describe "#frequency" do
|
|
218
|
+
it "returns zero for a new context" do
|
|
219
|
+
expect(predictor.frequency(1, 3)).to eq(0)
|
|
220
|
+
end
|
|
221
|
+
|
|
222
|
+
it "returns zero for a new event" do
|
|
223
|
+
predictor.observe(1, 3)
|
|
224
|
+
expect(predictor.frequency(1, 4)).to eq(0)
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it "is one for a lone event" do
|
|
228
|
+
predictor.observe(1, 3)
|
|
229
|
+
expect(predictor.frequency(1, 3)).to eq(1)
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
it "is uniform for a uniform distribution" do
|
|
233
|
+
(1..100).each { |i| predictor.observe(1, i) }
|
|
234
|
+
expect(predictor.frequency(1, 3)).to eq(0.01)
|
|
235
|
+
end
|
|
236
|
+
end
|
|
216
237
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sooth
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jason Hutchens
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-01-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rspec
|
|
@@ -16,132 +16,119 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '3.
|
|
19
|
+
version: '3.10'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '3.
|
|
26
|
+
version: '3.10'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: yard
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '0.
|
|
33
|
+
version: '0.9'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '0.
|
|
40
|
+
version: '0.9'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rdoc
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '6.3'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '6.3'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: juwelier
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
61
|
+
version: '2.4'
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version: '
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: jeweler
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "~>"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '2.0'
|
|
76
|
-
type: :development
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "~>"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '2.0'
|
|
68
|
+
version: '2.4'
|
|
83
69
|
- !ruby/object:Gem::Dependency
|
|
84
70
|
name: simplecov
|
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
|
86
72
|
requirements:
|
|
87
73
|
- - "~>"
|
|
88
74
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0.
|
|
75
|
+
version: '0.21'
|
|
90
76
|
type: :development
|
|
91
77
|
prerelease: false
|
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
79
|
requirements:
|
|
94
80
|
- - "~>"
|
|
95
81
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0.
|
|
82
|
+
version: '0.21'
|
|
97
83
|
- !ruby/object:Gem::Dependency
|
|
98
84
|
name: byebug
|
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
|
100
86
|
requirements:
|
|
101
87
|
- - "~>"
|
|
102
88
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
89
|
+
version: '11.1'
|
|
104
90
|
type: :development
|
|
105
91
|
prerelease: false
|
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
93
|
requirements:
|
|
108
94
|
- - "~>"
|
|
109
95
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '
|
|
96
|
+
version: '11.1'
|
|
111
97
|
- !ruby/object:Gem::Dependency
|
|
112
98
|
name: rake-compiler
|
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
|
114
100
|
requirements:
|
|
115
101
|
- - "~>"
|
|
116
102
|
- !ruby/object:Gem::Version
|
|
117
|
-
version: '
|
|
103
|
+
version: '1.1'
|
|
118
104
|
type: :development
|
|
119
105
|
prerelease: false
|
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
107
|
requirements:
|
|
122
108
|
- - "~>"
|
|
123
109
|
- !ruby/object:Gem::Version
|
|
124
|
-
version: '
|
|
110
|
+
version: '1.1'
|
|
125
111
|
- !ruby/object:Gem::Dependency
|
|
126
112
|
name: github_changelog_generator
|
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
|
128
114
|
requirements:
|
|
129
115
|
- - "~>"
|
|
130
116
|
- !ruby/object:Gem::Version
|
|
131
|
-
version: '1.
|
|
117
|
+
version: '1.15'
|
|
132
118
|
type: :development
|
|
133
119
|
prerelease: false
|
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
135
121
|
requirements:
|
|
136
122
|
- - "~>"
|
|
137
123
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '1.
|
|
124
|
+
version: '1.15'
|
|
139
125
|
description: Sooth is a simple stochastic predictive model.
|
|
140
126
|
email: jasonhutchens@gmail.com
|
|
141
127
|
executables: []
|
|
142
128
|
extensions:
|
|
143
129
|
- ext/sooth_native/extconf.rb
|
|
144
130
|
extra_rdoc_files:
|
|
131
|
+
- CHANGELOG.md
|
|
145
132
|
- README.md
|
|
146
133
|
files:
|
|
147
134
|
- CHANGELOG.md
|
|
@@ -166,13 +153,13 @@ homepage: http://github.com/jasonhutchens/sooth
|
|
|
166
153
|
licenses:
|
|
167
154
|
- UNLICENSE
|
|
168
155
|
metadata: {}
|
|
169
|
-
post_install_message:
|
|
156
|
+
post_install_message:
|
|
170
157
|
rdoc_options: []
|
|
171
158
|
require_paths:
|
|
172
159
|
- lib
|
|
173
160
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
161
|
requirements:
|
|
175
|
-
- - "
|
|
162
|
+
- - ">="
|
|
176
163
|
- !ruby/object:Gem::Version
|
|
177
164
|
version: '2.1'
|
|
178
165
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
@@ -181,9 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
181
168
|
- !ruby/object:Gem::Version
|
|
182
169
|
version: '0'
|
|
183
170
|
requirements: []
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
signing_key:
|
|
171
|
+
rubygems_version: 3.0.9
|
|
172
|
+
signing_key:
|
|
187
173
|
specification_version: 4
|
|
188
174
|
summary: Sooth is a simple stochastic predictive model.
|
|
189
175
|
test_files: []
|