loose_tight_dictionary 0.0.10 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/.gitignore +1 -0
  2. data/Gemfile +4 -0
  3. data/README.rdoc +76 -23
  4. data/Rakefile +2 -38
  5. data/benchmark/before-with-free.txt +283 -0
  6. data/benchmark/before-without-last-result.txt +257 -0
  7. data/benchmark/before.txt +304 -0
  8. data/benchmark/memory.rb +54 -0
  9. data/examples/bts_aircraft/5-2-A.htm +10305 -0
  10. data/examples/bts_aircraft/5-2-B.htm +9576 -0
  11. data/examples/bts_aircraft/5-2-D.htm +7094 -0
  12. data/examples/bts_aircraft/5-2-E.htm +2349 -0
  13. data/examples/bts_aircraft/5-2-G.htm +2922 -0
  14. data/examples/bts_aircraft/blockings.csv +1 -0
  15. data/examples/bts_aircraft/identities.csv +1 -0
  16. data/examples/bts_aircraft/negatives.csv +1 -0
  17. data/examples/bts_aircraft/number_260.csv +334 -0
  18. data/examples/bts_aircraft/positives.csv +1 -0
  19. data/examples/bts_aircraft/test_bts_aircraft.rb +123 -0
  20. data/examples/bts_aircraft/tighteners.csv +1 -0
  21. data/examples/first_name_matching.rb +14 -22
  22. data/lib/loose_tight_dictionary/blocking.rb +36 -0
  23. data/lib/loose_tight_dictionary/extract_regexp.rb +30 -0
  24. data/lib/loose_tight_dictionary/identity.rb +25 -0
  25. data/lib/loose_tight_dictionary/result.rb +23 -0
  26. data/lib/loose_tight_dictionary/score.rb +28 -0
  27. data/lib/loose_tight_dictionary/similarity.rb +62 -0
  28. data/lib/loose_tight_dictionary/tightener.rb +30 -0
  29. data/lib/loose_tight_dictionary/version.rb +3 -0
  30. data/lib/loose_tight_dictionary/wrapper.rb +37 -0
  31. data/lib/loose_tight_dictionary.rb +178 -305
  32. data/loose_tight_dictionary.gemspec +19 -64
  33. data/test/helper.rb +6 -6
  34. data/test/test_blocking.rb +23 -0
  35. data/test/test_extract_regexp.rb +18 -0
  36. data/test/test_identity.rb +18 -0
  37. data/test/test_loose_tight_dictionary.rb +52 -245
  38. data/test/test_loose_tight_dictionary_convoluted.rb.disabled +268 -0
  39. data/test/test_tightening.rb +10 -0
  40. metadata +52 -65
  41. data/VERSION +0 -1
  42. data/examples/icao-bts.rb +0 -58
data/.gitignore CHANGED
@@ -19,3 +19,4 @@ rdoc
19
19
  pkg
20
20
 
21
21
  ## PROJECT::SPECIFIC
22
+ Gemfile.lock
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in loose_tight_dictionary.gemspec
4
+ gemspec
data/README.rdoc CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Match things based on string similarity (using the Pair Distance algorithm) and regular expressions.
4
4
 
5
- = Quickstart
5
+ == Quickstart
6
6
 
7
- >> d = LooseTightDictionary.new %w(seamus andy ben)
7
+ >> d = LooseTightDictionary.new %w{seamus andy ben}
8
8
  => [...]
9
9
  >> puts d.find 'Shamus Heaney'
10
10
  => 'seamus'
@@ -12,26 +12,79 @@ Match things based on string similarity (using the Pair Distance algorithm) and
12
12
  Try running the included example file:
13
13
 
14
14
  $ ruby examples/first_name_matching.rb
