Class: FeatureSet::Builder
- Inherits:
-
Object
- Object
- FeatureSet::Builder
- Defined in:
- lib/feature_set/builder.rb
Constant Summary collapse
- BUILTIN_FEATURE_BUILDERS =
%w[FeatureSet::FeatureBuilder::Cuss FeatureSet::FeatureBuilder::WordVector].map(&:constantize)
Instance Attribute Summary collapse
-
#data ⇒ Object
Returns the value of attribute data.
-
#feature_builders ⇒ Object
Returns the value of attribute feature_builders.
-
#features ⇒ Object
Returns the value of attribute features.
-
#options ⇒ Object
Returns the value of attribute options.
Class Method Summary collapse
Instance Method Summary collapse
- #add_data(data) ⇒ Object
- #add_feature_builders(*builders) ⇒ Object (also: #add_feature_builder)
- #clear_data ⇒ Object
- #clear_features ⇒ Object
- #generate_features(opts = {}) ⇒ Object
-
#initialize(options = {}) ⇒ Builder
constructor
A new instance of Builder.
Constructor Details
#initialize(options = {}) ⇒ Builder
Returns a new instance of Builder.
16 17 18 19 20 21 |
# File 'lib/feature_set/builder.rb', line 16 def initialize( = {}) = @feature_builders = [] @features = [] @data = [] end |
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
14 15 16 |
# File 'lib/feature_set/builder.rb', line 14 def data @data end |
#feature_builders ⇒ Object
Returns the value of attribute feature_builders.
14 15 16 |
# File 'lib/feature_set/builder.rb', line 14 def feature_builders @feature_builders end |
#features ⇒ Object
Returns the value of attribute features.
14 15 16 |
# File 'lib/feature_set/builder.rb', line 14 def features @features end |
#options ⇒ Object
Returns the value of attribute options.
14 15 16 |
# File 'lib/feature_set/builder.rb', line 14 def end |
Class Method Details
.wrap_dataset(dataset) ⇒ Object
66 67 68 |
# File 'lib/feature_set/builder.rb', line 66 def self.wrap_dataset(dataset) dataset.map { |row| row.inject({}) { |m, (k, v)| m[k] = (k == :class ? v : Datum.new(v)) ; m } } end |
Instance Method Details
#add_data(data) ⇒ Object
23 24 25 26 |
# File 'lib/feature_set/builder.rb', line 23 def add_data(data) clear_features (@data << data).flatten! end |
#add_feature_builders(*builders) ⇒ Object Also known as: add_feature_builder
60 61 62 63 |
# File 'lib/feature_set/builder.rb', line 60 def add_feature_builders(*builders) builders = BUILTIN_FEATURE_BUILDERS.map(&:new) if [:all, "all"].include?(builders.first) (@feature_builders << builders).flatten! end |
#clear_data ⇒ Object
28 29 30 31 |
# File 'lib/feature_set/builder.rb', line 28 def clear_data @data = [] clear_features end |
#clear_features ⇒ Object
33 34 35 |
# File 'lib/feature_set/builder.rb', line 33 def clear_features @features = [] end |
#generate_features(opts = {}) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/feature_set/builder.rb', line 37 def generate_features(opts = {}) wrapped_data_set = self.class.wrap_dataset(data) feature_builders.each {|fb| fb.before_generate_features(wrapped_data_set) } @features = wrapped_data_set.map do |row| output_row = {} row.each do |key, datum| (output_row[:class] = datum) and next if key == :class output_row[key] = datum.value if opts[:include_original] feature_builders.each do |builder| builder.generate_features(datum, key, row).each do |feature, value| output_row["#{key}_#{feature}".to_sym] = value end end end output_row end end |