kfold 0.1 → 0.3

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.
@@ -0,0 +1,4 @@
1
+ tmp
2
+ .DS_Store
3
+ nbproject/private
4
+ pkg
@@ -0,0 +1,5 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
4
+ </project>
5
+
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="RUBY_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ <orderEntry type="library" scope="PROVIDED" name="bundler (v1.0.18, ruby-1.9.2-p290) [gem]" level="application" />
8
+ </component>
9
+ </module>
10
+
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="DependencyValidationManager">
4
+ <option name="SKIP_IMPORT_STATEMENTS" value="false" />
5
+ </component>
6
+ <component name="ProjectResources">
7
+ <default-html-doctype>http://www.w3.org/1999/xhtml</default-html-doctype>
8
+ </component>
9
+ <component name="ProjectRootManager" version="2" project-jdk-name="ruby-1.9.2-p290" project-jdk-type="RUBY_SDK" />
10
+ </project>
11
+
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/kfold.iml" filepath="$PROJECT_DIR$/.idea/kfold.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
9
+
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
7
+
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format documentation
data/CHANGELOG CHANGED
@@ -1 +1,3 @@
1
- v0.1. Commands for K-fold splitting and folding
1
+ v0.2. Commands for K-fold training and testing added.
2
+
3
+ v0.1. Commands for K-fold splitting and folding added.
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sample-gem.gemspec
4
+ gemspec
data/Manifest CHANGED
@@ -1,7 +1,7 @@
1
1
  CHANGELOG
2
2
  LICENSE
3
3
  Manifest
4
- README
4
+ README.rdoc
5
5
  Rakefile
6
6
  bin/kfold
7
7
  lib/kfold.rb