15
- Left side (input)
16
- ====================
17
- Mr. Seamus
18
- Sr. Andy
19
- Master BenT
20
-
21
- Right side (output)
22
- ====================
23
- seamus
24
- andy
25
- ben
26
-
27
- Results
28
- ====================
29
- Left record (input) Right record (output) Prefix used (if any) Score
30
- Mr. Seamus seamus NULL 0.666666666666667
31
- Sr. Andy andy NULL 0.5
32
- Master BenT ben NULL 0.2
33
-
34
- = Improving dictionaries
15
+ ######################################################################################################################################################
16
+ # Match "Mr. Seamus" => "seamus"
17
+ ######################################################################################################################################################
18
+
19
+ Needle
20
+ (needle_reader proc not defined, so downcasing everything)
21
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
22
+ "mr. seamus"
23
+
24
+ Haystack
25
+ (haystack_reader proc not defined, so downcasing everything)
26
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
27
+ "seamus"
28
+ "andy"
29
+ "ben"
30
+
31
+ Tighteners
32
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
33
+ (none)
34
+
35
+ Comparisons
36
+ Score t_haystack [=> tightened/prefixed] t_needle [=> tightened/prefixed]
37
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
38
+ 0.8333333333333334 "seamus" "mr. seamus"
39
+ 0.0 "andy" "mr. seamus"
40
+ 0.0 "ben" "mr. seamus"
41
+
42
+ Match
43
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
44
+ "seamus"
45
+
46
+ # [... there's more output ...]
47
+
48
+ == The Boeing example
49
+
50
+ From the tests:
51
+
52
+ ######################################################################################################################################################
53
+ # Match "BOEING 737100" => "BOEING BOEING 737-100/200"
54
+ ######################################################################################################################################################
55
+
56
+ Needle
57
+ (needle_reader proc not defined, so downcasing everything)
58
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
59
+ "boeing 737100"
60
+
61
+ Haystack
62
+ (haystack_reader proc not defined, so downcasing everything)
63
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
64
+ "boeing boeing 737-100/200"
65
+ "boeing boeing 737-900"
66
+
67
+ Tighteners
68
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
69
+ /(7\d)(7|0)-?(\d{1,3})/i
70
+
71
+ Comparisons
72
+ Score t_haystack [=> tightened/prefixed] t_needle [=> tightened/prefixed]
73
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
74
+ 1.0 "boeing boeing 737-100/200" => "737100" "boeing 737100" => "737100"
75
+ 0.6666666666666666 "boeing boeing 737-100/200" => "737100" "boeing 737100"
76
+ 0.6153846153846154 "boeing boeing 737-900" "boeing 737100"
77
+ 0.6 "boeing boeing 737-900" => "737900" "boeing 737100" => "737100"
78
+ 0.6 "boeing boeing 737-100/200" "boeing 737100"
79
+ 0.4 "boeing boeing 737-900" => "737900" "boeing 737100"
80
+ 0.32 "boeing boeing 737-100/200" "boeing 737100" => "737100"
81
+ 0.2857142857142857 "boeing boeing 737-900" "boeing 737100" => "737100"
82
+
83
+ Match
84
+ ------------------------------------------------------------------------------------------------------------------------------------------------------
85
+ "BOEING BOEING 737-100/200"
86
+
87
+ == Improving dictionaries
35
88
 
36
89
  Similarity matching will only get you so far.
37
90
 
@@ -49,4 +102,4 @@ Similarity matching will only get you so far.
49
102
 
50
103
  == Copyright
51
104
 
52
- Copyright (c) 2010 Seamus Abshere. See LICENSE for details.
105
+ Copyright (c) 2011 Seamus Abshere. See LICENSE for details.
data/Rakefile CHANGED
@@ -1,26 +1,5 @@
1
- require 'rubygems'
2
- require 'rake'
3
-
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "loose_tight_dictionary"
8
- gem.summary = %Q{Allows iterative development of dictionaries for big data sets.}
9
- gem.description = %Q{Create dictionaries that link rows between two tables (left and right) using loose matching (string similarity) by default and tight matching (regexp) by request.}
10
- gem.email = "seamus@abshere.net"
11
- gem.homepage = "http://github.com/seamusabshere/loose_tight_dictionary"
12
- gem.authors = ["Seamus Abshere"]
13
- gem.add_development_dependency "shoulda"
14
- gem.add_development_dependency "remote_table", ">=0.2.19"
15
- gem.add_dependency 'activesupport', '>=2.3.4'
16
- gem.add_dependency 'andand', '>=1.3.1'
17
- gem.add_dependency 'amatch', '>=0.2.5'
18
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
19
- end
20
- Jeweler::GemcutterTasks.new
21
- rescue LoadError
22
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
23
- end
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
24
3
 
25
4
  require 'rake/testtask'
26
5
  Rake::TestTask.new(:test) do |test|
@@ -29,21 +8,6 @@ Rake::TestTask.new(:test) do |test|
29
8
  test.verbose = true
30
9
  end
31
10
 
