phonetic 1.1.0 → 1.2.0
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.
- checksums.yaml +4 -4
- data/.travis.yml +9 -5
- data/.yardopts +5 -0
- data/CHANGELOG.md +14 -0
- data/README.md +123 -109
- data/lib/phonetic.rb +1 -0
- data/lib/phonetic/core_ext/string/nysiis.rb +1 -1
- data/lib/phonetic/core_ext/string/refined_nysiis.rb +12 -0
- data/lib/phonetic/dm_soundex.rb +4 -21
- data/lib/phonetic/dm_soundex/code.rb +30 -0
- data/lib/phonetic/{dm_soundex_map.rb → dm_soundex/map.rb} +0 -0
- data/lib/phonetic/double_metaphone.rb +111 -130
- data/lib/phonetic/double_metaphone/code.rb +28 -0
- data/lib/phonetic/metaphone.rb +123 -87
- data/lib/phonetic/refined_nysiis.rb +72 -0
- data/lib/phonetic/version.rb +1 -1
- data/phonetic.gemspec +29 -27
- data/spec/phonetic/caverphone2_spec.rb +2 -53
- data/spec/phonetic/caverphone_spec.rb +2 -104
- data/spec/phonetic/core_ext/string/refined_nysiis_spec.rb +9 -0
- data/spec/phonetic/double_metaphone_spec.rb +3 -2
- data/spec/phonetic/refined_nysiis_spec.rb +30 -0
- data/spec/spec_helper.rb +6 -5
- data/spec/support/caverphone2_data.rb +53 -0
- data/spec/support/caverphone_data.rb +104 -0
- data/spec/support/double_metaphone_data.rb +5 -0
- data/spec/support/refined_nysiis_data.rb +49 -0
- metadata +20 -4
|
@@ -1,112 +1,10 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
CAVERPHONE_TEST_TABLE = {
|
|
4
|
-
'Addis' => 'ATS111',
|
|
5
|
-
'Alcantara' => 'AKNTR1',
|
|
6
|
-
'Allegra' => 'ALKR11',
|
|
7
|
-
'Allende' => 'ALNT11',
|
|
8
|
-
'America' => 'AMRK11',
|
|
9
|
-
'Andera' => 'ANTR11',
|
|
10
|
-
'Annamarie' => 'ANMR11',
|
|
11
|
-
'Anya' => 'ANY111',
|
|
12
|
-
'Ariane' => 'ARN111',
|
|
13
|
-
'Arnoldo' => 'ANT111',
|
|
14
|
-
'Beltran' => 'PTRN11',
|
|
15
|
-
'Blanch' => 'PLNK11',
|
|
16
|
-
'Blose' => 'PLS111',
|
|
17
|
-
'Bodie' => 'PT1111',
|
|
18
|
-
'Celentano' => 'SLNTN1',
|
|
19
|
-
'Celestine' => 'SLSTN1',
|
|
20
|
-
'Charmain' => 'KMN111',
|
|
21
|
-
'Chelsea' => 'KS1111',
|
|
22
|
-
'Coleman' => 'KLMN11',
|
|
23
|
-
'Collis' => 'KLS111',
|
|
24
|
-
'Crysta' => 'KRST11',
|
|
25
|
-
'Culwell' => 'KW1111',
|
|
26
|
-
'Dilworth' => 'TWT111',
|
|
27
|
-
'Dinkins' => 'TNKNS1',
|
|
28
|
-
'Donetta' => 'TNT111',
|
|
29
|
-
'Dreama' => 'TRM111',
|
|
30
|
-
'Dulce' => 'TS1111',
|
|
31
|
-
'Eastwood' => 'ASTWT1',
|
|
32
|
-
'Eddy' => 'AT1111',
|
|
33
|
-
'Ellett' => 'ALT111',
|
|
34
|
-
'Fazekas' => 'FSKS11',
|
|
35
|
-
'Francesco' => 'FRNSSK',
|
|
36
|
-
'Gary' => 'KR1111',
|
|
37
|
-
'Genoveva' => 'KNFF11',
|
|
38
|
-
'Gossman' => 'KSMN11',
|
|
39
|
-
'Goudy' => 'KT1111',
|
|
40
|
-
'Greta' => 'KRT111',
|
|
41
|
-
'Gunn' => 'KN1111',
|
|
42
|
-
'Hackman' => 'AKMN11',
|
|
43
|
-
'Hassie' => 'AS1111',
|
|
44
|
-
'Henrietta' => 'ANRT11',
|
|
45
|
-
'Hollaway' => 'ALW111',
|
|
46
|
-
'Hulbert' => 'APT111',
|
|
47
|
-
'Isaacson' => 'ASKSN1',
|
|
48
|
-
'Ishibashi' => 'ASPS11',
|
|
49
|
-
'Isreal' => 'ASR111',
|
|
50
|
-
'Jerez' => 'YRS111',
|
|
51
|
-
'Joette' => 'YT1111',
|
|
52
|
-
'Jonathon' => 'YNTN11',
|
|
53
|
-
'Karin' => 'KRN111',
|
|
54
|
-
'Kenneth' => 'KNT111',
|
|
55
|
-
'Koontz' => 'KNTS11',
|
|
56
|
-
'Korey' => 'KR1111',
|
|
57
|
-
'Krystle' => 'KRSTL1',
|
|
58
|
-
'Landey' => 'LNT111',
|
|
59
|
-
'Lashaunda' => 'LSNT11',
|
|
60
|
-
'Legere' => 'LKR111',
|
|
61
|
-
'Lela' => 'LL1111',
|
|
62
|
-
'Louis' => 'LS1111',
|
|
63
|
-
'Lovely' => 'LFL111',
|
|
64
|
-
'Lozano' => 'LSN111',
|
|
65
|
-
'Margo' => 'MK1111',
|
|
66
|
-
'Maricle' => 'MRKL11',
|
|
67
|
-
'Mario' => 'MR1111',
|
|
68
|
-
'Mccormick' => 'MKMK11',
|
|
69
|
-
'Melody' => 'MLT111',
|
|
70
|
-
'Mike' => 'MK1111',
|
|
71
|
-
'Milagros' => 'MLKRS1',
|
|
72
|
-
'Modesto' => 'MTST11',
|
|
73
|
-
'Mor' => 'M11111',
|
|
74
|
-
'Muse' => 'MS1111',
|
|
75
|
-
'Neil' => 'N11111',
|
|
76
|
-
'Nicolas' => 'NKLS11',
|
|
77
|
-
'Olney' => 'AN1111',
|
|
78
|
-
'Pannell' => 'PN1111',
|
|
79
|
-
'Posada' => 'PST111',
|
|
80
|
-
'Raeann' => 'RN1111',
|
|
81
|
-
'Rameau' => 'RM1111',
|
|
82
|
-
'Regal' => 'RK1111',
|
|
83
|
-
'Renetta' => 'RNT111',
|
|
84
|
-
'Sachiko' => 'SKK111',
|
|
85
|
-
'Samira' => 'SMR111',
|
|
86
|
-
'Sammie' => 'SM1111',
|
|
87
|
-
'Sara' => 'SR1111',
|
|
88
|
-
'Searcy' => 'SS1111',
|
|
89
|
-
'Seeley' => 'SL1111',
|
|
90
|
-
'Shannon' => 'SNN111',
|
|
91
|
-
'Siegmund' => 'SKMNT1',
|
|
92
|
-
'Silvera' => 'SFR111',
|
|
93
|
-
'Sitz' => 'STS111',
|
|
94
|
-
'Smyth' => 'SMT111',
|
|
95
|
-
'Steedley' => 'STTL11',
|
|
96
|
-
'Teri' => 'TR1111',
|
|
97
|
-
'Tourville' => 'TFL111',
|
|
98
|
-
'Ute' => 'AT1111',
|
|
99
|
-
'Vernon' => 'FNN111',
|
|
100
|
-
'Vidaurri' => 'FTR111',
|
|
101
|
-
'Wolff' => 'WF1111',
|
|
102
|
-
'Zeck' => 'SK1111',
|
|
103
|
-
'Zirkind' => 'SKNT11'
|
|
104
|
-
}
|
|
2
|
+
require 'support/caverphone_data'
|
|
105
3
|
|
|
106
4
|
describe Phonetic::Caverphone do
|
|
107
5
|
describe '.encode' do
|
|
108
6
|
it 'should return Caverphone value of string' do
|
|
109
|
-
CAVERPHONE_TEST_TABLE.each do |word, code|
|
|
7
|
+
Phonetic::CAVERPHONE_TEST_TABLE.each do |word, code|
|
|
110
8
|
res = Phonetic::Caverphone.encode(word)
|
|
111
9
|
res.should eq(code), "expected: #{code}\ngot: #{res}\nword: #{word}"
|
|
112
10
|
end
|
|
@@ -4,8 +4,9 @@ require 'support/double_metaphone_data'
|
|
|
4
4
|
describe Phonetic::DoubleMetaphone do
|
|
5
5
|
describe '.encode' do
|
|
6
6
|
it 'should return Double Metaphone codes of string' do
|
|
7
|
-
Phonetic::DOUBLE_METAPHONE_TEST_TABLE.each do |w,
|
|
8
|
-
Phonetic::DoubleMetaphone.encode(w)
|
|
7
|
+
Phonetic::DOUBLE_METAPHONE_TEST_TABLE.each do |w, code|
|
|
8
|
+
res = Phonetic::DoubleMetaphone.encode(w)
|
|
9
|
+
res.should eq(code), "expected: #{code}\ngot: #{res}\nword: #{w}"
|
|
9
10
|
end
|
|
10
11
|
end
|
|
11
12
|
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require 'spec_helper'
|
|
2
|
+
require 'support/refined_nysiis_data'
|
|
3
|
+
|
|
4
|
+
describe Phonetic::RefinedNYSIIS do
|
|
5
|
+
describe '.encode' do
|
|
6
|
+
it 'should return Refined NYSIIS code of word' do
|
|
7
|
+
Phonetic::REFINED_NYSIIS_TEST_TABLE.each do |word, code|
|
|
8
|
+
res = Phonetic::RefinedNYSIIS.encode(word, trim: false)
|
|
9
|
+
res.should eq(code), "expected: #{code}\ngot: #{res}\nword: #{word}"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'should return empty string for empty word' do
|
|
14
|
+
Phonetic::RefinedNYSIIS.encode('').should == ''
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it 'should remove roman numerals from the end of the string' do
|
|
18
|
+
Phonetic::RefinedNYSIIS.encode('Alexander II', trim: false).should == 'ALAXANDAR'
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'should remove "JR" "SR" from the end of the string' do
|
|
22
|
+
Phonetic::RefinedNYSIIS.encode('Davis Jr').should == 'DAV'
|
|
23
|
+
Phonetic::RefinedNYSIIS.encode('Davis Sr').should == 'DAV'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it 'should ignore non-english symbols in input' do
|
|
27
|
+
Phonetic::RefinedNYSIIS.encode('1234567890+-= Bess $').should == 'B'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
data/spec/spec_helper.rb
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
require 'coveralls'
|
|
2
2
|
require 'simplecov'
|
|
3
3
|
|
|
4
|
-
if
|
|
5
|
-
Coveralls.
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
if RUBY_ENGINE == 'ruby'
|
|
5
|
+
if Coveralls.should_run?
|
|
6
|
+
Coveralls.wear!
|
|
7
|
+
else
|
|
8
|
+
SimpleCov.start
|
|
9
|
+
end
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
|
|
11
12
|
require 'phonetic'
|
|
12
13
|
|
|
13
14
|
RSpec.configure do |config|
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
module Phonetic
|
|
2
|
+
# Examples are taken from Caversham Project's paper
|
|
3
|
+
# http://caversham.otago.ac.nz/files/working/ctp150804.pdf
|
|
4
|
+
CAVERPHONE2_TEST_TABLE = {
|
|
5
|
+
'STFNSN1111' => ['Stevenson'],
|
|
6
|
+
'PTA1111111' => ['Peter'],
|
|
7
|
+
'AT11111111' => [
|
|
8
|
+
'add', 'aid', 'at', 'art', 'eat', 'earth', 'head', 'hit', 'hot',
|
|
9
|
+
'hold', 'hard', 'heart', 'it', 'out', 'old'
|
|
10
|
+
],
|
|
11
|
+
'RTA1111111' => ['rather', 'ready', 'writer'],
|
|
12
|
+
'SSA1111111' => ['social'],
|
|
13
|
+
'APA1111111' => ['able', 'appear'],
|
|
14
|
+
'TTA1111111' => [
|
|
15
|
+
'Darda', 'Datha', 'Dedie', 'Deedee', 'Deerdre', 'Deidre', 'Deirdre',
|
|
16
|
+
'Detta', 'Didi', 'Didier', 'Dido', 'Dierdre', 'Dieter', 'Dita',
|
|
17
|
+
'Ditter', 'Dodi', 'Dodie', 'Dody', 'Doherty', 'Dorthea', 'Dorthy',
|
|
18
|
+
'Doti', 'Dotti', 'Dottie', 'Dotty', 'Doty', 'Doughty', 'Douty',
|
|
19
|
+
'Dowdell', 'Duthie', 'Tada', 'Taddeo', 'Tadeo', 'Tadio', 'Tati',
|
|
20
|
+
'Teador', 'Tedda', 'Tedder', 'Teddi', 'Teddie', 'Teddy', 'Tedi',
|
|
21
|
+
'Tedie', 'Teeter', 'Teodoor', 'Teodor', 'Terti', 'Theda', 'Theodor',
|
|
22
|
+
'Theodore', 'Theta', 'Thilda', 'Thordia', 'Tilda', 'Tildi', 'Tildie',
|
|
23
|
+
'Tildy', 'Tita', 'Tito', 'Tjader', 'Toddie', 'Toddy', 'Torto', 'Tuddor',
|
|
24
|
+
'Tudor', 'Turtle', 'Tuttle', 'Tutto'
|
|
25
|
+
],
|
|
26
|
+
'KLN1111111' => [
|
|
27
|
+
'Cailean', 'Calan', 'Calen', 'Callahan', 'Callan', 'Callean',
|
|
28
|
+
'Carleen', 'Carlen', 'Carlene', 'Carlin', 'Carline', 'Carlyn',
|
|
29
|
+
'Carlynn', 'Carlynne', 'Charlean', 'Charleen', 'Charlene',
|
|
30
|
+
'Charline', 'Cherlyn', 'Chirlin', 'Clein', 'Cleon', 'Cline',
|
|
31
|
+
'Cohleen', 'Colan', 'Coleen', 'Colene', 'Colin', 'Colleen',
|
|
32
|
+
'Collen', 'Collin', 'Colline', 'Colon', 'Cullan', 'Cullen',
|
|
33
|
+
'Cullin', 'Gaelan', 'Galan', 'Galen', 'Garlan', 'Garlen',
|
|
34
|
+
'Gaulin', 'Gayleen', 'Gaylene', 'Giliane', 'Gillan', 'Gillian',
|
|
35
|
+
'Glen', 'Glenn', 'Glyn', 'Glynn', 'Gollin', 'Gorlin', 'Kalin',
|
|
36
|
+
'Karlan', 'Karleen', 'Karlen', 'Karlene', 'Karlin', 'Karlyn',
|
|
37
|
+
'Kaylyn', 'Keelin', 'Kellen', 'Kellene', 'Kellyann', 'Kellyn',
|
|
38
|
+
'Khalin', 'Kilan', 'Kilian', 'Killen', 'Killian', 'Killion',
|
|
39
|
+
'Klein', 'Kleon', 'Kline', 'Koerlin', 'Kylen', 'Kylynn', 'Quillan',
|
|
40
|
+
'Quillon', 'Qulllon', 'Xylon'
|
|
41
|
+
],
|
|
42
|
+
'TN11111111' => [
|
|
43
|
+
'Dan', 'Dane', 'Dann', 'Darn', 'Daune', 'Dawn', 'Ddene', 'Dean', 'Deane',
|
|
44
|
+
'Deanne', 'DeeAnn', 'Deeann', 'Deeanne', 'Deeyn', 'Den', 'Dene', 'Denn',
|
|
45
|
+
'Deonne', 'Diahann', 'Dian', 'Diane', 'Diann', 'Dianne', 'Diannne', 'Dine',
|
|
46
|
+
'Dion', 'Dione', 'Dionne', 'Doane', 'Doehne', 'Don', 'Donn', 'Doone', 'Dorn',
|
|
47
|
+
'Down', 'Downe', 'Duane', 'Dun', 'Dunn', 'Duyne', 'Dyan', 'Dyane', 'Dyann',
|
|
48
|
+
'Dyanne', 'Dyun', 'Tan', 'Tann', 'Teahan', 'Ten', 'Tenn', 'Terhune', 'Thain',
|
|
49
|
+
'Thaine', 'Thane', 'Thanh', 'Thayne', 'Theone', 'Thin', 'Thorn', 'Thorne',
|
|
50
|
+
'Thun', 'Thynne', 'Tien', 'Tine', 'Tjon', 'Town', 'Towne', 'Turne', 'Tyne'
|
|
51
|
+
]
|
|
52
|
+
}
|
|
53
|
+
end
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
module Phonetic
|
|
2
|
+
CAVERPHONE_TEST_TABLE = {
|
|
3
|
+
'Addis' => 'ATS111',
|
|
4
|
+
'Alcantara' => 'AKNTR1',
|
|
5
|
+
'Allegra' => 'ALKR11',
|
|
6
|
+
'Allende' => 'ALNT11',
|
|
7
|
+
'America' => 'AMRK11',
|
|
8
|
+
'Andera' => 'ANTR11',
|
|
9
|
+
'Annamarie' => 'ANMR11',
|
|
10
|
+
'Anya' => 'ANY111',
|
|
11
|
+
'Ariane' => 'ARN111',
|
|
12
|
+
'Arnoldo' => 'ANT111',
|
|
13
|
+
'Beltran' => 'PTRN11',
|
|
14
|
+
'Blanch' => 'PLNK11',
|
|
15
|
+
'Blose' => 'PLS111',
|
|
16
|
+
'Bodie' => 'PT1111',
|
|
17
|
+
'Celentano' => 'SLNTN1',
|
|
18
|
+
'Celestine' => 'SLSTN1',
|
|
19
|
+
'Charmain' => 'KMN111',
|
|
20
|
+
'Chelsea' => 'KS1111',
|
|
21
|
+
'Coleman' => 'KLMN11',
|
|
22
|
+
'Collis' => 'KLS111',
|
|
23
|
+
'Crysta' => 'KRST11',
|
|
24
|
+
'Culwell' => 'KW1111',
|
|
25
|
+
'Dilworth' => 'TWT111',
|
|
26
|
+
'Dinkins' => 'TNKNS1',
|
|
27
|
+
'Donetta' => 'TNT111',
|
|
28
|
+
'Dreama' => 'TRM111',
|
|
29
|
+
'Dulce' => 'TS1111',
|
|
30
|
+
'Eastwood' => 'ASTWT1',
|
|
31
|
+
'Eddy' => 'AT1111',
|
|
32
|
+
'Ellett' => 'ALT111',
|
|
33
|
+
'Fazekas' => 'FSKS11',
|
|
34
|
+
'Francesco' => 'FRNSSK',
|
|
35
|
+
'Gary' => 'KR1111',
|
|
36
|
+
'Genoveva' => 'KNFF11',
|
|
37
|
+
'Gossman' => 'KSMN11',
|
|
38
|
+
'Goudy' => 'KT1111',
|
|
39
|
+
'Greta' => 'KRT111',
|
|
40
|
+
'Gunn' => 'KN1111',
|
|
41
|
+
'Hackman' => 'AKMN11',
|
|
42
|
+
'Hassie' => 'AS1111',
|
|
43
|
+
'Henrietta' => 'ANRT11',
|
|
44
|
+
'Hollaway' => 'ALW111',
|
|
45
|
+
'Hulbert' => 'APT111',
|
|
46
|
+
'Isaacson' => 'ASKSN1',
|
|
47
|
+
'Ishibashi' => 'ASPS11',
|
|
48
|
+
'Isreal' => 'ASR111',
|
|
49
|
+
'Jerez' => 'YRS111',
|
|
50
|
+
'Joette' => 'YT1111',
|
|
51
|
+
'Jonathon' => 'YNTN11',
|
|
52
|
+
'Karin' => 'KRN111',
|
|
53
|
+
'Kenneth' => 'KNT111',
|
|
54
|
+
'Koontz' => 'KNTS11',
|
|
55
|
+
'Korey' => 'KR1111',
|
|
56
|
+
'Krystle' => 'KRSTL1',
|
|
57
|
+
'Landey' => 'LNT111',
|
|
58
|
+
'Lashaunda' => 'LSNT11',
|
|
59
|
+
'Legere' => 'LKR111',
|
|
60
|
+
'Lela' => 'LL1111',
|
|
61
|
+
'Louis' => 'LS1111',
|
|
62
|
+
'Lovely' => 'LFL111',
|
|
63
|
+
'Lozano' => 'LSN111',
|
|
64
|
+
'Margo' => 'MK1111',
|
|
65
|
+
'Maricle' => 'MRKL11',
|
|
66
|
+
'Mario' => 'MR1111',
|
|
67
|
+
'Mccormick' => 'MKMK11',
|
|
68
|
+
'Melody' => 'MLT111',
|
|
69
|
+
'Mike' => 'MK1111',
|
|
70
|
+
'Milagros' => 'MLKRS1',
|
|
71
|
+
'Modesto' => 'MTST11',
|
|
72
|
+
'Mor' => 'M11111',
|
|
73
|
+
'Muse' => 'MS1111',
|
|
74
|
+
'Neil' => 'N11111',
|
|
75
|
+
'Nicolas' => 'NKLS11',
|
|
76
|
+
'Olney' => 'AN1111',
|
|
77
|
+
'Pannell' => 'PN1111',
|
|
78
|
+
'Posada' => 'PST111',
|
|
79
|
+
'Raeann' => 'RN1111',
|
|
80
|
+
'Rameau' => 'RM1111',
|
|
81
|
+
'Regal' => 'RK1111',
|
|
82
|
+
'Renetta' => 'RNT111',
|
|
83
|
+
'Sachiko' => 'SKK111',
|
|
84
|
+
'Samira' => 'SMR111',
|
|
85
|
+
'Sammie' => 'SM1111',
|
|
86
|
+
'Sara' => 'SR1111',
|
|
87
|
+
'Searcy' => 'SS1111',
|
|
88
|
+
'Seeley' => 'SL1111',
|
|
89
|
+
'Shannon' => 'SNN111',
|
|
90
|
+
'Siegmund' => 'SKMNT1',
|
|
91
|
+
'Silvera' => 'SFR111',
|
|
92
|
+
'Sitz' => 'STS111',
|
|
93
|
+
'Smyth' => 'SMT111',
|
|
94
|
+
'Steedley' => 'STTL11',
|
|
95
|
+
'Teri' => 'TR1111',
|
|
96
|
+
'Tourville' => 'TFL111',
|
|
97
|
+
'Ute' => 'AT1111',
|
|
98
|
+
'Vernon' => 'FNN111',
|
|
99
|
+
'Vidaurri' => 'FTR111',
|
|
100
|
+
'Wolff' => 'WF1111',
|
|
101
|
+
'Zeck' => 'SK1111',
|
|
102
|
+
'Zirkind' => 'SKNT11'
|
|
103
|
+
}
|
|
104
|
+
end
|
|
@@ -44,6 +44,8 @@ module Phonetic
|
|
|
44
44
|
'cherry' => ['XR', 'XR'],
|
|
45
45
|
'chianti' => ['KNT', 'KNT'],
|
|
46
46
|
'chihor' => ['XHR','XHR'],
|
|
47
|
+
'chor' => ['KR', 'KR'],
|
|
48
|
+
'chore' => ['XR', 'XR'],
|
|
47
49
|
'chorus' => ['KRS', 'KRS'],
|
|
48
50
|
'Chymosin' => ['KMSN', 'KMSN'],
|
|
49
51
|
'Chynna' => ['XN', 'XN'],
|
|
@@ -94,6 +96,7 @@ module Phonetic
|
|
|
94
96
|
'Katerine' => ['KTRN', 'KTRN'],
|
|
95
97
|
'Khia' => ['K', 'K'],
|
|
96
98
|
'Knight' => ['NT', 'NT'],
|
|
99
|
+
'laczo' => ['LS', 'LX'],
|
|
97
100
|
'laugh' => ['LF', 'LF'],
|
|
98
101
|
'Lawrence' => ['LRNS', 'LRNS'],
|
|
99
102
|
'Loretta' => ['LRT', 'LRT'],
|
|
@@ -145,6 +148,7 @@ module Phonetic
|
|
|
145
148
|
'snider' => ['SNTR', 'XNTR'],
|
|
146
149
|
'succeed' => ['SKST', 'SKST'],
|
|
147
150
|
'sugar' => ['XKR', 'SKR'],
|
|
151
|
+
'sugarless' => ['XKRL', 'SKRL'],
|
|
148
152
|
'szamos' => ['SMS', 'XMS'],
|
|
149
153
|
'tagliaro' => ['TKLR', 'TLR'],
|
|
150
154
|
'thames' => ['TMS', 'TMS'],
|
|
@@ -164,6 +168,7 @@ module Phonetic
|
|
|
164
168
|
'Womo' => ['AM', 'FM'],
|
|
165
169
|
'Winningham' => ['ANNK', 'FNNK'],
|
|
166
170
|
'whirlpool' => ['ARLP', 'ARLP'],
|
|
171
|
+
'wicz' => ['ATS', 'FFX'],
|
|
167
172
|
'wright' => ['RT', 'RT'],
|
|
168
173
|
'Xavier' => ['SF', 'SFR'],
|
|
169
174
|
'Yankelovich' => ['ANKL', 'ANKL'],
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module Phonetic
|
|
2
|
+
REFINED_NYSIIS_TEST_TABLE = {
|
|
3
|
+
'Abishna' => 'ABASN',
|
|
4
|
+
'Alex' => 'ALAC',
|
|
5
|
+
'Alexandra' => 'ALAXANDR',
|
|
6
|
+
'Aumont' => 'ANAD',
|
|
7
|
+
'byword' => 'BAD',
|
|
8
|
+
'Bazzs' => 'B',
|
|
9
|
+
'Bonnie' => 'BANY',
|
|
10
|
+
'Christensen' => 'CHRASTANSAN',
|
|
11
|
+
'Cleveland' => 'CLAFALAD',
|
|
12
|
+
'Claudia' => 'CLAD',
|
|
13
|
+
'Dedee' => 'DADY',
|
|
14
|
+
'DeLaurentiis' => 'DALARANT',
|
|
15
|
+
'Echikunwoke' => 'ECACANWAC',
|
|
16
|
+
'edge' => 'EG',
|
|
17
|
+
'Eva' => 'EV',
|
|
18
|
+
'Fahey' => 'FAY',
|
|
19
|
+
'Faye' => 'FY',
|
|
20
|
+
'Fee' => 'FY',
|
|
21
|
+
'Jacqueline' => 'JACGALAN',
|
|
22
|
+
'John' => 'JAN',
|
|
23
|
+
'Hessel' => 'HASAL',
|
|
24
|
+
'Hubert' => 'HABAD',
|
|
25
|
+
'Howard' => 'HAD',
|
|
26
|
+
'Knight' => 'NAGT',
|
|
27
|
+
'Knuth' => 'NATH',
|
|
28
|
+
'Kepler' => 'CAPLAR',
|
|
29
|
+
'Lawrence' => 'LARANC',
|
|
30
|
+
'Marguerite' => 'MARGARAT',
|
|
31
|
+
'Maclaren' => 'MCLARAN',
|
|
32
|
+
'Mosheim' => 'MASAN',
|
|
33
|
+
'Smith' => 'SNATH',
|
|
34
|
+
'Schelte' => 'SCALT',
|
|
35
|
+
'Macdonald' => 'MCDANALD',
|
|
36
|
+
'Michael' => 'MACAL',
|
|
37
|
+
'Phoenix' => 'FANAC',
|
|
38
|
+
'Pfeiffer' => 'FAFAR',
|
|
39
|
+
'Pf Robert' => 'FRABAD',
|
|
40
|
+
'Queen' => 'QAN',
|
|
41
|
+
'Rebecca' => 'RABAC',
|
|
42
|
+
'Rosalind' => 'RASALAD',
|
|
43
|
+
'Schmidt' => 'SNAD',
|
|
44
|
+
'Wiza' => 'WAS',
|
|
45
|
+
'Wright' => 'RAGT',
|
|
46
|
+
'Yacine' => 'YACAN',
|
|
47
|
+
'Zaira' => 'ZAR'
|
|
48
|
+
}
|
|
49
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: phonetic
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- n7v
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2013-
|
|
11
|
+
date: 2013-11-06 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -105,6 +105,8 @@ files:
|
|
|
105
105
|
- .gitignore
|
|
106
106
|
- .rspec
|
|
107
107
|
- .travis.yml
|
|
108
|
+
- .yardopts
|
|
109
|
+
- CHANGELOG.md
|
|
108
110
|
- Gemfile
|
|
109
111
|
- LICENSE.txt
|
|
110
112
|
- README.md
|
|
@@ -120,14 +122,18 @@ files:
|
|
|
120
122
|
- lib/phonetic/core_ext/string/double_metaphone.rb
|
|
121
123
|
- lib/phonetic/core_ext/string/metaphone.rb
|
|
122
124
|
- lib/phonetic/core_ext/string/nysiis.rb
|
|
125
|
+
- lib/phonetic/core_ext/string/refined_nysiis.rb
|
|
123
126
|
- lib/phonetic/core_ext/string/refined_soundex.rb
|
|
124
127
|
- lib/phonetic/core_ext/string/soundex.rb
|
|
125
128
|
- lib/phonetic/dm_soundex.rb
|
|
126
|
-
- lib/phonetic/
|
|
129
|
+
- lib/phonetic/dm_soundex/code.rb
|
|
130
|
+
- lib/phonetic/dm_soundex/map.rb
|
|
127
131
|
- lib/phonetic/double_metaphone.rb
|
|
132
|
+
- lib/phonetic/double_metaphone/code.rb
|
|
128
133
|
- lib/phonetic/metaphone.rb
|
|
129
134
|
- lib/phonetic/metaphone2.rb
|
|
130
135
|
- lib/phonetic/nysiis.rb
|
|
136
|
+
- lib/phonetic/refined_nysiis.rb
|
|
131
137
|
- lib/phonetic/refined_soundex.rb
|
|
132
138
|
- lib/phonetic/soundex.rb
|
|
133
139
|
- lib/phonetic/version.rb
|
|
@@ -141,6 +147,7 @@ files:
|
|
|
141
147
|
- spec/phonetic/core_ext/string/double_metaphone_spec.rb
|
|
142
148
|
- spec/phonetic/core_ext/string/metaphone_spec.rb
|
|
143
149
|
- spec/phonetic/core_ext/string/nysiis_spec.rb
|
|
150
|
+
- spec/phonetic/core_ext/string/refined_nysiis_spec.rb
|
|
144
151
|
- spec/phonetic/core_ext/string/refined_soundex_spec.rb
|
|
145
152
|
- spec/phonetic/core_ext/string/soundex_spec.rb
|
|
146
153
|
- spec/phonetic/dm_soundex_spec.rb
|
|
@@ -148,12 +155,16 @@ files:
|
|
|
148
155
|
- spec/phonetic/metaphone2_spec.rb
|
|
149
156
|
- spec/phonetic/metaphone_spec.rb
|
|
150
157
|
- spec/phonetic/nysiis_spec.rb
|
|
158
|
+
- spec/phonetic/refined_nysiis_spec.rb
|
|
151
159
|
- spec/phonetic/refined_soundex_spec.rb
|
|
152
160
|
- spec/phonetic/soundex_spec.rb
|
|
153
161
|
- spec/spec_helper.rb
|
|
162
|
+
- spec/support/caverphone2_data.rb
|
|
163
|
+
- spec/support/caverphone_data.rb
|
|
154
164
|
- spec/support/dm_soundex_data.rb
|
|
155
165
|
- spec/support/double_metaphone_data.rb
|
|
156
166
|
- spec/support/nysiis_data.rb
|
|
167
|
+
- spec/support/refined_nysiis_data.rb
|
|
157
168
|
homepage: http://github.com/n7v/phonetic
|
|
158
169
|
licenses:
|
|
159
170
|
- MIT
|
|
@@ -166,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
166
177
|
requirements:
|
|
167
178
|
- - '>='
|
|
168
179
|
- !ruby/object:Gem::Version
|
|
169
|
-
version: '
|
|
180
|
+
version: '1.9'
|
|
170
181
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
171
182
|
requirements:
|
|
172
183
|
- - '>='
|
|
@@ -188,6 +199,7 @@ test_files:
|
|
|
188
199
|
- spec/phonetic/core_ext/string/double_metaphone_spec.rb
|
|
189
200
|
- spec/phonetic/core_ext/string/metaphone_spec.rb
|
|
190
201
|
- spec/phonetic/core_ext/string/nysiis_spec.rb
|
|
202
|
+
- spec/phonetic/core_ext/string/refined_nysiis_spec.rb
|
|
191
203
|
- spec/phonetic/core_ext/string/refined_soundex_spec.rb
|
|
192
204
|
- spec/phonetic/core_ext/string/soundex_spec.rb
|
|
193
205
|
- spec/phonetic/dm_soundex_spec.rb
|
|
@@ -195,10 +207,14 @@ test_files:
|
|
|
195
207
|
- spec/phonetic/metaphone2_spec.rb
|
|
196
208
|
- spec/phonetic/metaphone_spec.rb
|
|
197
209
|
- spec/phonetic/nysiis_spec.rb
|
|
210
|
+
- spec/phonetic/refined_nysiis_spec.rb
|
|
198
211
|
- spec/phonetic/refined_soundex_spec.rb
|
|
199
212
|
- spec/phonetic/soundex_spec.rb
|
|
200
213
|
- spec/spec_helper.rb
|
|
214
|
+
- spec/support/caverphone2_data.rb
|
|
215
|
+
- spec/support/caverphone_data.rb
|
|
201
216
|
- spec/support/dm_soundex_data.rb
|
|
202
217
|
- spec/support/double_metaphone_data.rb
|
|
203
218
|
- spec/support/nysiis_data.rb
|
|
219
|
+
- spec/support/refined_nysiis_data.rb
|
|
204
220
|
has_rdoc:
|