@@ -0,0 +1,166 @@
1
+ = kfold
2
+
3
+ kfold creates K-fold splits from data files and assists in training and testing (useful for cross-validation in supervised machine
4
+ learning)
5
+
6
+ == Command overview
7
+
8
+ help Display global or [command] help documentation.
9
+ split Split a data file into K partitions
10
+ test Apply trained models on a dataset previously split using kfold
11
+ train Train models on a dataset previously split using kfold
12
+
13
+ == Example usage
14
+
15
+ 10-fold cross-validation of the standard MaltParser on a treebank named shuffled.c32.conll may be done as follows:
16
+
17
+ kfold split -f -i shuffled.c32.conll -d '\n\n'
18
+ kfold train -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -m learn
19
+ kfold test -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -o %O -m parse
20
+ eval07.pl -q -g shuffled.c32.conll -s shuffled.c32.conll.output
21
+
22
+ The MaltParser does not like to put its models in a subdirectory, so rather than using the standard model files suggested by kfold (%M), we construct custom non-nested model filenames using %B.model_%N.
23
+
24
+ == Command details
25
+
26
+ The following is simply the output of the built-in help commands.
27
+
28
+ === Splitting data files
29
+
30
+ NAME:
31
+
32
+ split
33
+
34
+ DESCRIPTION:
35
+
36
+ Given the data file INPUT, the partitions are written to files named INPUT.parts/{01..K}
37
+
38
+ SYNOPSIS:
39
+
40
+ kfold split -i INPUT [options]
41
+
42
+ EXAMPLES:
43
+
44
+ # Split the file sample.txt into 4 parts
45
+ kfold split -k4 sample.txt
46
+
47
+ # Split the double-newline-delimited file sample.conll into 10 parts
48
+ kfold split -d"\n\n" sample.conll
49
+
50
+ OPTIONS:
51
+
52
+ -i, --input FILE
53
+ Data file to split
54
+
55
+ -k, --parts N
56
+ The number of partitions desired
57
+
58
+ -d, --delimiter DELIM
59
+ String used to separate individual entries (newline per default)
60
+
61
+ -g, --granularity N
62
+ Ensure the number of entries in each partition is divisible by N (useful for block-structured data)
63
+
64
+ -f, --overwrite
65
+ Remove existing parts prior to executing
66
+
67
+ --fold
68
+ Additionally, create K folds of K-1 parts in a another folder
69
+
70
+ --parts-name STRING
71
+ Use the given name as suffix for the partitions folder created
72
+
73
+ --folds-name STRING
74
+ Use the given name as suffix for the folds folder created
75
+
76
+ === Training on the folds
77
+
78
+ NAME:
79
+
80
+ train
81
+
82
+ DESCRIPTION:
83
+
84
+ Given training data previously split in K parts and folds, train K models on the K folds
85
+
86
+ Certain keywords in the training command and its arguments are interpolated at runtime:
87
+
88
+ * %N - fold number, e.g. '01'
89
+ * %F - fold filename, e.g. 'brown.train/01'
90
+ * %I - alias for %F
91
+ * %M - model filename, e.g. 'brown.models/01'
92
+ * %B - basename (as specified on the command line), e.g. 'brown'
93
+
94
+
95
+ SYNOPSIS:
96
+
97
+ kfold train --base NAME [options] -- CMD [--CMD-OPTIONS] [CMD-ARGS]
98
+
99
+ EXAMPLES:
100
+
101
+ # Train MaltParser for cross-validation
102
+ kfold train -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -m learn
103
+
104
+ OPTIONS:
105
+
106
+ -f, --overwrite
107
+ Remove existing models prior to executing
108
+
109
+ --base NAME
110
+ Default prefix of training folds and model files
111
+
112
+ --folds-name SUFFIX
113
+ Look for folds {01..K} in the folder BASE.SUFFIX
114
+
115
+ --models-name SUFFIX
116
+ Yield model names as BASE.SUFFIX/{01..K} as interpolation pattern %M
117
+
118
+ === Testing the models on their reciprocal data file parts
119
+
120
+ NAME:
121
+
122
+ test
123
+
124
+ DESCRIPTION:
125
+
126
+ Process K parts of a split datafile using K previously trained models.
127
+
128
+ Certain keywords in the testing command and its arguments are interpolated at runtime:
129
+
130
+ * %N - part number, e.g. '01'
131
+ * %T - part filename, e.g. 'brown.test/01'
132
+ * %I - alias for %T
133
+ * %O - output filename, e.g. 'brown.outputs/01'
134
+ * %M - model filename, e.g. 'brown.models/01'
135
+ * %B - basename (as specified on the command line), e.g. 'brown'
136
+
137
+
138
+ SYNOPSIS:
139
+
140
+ kfold test --base NAME [options] -- CMD [--CMD-OPTIONS] [CMD-ARGS]
141
+
142
+ EXAMPLES:
143
+
144
+ # Apply trained MaltParser models for cross-validation
145
+ kfold test -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -o %O -m parse
146
+
147
+ OPTIONS:
148
+
149
+ -f, --overwrite
150
+ Remove existing test output prior to executing
151
+
152
+ --base NAME
153
+ Default prefix of model files and test outputs
154
+
155
+ --parts-name SUFFIX
156
+ Look for parts {01..K} to be processed in the folder BASE.SUFFIX
157
+
158
+ --models-name SUFFIX
159
+ Yield model names as BASE.SUFFIX/{01..K} as interpolation pattern %M
160
+
161
+ --outputs-name SUFFIX
162
+ Yield output filenames as BASE.SUFFIX/{01..K} as interpolation pattern %O
163
+
164
+ --output-name SUFFIX
165
+ Put the concatenated output of all models in BASE.SUFFIX
166
+
data/Rakefile CHANGED
@@ -1,17 +1 @@
1
- # coding: UTF-8
2
- require 'rubygems'
3
- require 'rake'
4
- require 'echoe'
5
-
6
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
7
- require 'kfold'
8
-
9
- Echoe.new('kfold', Kfold::VERSION) do |p|
10
- p.description = "Create k-fold splits from datafiles (useful for cross-validation in supervised machine learning)"
11
- p.url = "http://github.com/crishoj/kfold"
12
- p.author = "Christian Rishøj"
13
- p.email = "christian@rishoj.net"
14
- p.ignore_pattern = ["tmp/**/*", "script/*", "nbproject/**/*"]
15
- p.runtime_dependencies = ["commander"]
16
- p.development_dependencies = []
17
- end
1
+ require "bundler/gem_tasks"
data/bin/kfold CHANGED
@@ -1,13 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
-
3
- require 'rubygems'
4
2
  require 'commander/import'
