vector_embed 0.3.1 → 0.3.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/CHANGELOG +6 -0
- data/lib/vector_embed/maker/date.rb +36 -0
- data/lib/vector_embed/maker.rb +1 -0
- data/lib/vector_embed/version.rb +1 -1
- data/lib/vector_embed.rb +1 -1
- data/spec/vector_embed_spec.rb +20 -0
- metadata +16 -5
- checksums.yaml +0 -15
data/CHANGELOG
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'vector_embed/maker'
|
2
|
+
require 'date'
|
3
|
+
|
4
|
+
class VectorEmbed
|
5
|
+
class Maker
|
6
|
+
class Date < Maker
|
7
|
+
class << self
|
8
|
+
def want?(v, parent)
|
9
|
+
v.is_a?(::Date)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
BASE = ::Date.new(2000,1,1)
|
14
|
+
BLANK = /\A\s*\z/
|
15
|
+
|
16
|
+
def value(v)
|
17
|
+
date = case v
|
18
|
+
when ::String
|
19
|
+
if v !~ BLANK
|
20
|
+
::Date.parse v
|
21
|
+
end
|
22
|
+
when ::Date
|
23
|
+
v
|
24
|
+
else
|
25
|
+
raise "Can't embed #{v.inspect} in date feature #{k.inspect}"
|
26
|
+
end
|
27
|
+
if date
|
28
|
+
num = (date - BASE).to_i
|
29
|
+
if num.nonzero?
|
30
|
+
num
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/vector_embed/maker.rb
CHANGED
data/lib/vector_embed/version.rb
CHANGED
data/lib/vector_embed.rb
CHANGED
@@ -19,7 +19,7 @@ class VectorEmbed
|
|
19
19
|
F = /\Af\z/i
|
20
20
|
NULL_BYTE = "\x00"
|
21
21
|
LABEL_MAKERS = [Maker::Boolean, Maker::Number]
|
22
|
-
FEATURE_MAKERS = [Maker::Boolean, Maker::Number, Maker::Ngram, Maker::Phrase]
|
22
|
+
FEATURE_MAKERS = [Maker::Boolean, Maker::Date, Maker::Number, Maker::Ngram, Maker::Phrase]
|
23
23
|
|
24
24
|
attr_reader :options
|
25
25
|
attr_accessor :logger
|
data/spec/vector_embed_spec.rb
CHANGED
@@ -128,6 +128,22 @@ describe VectorEmbed do
|
|
128
128
|
v.line(1, 1 => '9e9').should == "1 #{l_h('1')}:9000000000"
|
129
129
|
end
|
130
130
|
|
131
|
+
it "stores dates as days since 2000-01-01" do
|
132
|
+
v = VectorEmbed.new
|
133
|
+
v.line(1, 3 => Date.new(1999,12,31)).should == "1 #{l_h('3')}:-1"
|
134
|
+
v.line(1, 3 => Date.new(2000,1,1)).should == "1"
|
135
|
+
v.line(1, 3 => Date.new(2000,1,2)).should == "1 #{l_h('3')}:1"
|
136
|
+
v.line(1, 3 => Date.new(2000,1,3)).should == "1 #{l_h('3')}:2"
|
137
|
+
end
|
138
|
+
|
139
|
+
it "can parse some dates" do
|
140
|
+
v = VectorEmbed.new(features: { 3 => :Date})
|
141
|
+
v.line(1, 3 => '1999-12-31').should == "1 #{l_h('3')}:-1"
|
142
|
+
v.line(1, 3 => '2000-1-1').should == "1"
|
143
|
+
v.line(1, 3 => '2000-1-2').should == "1 #{l_h('3')}:1"
|
144
|
+
v.line(1, 3 => '2000-1-3').should == "1 #{l_h('3')}:2"
|
145
|
+
end
|
146
|
+
|
131
147
|
it "does not output 0 in number attributes" do
|
132
148
|
v = VectorEmbed.new
|
133
149
|
v.line(3, 1 => 1)
|
@@ -286,6 +302,10 @@ describe VectorEmbed do
|
|
286
302
|
end
|
287
303
|
end
|
288
304
|
|
305
|
+
describe 'debug mode' do
|
306
|
+
|
307
|
+
end
|
308
|
+
|
289
309
|
private
|
290
310
|
|
291
311
|
def h(v)
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vector_embed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Seamus Abshere
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-06-14 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: murmurhash3
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,6 +30,7 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rspec
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -41,6 +46,7 @@ dependencies:
|
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: pry
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
51
|
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
@@ -48,6 +54,7 @@ dependencies:
|
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
59
|
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
@@ -55,6 +62,7 @@ dependencies:
|
|
55
62
|
- !ruby/object:Gem::Dependency
|
56
63
|
name: yard
|
57
64
|
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
58
66
|
requirements:
|
59
67
|
- - ! '>='
|
60
68
|
- !ruby/object:Gem::Version
|
@@ -62,6 +70,7 @@ dependencies:
|
|
62
70
|
type: :development
|
63
71
|
prerelease: false
|
64
72
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
65
74
|
requirements:
|
66
75
|
- - ! '>='
|
67
76
|
- !ruby/object:Gem::Version
|
@@ -87,6 +96,7 @@ files:
|
|
87
96
|
- lib/vector_embed.rb
|
88
97
|
- lib/vector_embed/maker.rb
|
89
98
|
- lib/vector_embed/maker/boolean.rb
|
99
|
+
- lib/vector_embed/maker/date.rb
|
90
100
|
- lib/vector_embed/maker/ngram.rb
|
91
101
|
- lib/vector_embed/maker/number.rb
|
92
102
|
- lib/vector_embed/maker/phrase.rb
|
@@ -97,26 +107,27 @@ files:
|
|
97
107
|
- vector_embed.gemspec
|
98
108
|
homepage: https://github.com/seamusabshere/vector_embed
|
99
109
|
licenses: []
|
100
|
-
metadata: {}
|
101
110
|
post_install_message:
|
102
111
|
rdoc_options: []
|
103
112
|
require_paths:
|
104
113
|
- lib
|
105
114
|
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
106
116
|
requirements:
|
107
117
|
- - ! '>='
|
108
118
|
- !ruby/object:Gem::Version
|
109
119
|
version: '0'
|
110
120
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
111
122
|
requirements:
|
112
123
|
- - ! '>='
|
113
124
|
- !ruby/object:Gem::Version
|
114
125
|
version: '0'
|
115
126
|
requirements: []
|
116
127
|
rubyforge_project:
|
117
|
-
rubygems_version:
|
128
|
+
rubygems_version: 1.8.25
|
118
129
|
signing_key:
|
119
|
-
specification_version:
|
130
|
+
specification_version: 3
|
120
131
|
summary: Vector embedding of strings, booleans, numerics, and arrays into LIBSVM /
|
121
132
|
LIBLINEAR format.
|
122
133
|
test_files:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
ZTI5YmZhZDkxODdmMDA5NzdmYWYyZjkwZjg5YjY4MzM3MzU1OWU1Nw==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
YzhkOTNhZDk5NmE2MzNmZTdlYjQyZDJlY2NiYWM4MzBjZmEwMDM2Nw==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
MGYxZTYxMDBhMDRiMzNmYjMyZDNhN2I2MDIzYmJmZGM5MzRhYzk1MWQyN2Vm
|
10
|
-
OWUwMjkzNDAyZjYxNzc3NjcwYWE4YzQzNDY3NmEzMzIyMWVjZTU1Yjk0MjJj
|
11
|
-
MzViMjlkOTI4ODI3MDBlZWNkODEwMWM1Y2UxODRmODQ3ZTU2ZmU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YjQxOTUyMzEzZGRiYzcwMzNiZjViNzdjMWNlNTg1NmY2OGRmOGFhNDg4OTA0
|
14
|
-
YjRiMGU3Y2Y0ZmEzZGU5ZTQ5ZGNkYWJjMjhiZWU4MDgxYzA4NzYzMWMzZmUz
|
15
|
-
NmM3MmQxZGFmMmNmZGJjMzM4ZTU5MGYwYzE2Njg4ZjY0M2Y5ZWE=
|