32
- begin
33
- require 'rcov/rcovtask'
34
- Rcov::RcovTask.new do |test|
35
- test.libs << 'test'
36
- test.pattern = 'test/**/test_*.rb'
37
- test.verbose = true
38
- end
39
- rescue LoadError
40
- task :rcov do
41
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
42
- end
43
- end
44
-
45
- task :test => :check_dependencies
46
-
47
11
  task :default => :test
48
12
 
49
13
  require 'rake/rdoctask'
@@ -0,0 +1,283 @@
1
+ 1962 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/core_ext/object/blank.rb:68:String
2
+ 1957 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1632:String
3
+ 342 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:29:String
4
+ 326 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:29:Array
5
+ 325 benchmark/memory.rb:21:String
6
+ 325 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table/hasher.rb:20:String
7
+ 325 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table/format/delimited.rb:22:ActiveSupport::OrderedHash
8
+ 325 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:65:String
9
+ 325 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/ordered_hash.rb:39:Array
10
+ 325 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:25:LooseTightDictionary::Similarity
11
+ 325 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:57:Array
12
+ 325 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:25:LooseTightDictionary::Score
13
+ 325 ./benchmark/../lib/loose_tight_dictionary/score.rb:13:Float
14
+ 325 ./benchmark/../lib/loose_tight_dictionary.rb:35:LooseTightDictionary::Wrapper
15
+ 320 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table/format/delimited.rb:28:String
16
+ 303 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:21:Float
17
+ 201 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:20:String
18
+ 184 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:14:String
19
+ 140 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch.bundle:0:__node__
20
+ 41 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:49:__node__
21
+ 31 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:27:Regexp
22
+ 28 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:19:__node__
23
+ 22 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:57:__node__
24
+ 22 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:20:__node__
25
+ 21 ./benchmark/../lib/loose_tight_dictionary.rb:199:LooseTightDictionary::Blocking
26
+ 17 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:21:__node__
27
+ 16 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch.bundle:0:Class
28
+ 14 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:4:__node__
29
+ 14 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:37:__node__
30
+ 13 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:15:__node__
31
+ 13 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:27:__node__
32
+ 12 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:29:__node__
33
+ 12 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:19:__node__
34
+ 11 ./benchmark/../lib/loose_tight_dictionary/identity.rb:18:__node__
35
+ 11 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:26:__node__
36
+ 11 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:25:__node__
37
+ 11 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:24:__node__
38
+ 10 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:55:__node__
39
+ 10 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:39:__node__
40
+ 10 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:25:__node__
41
+ 10 ./benchmark/../lib/loose_tight_dictionary.rb:193:LooseTightDictionary::Identity
42
+ 9 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch.bundle:0:String
43
+ 9 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:10:__node__
44
+ 9 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:49:String
45
+ 9 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:42:__node__
46
+ 9 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:41:__node__
47
+ 8 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:31:__node__
48
+ 8 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:27:__node__
49
+ 8 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:14:__node__
50
+ 8 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:38:__node__
51
+ 8 ./benchmark/../lib/loose_tight_dictionary/score.rb:13:__node__
52
+ 8 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:23:__node__
53
+ 8 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:24:__node__
54
+ 7 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:7:__node__
55
+ 7 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:6:__node__
56
+ 7 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:5:__node__
57
+ 7 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:9:__node__
58
+ 7 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:25:__node__
59
+ 7 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:45:__node__
60
+ 7 ./benchmark/../lib/loose_tight_dictionary/score.rb:17:__node__
61
+ 7 ./benchmark/../lib/loose_tight_dictionary/identity.rb:19:__node__
62
+ 7 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:27:__node__
63
+ 7 ./benchmark/../lib/loose_tight_dictionary.rb:209:String
64
+ 6 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:8:__node__
65
+ 6 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:44:__node__
66
+ 6 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:15:__node__
67
+ 6 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:13:__node__
68
+ 6 ./benchmark/../lib/loose_tight_dictionary/score.rb:25:__node__
69
+ 6 ./benchmark/../lib/loose_tight_dictionary/score.rb:21:__node__
70
+ 6 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:10:__node__
71
+ 6 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:22:__node__
72
+ 5 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/fastercsv-1.5.4/lib/faster_csv.rb:1640:String
73
+ 5 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:34:__node__
74
+ 5 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:9:__node__
75
+ 5 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:19:__node__
76
+ 5 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:8:__node__
77
+ 5 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:33:__node__
78
+ 5 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:29:__node__
79
+ 5 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:12:__node__
80
+ 5 ./benchmark/../lib/loose_tight_dictionary/score.rb:9:__node__
81
+ 5 ./benchmark/../lib/loose_tight_dictionary/result.rb:16:__node__
82
+ 5 ./benchmark/../lib/loose_tight_dictionary/identity.rb:10:__node__
83
+ 5 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:26:__node__
84
+ 5 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:25:__node__
85
+ 5 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:15:__node__
86
+ 4 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:33:__node__
87
+ 4 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:30:__node__
88
+ 4 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:20:__node__
89
+ 4 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:59:__node__
90
+ 4 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:54:__node__
91
+ 4 ./benchmark/../lib/loose_tight_dictionary/score.rb:5:__node__
92
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:9:__node__
93
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:8:__node__
94
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:7:__node__
95
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:6:__node__
96
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:5:__node__
97
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:4:__node__
98
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:3:__node__
99
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:13:__node__
100
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:12:__node__
101
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:11:__node__
102
+ 4 ./benchmark/../lib/loose_tight_dictionary/result.rb:10:__node__
103
+ 4 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:8:__node__
104
+ 4 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:22:__node__
105
+ 4 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:21:__node__
106
+ 4 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:20:String
107
+ 4 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:11:__node__
108
+ 3 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:8:__node__
109
+ 3 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:3:__node__
110
+ 3 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:28:__node__
111
+ 3 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:24:__node__
112
+ 3 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:18:__node__
113
+ 3 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:15:String
114
+ 3 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:14:__node__
115
+ 3 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:8:__node__
116
+ 3 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:26:__node__
117
+ 3 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:18:__node__
118
+ 3 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:13:__node__
119
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:7:__node__
120
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:6:__node__
121
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:58:__node__
122
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:56:__node__
123
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:48:__node__
124
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:36:__node__
125
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:32:__node__
126
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:28:__node__
127
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:24:__node__
128
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:20:__node__
129
+ 3 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:11:__node__
130
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:8:__node__
131
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:7:__node__
132
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:24:__node__
133
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:20:__node__
134
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:16:__node__
135
+ 3 ./benchmark/../lib/loose_tight_dictionary/score.rb:12:__node__
136
+ 3 ./benchmark/../lib/loose_tight_dictionary/result.rb:21:__node__
137
+ 3 ./benchmark/../lib/loose_tight_dictionary/result.rb:19:__node__
138
+ 3 ./benchmark/../lib/loose_tight_dictionary/result.rb:15:__node__
139
+ 3 ./benchmark/../lib/loose_tight_dictionary/identity.rb:9:__node__
140
+ 3 ./benchmark/../lib/loose_tight_dictionary/identity.rb:17:__node__
141
+ 3 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:3:__node__
142
+ 3 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:18:__node__
143
+ 3 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:16:String
144
+ 3 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:15:String
145
+ 3 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:33:__node__
146
+ 3 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:14:__node__
147
+ 3 ./benchmark/../lib/loose_tight_dictionary.rb:77:Array
148
+ 2 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/uri/common.rb:387:String
149
+ 2 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:3:String
150
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:6:__node__
151
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:5:__node__
152
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:4:__node__
153
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:3:Class
154
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:35:__node__
155
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:32:__node__
156
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:26:__node__
157
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:22:__node__
158
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:20:__node__
159
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:16:__node__
160
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:12:__node__
161
+ 2 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:11:__node__
162
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:6:__node__
163
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:3:Class
164
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:28:__node__
165
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:27:String
166
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:24:__node__
167
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:23:__node__
168
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:22:__node__
169
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:15:__node__
170
+ 2 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:10:__node__
171
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:60:__node__
172
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:50:__node__
173
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:4:__node__
174
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:46:__node__
175
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:3:__node__
176
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:34:__node__
177
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:30:__node__
178
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:2:Class
179
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:26:__node__
180
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:22:__node__
181
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:17:__node__
182
+ 2 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:16:__node__
183
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:4:Class
184
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:26:__node__
185
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:22:__node__
186
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:18:__node__
187
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:17:String
188
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:14:__node__
189
+ 2 ./benchmark/../lib/loose_tight_dictionary/score.rb:13:String
190
+ 2 ./benchmark/../lib/loose_tight_dictionary/result.rb:2:Class
191
+ 2 ./benchmark/../lib/loose_tight_dictionary/result.rb:17:__node__
192
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:7:__node__
193
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:4:Class
194
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:23:__node__
195
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:22:__node__
196
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:21:__node__
197
+ 2 ./benchmark/../lib/loose_tight_dictionary/identity.rb:11:__node__
198
+ 2 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:7:__node__
199
+ 2 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:6:__node__
200
+ 2 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:5:__node__
201
+ 2 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:23:String
202
+ 2 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:12:__node__
203
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:9:Class
204
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:34:__node__
205
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:32:__node__
206
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:30:__node__
207
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:29:__node__
208
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:23:__node__
209
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:16:__node__
210
+ 2 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:12:__node__
211
+ 2 ./benchmark/../lib/loose_tight_dictionary.rb:86:Array
212
+ 1 benchmark/memory.rb:50:String
213
+ 1 benchmark/memory.rb:49:LooseTightDictionary
214
+ 1 /Users/seamus/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/uri/common.rb:492:URI::Generic
215
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table/executor.rb:19:Process::Status
216
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table/executor.rb:10:Bignum
217
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:63:Array
218
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:121:RemoteTable::Transformer
219
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:116:RemoteTable::Format::Delimited
220
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:111:RemoteTable::Properties
221
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/remote_table-1.1.6/lib/remote_table.rb:106:RemoteTable::LocalFile
222
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:4:Regexp
223
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:4:Array
224
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:1:__node__
225
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:1:String
226
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/amatch-0.2.5/lib/amatch/version.rb:1:Module
227
+ 1 /Users/seamus/.rvm/gems/ruby-1.8.7-p334/gems/activesupport-3.0.5/lib/active_support/core_ext/hash/keys.rb:18:Hash
228
+ 1 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:3:__node__
229
+ 1 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:3:String
230
+ 1 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:25:String
231
+ 1 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:1:__node__
232
+ 1 ./benchmark/../lib/loose_tight_dictionary/wrapper.rb:10:String
233
+ 1 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:4:String
234
+ 1 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:4:LooseTightDictionary::ExtractRegexp
235
+ 1 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:3:__node__
236
+ 1 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:3:String
237
+ 1 ./benchmark/../lib/loose_tight_dictionary/tightener.rb:1:__node__
238
+ 1 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:9:__node__
239
+ 1 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:2:__node__
240
+ 1 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:2:String
241
+ 1 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:25:String
242
+ 1 ./benchmark/../lib/loose_tight_dictionary/similarity.rb:1:__node__
243
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:4:__node__
244
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:4:String
245
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:3:__node__
246
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:1:String
247
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:13:Array
248
+ 1 ./benchmark/../lib/loose_tight_dictionary/score.rb:10:__node__
249
+ 1 ./benchmark/../lib/loose_tight_dictionary/result.rb:2:__node__
250
+ 1 ./benchmark/../lib/loose_tight_dictionary/result.rb:2:String
251
+ 1 ./benchmark/../lib/loose_tight_dictionary/result.rb:1:__node__
252
+ 1 ./benchmark/../lib/loose_tight_dictionary/identity.rb:5:LooseTightDictionary::ExtractRegexp
253
+ 1 ./benchmark/../lib/loose_tight_dictionary/identity.rb:4:__node__
254
+ 1 ./benchmark/../lib/loose_tight_dictionary/identity.rb:4:String
255
+ 1 ./benchmark/../lib/loose_tight_dictionary/identity.rb:1:__node__
256
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:4:__node__
257
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:2:__node__
258
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:2:String
259
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:2:Module
260
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:28:__node__
261
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:26:String
262
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:25:String
263
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:24:String
264
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:23:Regexp
265
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:1:__node__
266
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:17:Hash
267
+ 1 ./benchmark/../lib/loose_tight_dictionary/extract_regexp.rb:10:String
268
+ 1 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:9:__node__
269
+ 1 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:9:String
270
+ 1 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:1:__node__
271
+ 1 ./benchmark/../lib/loose_tight_dictionary/blocking.rb:10:LooseTightDictionary::ExtractRegexp
272
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:62:LooseTightDictionary::Wrapper
273
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:39:String
274
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:39:LooseTightDictionary::Result
275
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:35:String
276
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:209:Array
277
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:199:String
278
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:198:Array
279
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:193:String
280
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:192:Array
281
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:187:String
282
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:186:Array
283
+ 1 ./benchmark/../lib/loose_tight_dictionary.rb:101:Array