5
3
  require 'kfold'
6
4
  require 'fileutils'
7
5
 
8
6
  program :version, Kfold::VERSION
9
- program :description, 'Do stuff'
10
-
7
+ program :description, "Create K-fold splits from data files and assist in training and testing (useful for cross-validation in supervised machine learning)"
8
+
11
9
  def do_directory(dir, overwrite = false)
12
10
  if File.exist? dir
13
11
  if overwrite
@@ -35,7 +33,7 @@ command :split do |c|
35
33
  c.option '--parts-name STRING', String, 'Use the given name as suffix for the partitions folder created'
36
34
  c.option '--folds-name STRING', String, 'Use the given name as suffix for the folds folder created'
37
35
  c.action do |args, options|
38
- options.default :parts => 10, :delimiter => "\n", :granularity => 1, :parts_name => 'parts'
36
+ options.default :parts => 10, :delimiter => "\n", :granularity => 1, :parts_name => 'test', :folds_name => 'train'
39
37
  abort "Failed: Please specify input file using -i INPUT" unless options.input
40
38
  abort "Failed: Input file #{options.input} does not exist" unless File.exist? options.input
41
39
  # Interpret newlines, linefeeds and tabs
@@ -87,25 +85,103 @@ end
87
85
 
88
86
  alias_command :fold, :split, '--fold'
89
87
 
