-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRakefile
More file actions
105 lines (87 loc) · 2.32 KB
/
Rakefile
File metadata and controls
105 lines (87 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
$LOAD_PATH.unshift(File.expand_path('lib'))
require 'corpus'
desc "generate full word table with rankings"
task :table do
corpus = Corpus::Main.new(corpus_directory)
corpus.output_table(:out=>$stdout, :max=>ENV['max'], :sort=>ENV['sort'])
end
desc "generate word rankings list"
task :words do
corpus = Corpus::Main.new(corpus_directory)
corpus.output_words
end
desc "list words and ranks by first letter"
task :alpharank do
corpus = Corpus::Main.new(corpus_directory)
corpus.letter_ranks
end
desc "display letter frequencies"
task :letters do
corpus = Corpus::Main.new(corpus_directory)
size = (ENV['size'] || 1).to_i
norm = ENV['norm']
corpus.output_letters(:size=>size, :norm=>norm)
end
desc "generate spelling hierarchy"
task :hierarchy do
corpus = Corpus::Main.new(corpus_directory)
corpus.output_hierarchy(:out=>$stdout)
end
namespace :db do
desc "generate analysis cache database (will speed up later runs)"
task :cache do
corpus = Corpus::Main.new(corpus_directory)
#corpus.create_database(ENV['max'])
end
desc "generate results database for words and bigrams"
task :save do
corpus = Corpus::Main.new(corpus_directory)
corpus.create_database(:max=>ENV['max'])
end
desc "load words and bigrams from results database"
task :load do
corpus = Corpus::Main.new(corpus_directory)
corpus.load_database()
end
end
=begin
# Layout evolution tasks
namespace :evo do
desc "Score my boards"
task :score do
corpus = Corpus::Main.new(corpus_directory)
Corpus::Layout::LAYOUTS.each_with_index do |(name, layout), i|
layout = Corpus::Layout.new(layout, corpus)
puts("%2d) %-30s %10d" % [i+1, name, layout.score])
end
name = "Random Layout"
layout = Corpus::Layout.random(corpus)
puts("%2d) %-30s %10d" % [0, name, layout.score])
end
desc "Search for best layout."
task :search do
corpus = Corpus::Main.new(corpus_directory)
corpus.search
end
desc "Evolve best layout."
task :evolve do
corpus = Corpus::Main.new(corpus_directory)
corpus.evolve
end
#desc "Simple letter maximum board"
#task :max do
# corpus = Corpus::Main.new(corpus_directory)
#
# layout = Corpus::Layout.maximum
# puts layout
# puts "Score: %s" % [layout.score(corpus)]
#end
end
=end
def corpus_directory
if ENV['sample']
'work/samples'
else
'data/corpus'
end
end