90
- #command :train do |c|
91
- # c.syntax = 'kfold train [options]'
92
- # c.summary = ''
93
- # c.description = ''
94
- # c.example 'description', 'command example'
95
- # c.option '--some-switch', 'Some switch that does something'
96
- # c.action do |args, options|
97
- # # Do something or c.when_called Kfold::Commands::Train
98
- # end
99
- #end
100
- #
101
- #command :test do |c|
102
- # c.syntax = 'kfold test [options]'
103
- # c.summary = ''
104
- # c.description = ''
105
- # c.example 'description', 'command example'
106
- # c.option '--some-switch', 'Some switch that does something'
107
- # c.action do |args, options|
108
- # # Do something or c.when_called Kfold::Commands::Test
109
- # end
110
- #end
88
+ command :train do |c|
89
+ c.syntax = 'kfold train --base NAME [options] -- CMD [--CMD-OPTIONS] [CMD-ARGS]'
90
+ c.summary = 'Train models on a dataset previously split using kfold'
91
+ c.description = <<-end
92
+ Given training data previously split in K parts and folds, train K models on the K folds
93
+
94
+ Certain keywords in the training command and its arguments are interpolated at runtime:
95
+
96
+ * %N - fold number, e.g. '01'
97
+ * %F - fold filename, e.g. 'brown.train/01'
98
+ * %I - alias for %F
99
+ * %M - model filename, e.g. 'brown.models/01'
100
+ * %B - basename (as specified on the command line), e.g. 'brown'
101
+ end
102
+ c.example 'Train MaltParser for cross-validation', 'kfold train -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -m learn'
103
+ c.option '-f', '--overwrite', 'Remove existing models prior to executing'
104
+ c.option '--base NAME', String, 'Default prefix of training folds and model files'
105
+ c.option '--folds-name SUFFIX', String, 'Look for folds {01..K} in the folder BASE.SUFFIX'
106
+ c.option '--models-name SUFFIX', String, 'Yield model names as BASE.SUFFIX/{01..K} as interpolation pattern %M'
107
+ c.action do |args, options|
108
+ options.default :folds_name => 'train', :models_name => 'models'
109
+ raise "Must specify base name using --base" unless options.base
110
+ folds_dir = "#{options.base}.#{options.folds_name}"
111
+ models_dir = "#{options.base}.#{options.models_name}"
112
+ raise "Folds directory not found" unless File.exists?(folds_dir)
113
+ folds = Dir.glob(File.join(folds_dir, '*')).collect { |file|
114
+ file if File.basename(file) =~ /^[0-9]+$/
115
+ }.compact
116
+ raise "No folds found in #{folds_dir}" if folds.count == 0
117
+ say "Found #{folds.count} folds in #{folds_dir}"
118
+ cmds = folds.collect do |fold|
119
+ num = File.basename(fold)
120
+ model = File.join(models_dir, num)
121
+ args.collect { |arg|
122
+ arg.gsub(/%F/, fold).gsub(/%T/, fold).gsub(/%N/, num).gsub('%M', model).gsub('%B', options.base)
123
+ }.join(' ')
124
+ end
125
+ do_directory(models_dir, options.overwrite) if cmds.first.match(models_dir)
126
+ cmds.each do |cmd|
127
+ say "[exec] #{cmd}"
128
+ system cmd
129
+ end
130
+ end
131
+ end
132
+
133
+ command :test do |c|
134
+ c.syntax = 'kfold test --base NAME [options] -- CMD [--CMD-OPTIONS] [CMD-ARGS]'
135
+ c.summary = 'Apply trained models on a dataset previously split using kfold'
136
+ c.option '-f', '--overwrite', 'Remove existing test output prior to executing'
137
+ c.option '--base NAME', String, 'Default prefix of model files and test outputs'
138
+ c.option '--parts-name SUFFIX', String, 'Look for parts {01..K} to be processed in the folder BASE.SUFFIX'
139
+ c.option '--models-name SUFFIX', String, 'Yield model names as BASE.SUFFIX/{01..K} as interpolation pattern %M'
140
+ c.option '--outputs-name SUFFIX', String, 'Yield output filenames as BASE.SUFFIX/{01..K} as interpolation pattern %O'
141
+ c.option '--output-name SUFFIX', String, 'Put the concatenated output of all models in BASE.SUFFIX'
142
+ c.description = <<-end
143
+ Process K parts of a split datafile using K previously trained models.
144
+
145
+ Certain keywords in the testing command and its arguments are interpolated at runtime:
111
146
 
147
+ * %N - part number, e.g. '01'
148
+ * %T - part filename, e.g. 'brown.test/01'
149
+ * %I - alias for %T
150
+ * %O - output filename, e.g. 'brown.outputs/01'
151
+ * %M - model filename, e.g. 'brown.models/01'
152
+ * %B - basename (as specified on the command line), e.g. 'brown'
153
+ end
154
+ c.example 'Apply trained MaltParser models for cross-validation', 'kfold test -f --base shuffled.c32.conll -- java -jar ~/Tools/malt-1.4.1/malt.jar -c %B.model_%N -i %T -o %O -m parse'
155
+ c.action do |args, options|
156
+ options.default :parts_name => 'test', :models_name => 'models', :outputs_name => 'outputs', :output_name => 'output'
157
+ raise "Must specify base name using --base" unless options.base
158
+ parts_dir = "#{options.base}.#{options.parts_name}"
159
+ models_dir = "#{options.base}.#{options.models_name}"
160
+ output_dir = "#{options.base}.#{options.outputs_name}"
161
+ output_file = "#{options.base}.#{options.output_name}"
162
+ raise "Parts directory not found" unless File.exists?(parts_dir)
163
+ raise "Model directory not found" unless File.exists?(models_dir)
164
+ parts = Dir.glob(File.join(parts_dir, '*')).collect { |file|
165
+ file if File.basename(file) =~ /^[0-9]+$/
166
+ }.compact
167
+ raise "No parts found in #{parts_dir}" if parts.count == 0
168
+ say "Found #{parts.count} parts in #{parts_dir}"
169
+ outputs = []
170
+ cmds = parts.collect do |part|
171
+ num = File.basename(part)
172
+ model = File.join(models_dir, num)
173
+ output = File.join(output_dir, num)
174
+ outputs << output
175
+ args.collect { |arg|
176
+ arg.gsub(/%O/, output).gsub(/%I/, part).gsub(/%T/, part).gsub(/%N/, num).gsub('%M', model).gsub('%B', options.base)
177
+ }.join(' ')
178
+ end
179
+ do_directory(output_dir, options.overwrite)
180
+ cmds.each do |cmd|
181
+ say "[exec] #{cmd}"
182
+ system cmd
183
+ end
184
+ say "[join] #{outputs.join(' ')} => #{output_file}"
185
+ system "cat #{outputs.join(' ')} > #{output_file}"
186
+ end
187
+ end
@@ -1,37 +1,20 @@
1
- # -*- encoding: utf-8 -*-
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+ require "kfold/version"
2
3
 
3
4
  Gem::Specification.new do |s|
4
- s.name = %q{kfold}
5
- s.version = "0.1"
5
+ s.name = "kfold"
6
+ s.version = Kfold::VERSION
7
+ s.authors = ["Christian Rishoj"]
8
+ s.email = ["christian@rishoj.net"]
9
+ s.homepage = "http://github.com/crishoj/kfold"
10
+ s.summary = %q{Split your data and process it in parallel}
11
+ s.description = %q{Create K-fold splits from data files and assist in training and testing (useful for cross-validation in supervised machine learning)}
6
12
 
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Christian Rishøj"]
9
- s.cert_chain = ["/Users/crjensen/Documents/Certificates/gem-public_cert.pem"]
10
- s.date = %q{2010-12-30}
11
- s.default_executable = %q{kfold}
12
- s.description = %q{Create k-fold splits from datafiles (useful for cross-validation in supervised machine learning)}
13
- s.email = %q{christian@rishoj.net}
14
- s.executables = ["kfold"]
15
- s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "bin/kfold", "lib/kfold.rb", "lib/kfold/data_file.rb"]
16
- s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "bin/kfold", "lib/kfold.rb", "lib/kfold/data_file.rb", "spec/helper.rb", "spec/kfold/data_file_spec.rb", "spec/kfold/sample_data_file.conll", "kfold.gemspec"]
17
- s.homepage = %q{http://github.com/crishoj/kfold}
18
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Kfold", "--main", "README"]
13
+ s.files = `git ls-files`.split("\n")
14
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
16
  s.require_paths = ["lib"]
20
- s.rubyforge_project = %q{kfold}
21
- s.rubygems_version = %q{1.3.7}
22
- s.signing_key = %q{/Users/crjensen/Documents/Certificates/gem-private_key.pem}
23
- s.summary = %q{Create k-fold splits from datafiles (useful for cross-validation in supervised machine learning)}
24
17
 
25
- if s.respond_to? :specification_version then
26
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
- s.specification_version = 3
28
-
29
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
30
- s.add_runtime_dependency(%q<commander>, [">= 0"])
31
- else
32
- s.add_dependency(%q<commander>, [">= 0"])
33
- end
34
- else
35
- s.add_dependency(%q<commander>, [">= 0"])
36
- end
18
+ s.add_development_dependency "rspec"
19
+ s.add_runtime_dependency "commander"
37
20
  end
@@ -1,7 +1,5 @@
1
-
1
+ require 'kfold/version'
2
2
  require 'kfold/data_file'
3
3
 
4
4
  module Kfold
5
- VERSION = 0.1
6
-
7
5
  end
@@ -0,0 +1,3 @@
1
+ module Kfold
2
+ VERSION = "0.3"
3
+ end
@@ -1,4 +1,4 @@
1
-
1
+ require 'spec_helper'
2
2
  require 'kfold/data_file'
3
3
 
4
4
  describe Kfold::DataFile do
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'kfold' # and any other gems you need
5
+
6
+ RSpec.configure do |config|
7
+ # some (optional) config here
8
+ end
9
+
metadata CHANGED
@@ -1,118 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: kfold
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- version: "0.1"
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.3'
5
+ prerelease:
9
6
  platform: ruby
10
- authors:
11
- - "Christian Rish\xC3\xB8j"
7
+ authors:
8
+ - Christian Rishoj
12
9
  autorequire:
13
10
  bindir: bin
14
- cert_chain:
15
- - |
16
- -----BEGIN CERTIFICATE-----
17
- MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMRIwEAYDVQQDDAljaHJp
18
- c3RpYW4xFjAUBgoJkiaJk/IsZAEZFgZyaXNob2oxEzARBgoJkiaJk/IsZAEZFgNu
19
- ZXQwHhcNMTAxMjMwMTAwMjUzWhcNMTExMjMwMTAwMjUzWjBBMRIwEAYDVQQDDAlj
20
- aHJpc3RpYW4xFjAUBgoJkiaJk/IsZAEZFgZyaXNob2oxEzARBgoJkiaJk/IsZAEZ
21
- FgNuZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCg2y4Tc0otb09T
22
- /UucTm3DbQilOfQwN9QCzjjnPT6071YeyHsEmv4zokUCBSW5n+H/D0tSAQobT6D+
23
- APet6eFLGRW0L9MGsi7do5w+GY4B2nr6CGaouJaoj7XvWKqgigZ6YwfI9RAdpVNT
24
- UhF5VeUs9KZ8dMgc9YeezrB9yZMNHM9nDKDEH6bK53xH8OeUkaUBhASEYJ07zMj+
25
- hioKQQB/BUCAxpc5ElE9dmdJuinHFqD7KmqU7KSp/0wHvvgT5sqzS32xzlovOSxK
26
- GDHt9mtVmQiD3fBCfPJhysaRSUyaUA7jEFljgRTxuH1GWLyGE24/c6zVBknLPSC+
27
- hFW0Ib3/AgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFNtKnxiLUpy9a406
28
- diOk3lm5ISTEMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAiMhO6NXU
29
- f/uTInOl2fFxIQsakyCXoWE2u7U2NLLW5R5DCYFK/EH+OYsum1Khu+Jt/n5loV7e
30
- B4QlCbwlhwztW7sWA/sQQoLQsroZi2kmYwnkYLeqRgUre3E+YpD3S9QAWIFYpkBZ
31
- b9mIToqxb0m+WiLCysrg3sfDymrfuNDdtQcVPcJ5W2+Mj6LJJN65bAvqqExVpr63
32
- qbn/bmiocEIbQUsPSVuw+FSIiR6be/Ty3QpWQgxXnbHsfHFWPpADuOwTYPLxWqBg
33
- 4izI+lCFvIjAaa5WjKVW8PV3XIvgr4+/ESIzs1OOVW7ktQNwu7GXt/kR2KQH9FRC
34
- VSyVlp5OZP6OoA==
35
- -----END CERTIFICATE-----
36
-
37
- date: 2010-12-30 00:00:00 +07:00
38
- default_executable:
39
- dependencies:
40
- - !ruby/object:Gem::Dependency
41
- name: commander
11
+ cert_chain: []
12
+ date: 2011-10-15 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70121742826740 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
42
23
  prerelease: false
43
- requirement: &id001 !ruby/object:Gem::Requirement
24
+ version_requirements: *70121742826740
25
+ - !ruby/object:Gem::Dependency
26
+ name: commander
27
+ requirement: &70121742826200 !ruby/object:Gem::Requirement
44
28
  none: false
45
- requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- segments:
49
- - 0
50
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
51
33
  type: :runtime
52
- version_requirements: *id001
53
- description: Create k-fold splits from datafiles (useful for cross-validation in supervised machine learning)
54
- email: christian@rishoj.net
55
- executables:
34
+ prerelease: false
35
+ version_requirements: *70121742826200
36
+ description: Create K-fold splits from data files and assist in training and testing
37
+ (useful for cross-validation in supervised machine learning)
38
+ email:
39
+ - christian@rishoj.net
40
+ executables:
56
41
  - kfold
57
42
  extensions: []
58
-
59
- extra_rdoc_files:
60
- - CHANGELOG
61
- - LICENSE
62
- - README
63
- - bin/kfold
64
- - lib/kfold.rb
65
- - lib/kfold/data_file.rb
66
- files:
43
+ extra_rdoc_files: []
44
+ files:
45
+ - .gitignore
46
+ - .idea/encodings.xml
47
+ - .idea/kfold.iml
48
+ - .idea/misc.xml
49
+ - .idea/modules.xml
50
+ - .idea/vcs.xml
51
+ - .rspec
67
52
  - CHANGELOG
53
+ - Gemfile
68
54
  - LICENSE
69
55
  - Manifest
70
- - README
56
+ - README.rdoc
71
57
  - Rakefile
72
58
  - bin/kfold
59
+ - kfold.gemspec
73
60
  - lib/kfold.rb
74
61
  - lib/kfold/data_file.rb
75
- - spec/helper.rb
62
+ - lib/kfold/version.rb
76
63
  - spec/kfold/data_file_spec.rb
77
64
  - spec/kfold/sample_data_file.conll
78
- - kfold.gemspec
79
- has_rdoc: true
65
+ - spec/spec_helper.rb
80
66
  homepage: http://github.com/crishoj/kfold
81
67
  licenses: []
82
-
83
68
  post_install_message:
84
- rdoc_options:
85
- - --line-numbers
86
- - --inline-source
87
- - --title
88
- - Kfold
89
- - --main
90
- - README
91
- require_paths:
69
+ rdoc_options: []
70
+ require_paths:
92
71
  - lib
93
- required_ruby_version: !ruby/object:Gem::Requirement
72
+ required_ruby_version: !ruby/object:Gem::Requirement
94
73
  none: false
95
- requirements:
96
- - - ">="
97
- - !ruby/object:Gem::Version
98
- segments:
99
- - 0
100
- version: "0"
101
- required_rubygems_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
79
  none: false
103
- requirements:
104
- - - ">="
105
- - !ruby/object:Gem::Version
106
- segments:
107
- - 1
108
- - 2
109
- version: "1.2"
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
110
84
  requirements: []
111
-
112
- rubyforge_project: kfold
113
- rubygems_version: 1.3.7
85
+ rubyforge_project:
86
+ rubygems_version: 1.8.10
114
87
  signing_key:
115
88
  specification_version: 3
116
- summary: Create k-fold splits from datafiles (useful for cross-validation in supervised machine learning)
117
- test_files: []
118
-
89
+ summary: Split your data and process it in parallel
90
+ test_files:
91
+ - spec/kfold/data_file_spec.rb
92
+ - spec/kfold/sample_data_file.conll
93
+ - spec/spec_helper.rb
data.tar.gz.sig DELETED
Binary file
data/README DELETED
@@ -1,3 +0,0 @@
1
- == kfold
2
-
3
- You should document your project here.
@@ -1,3 +0,0 @@
1
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/..'
2
-
3
- require 'spec'
metadata.gz.sig DELETED
@@ -1,2 +0,0 @@
1
- y���ڇ�1 �c���<�0�/Ź�)ZA�^�
2
- �����ࠤ�d�Z�8WZ.~��u��-P}Z����""a��R(_��ڤC���T|�N�`�A�W~(��O� �䞾��q�x0��\.��πxM#�����n��f�j� �^E�����F��?���!�&� ]�-�,��B��7�(offb;���խaaP�U�'t��D|#�%�]������,��[ڈ.� /�j�#�v81�9��е+%Y�)�d9-/i