stride-align 0.6.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.
Files changed (190) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/NOTICE +255 -0
  4. data/README.md +107 -0
  5. data/data/bmpm_data/gen_approx_any.txt +131 -0
  6. data/data/bmpm_data/gen_approx_arabic.txt +26 -0
  7. data/data/bmpm_data/gen_approx_common.txt +233 -0
  8. data/data/bmpm_data/gen_approx_cyrillic.txt +18 -0
  9. data/data/bmpm_data/gen_approx_czech.txt +18 -0
  10. data/data/bmpm_data/gen_approx_dutch.txt +18 -0
  11. data/data/bmpm_data/gen_approx_english.txt +47 -0
  12. data/data/bmpm_data/gen_approx_french.txt +25 -0
  13. data/data/bmpm_data/gen_approx_german.txt +73 -0
  14. data/data/bmpm_data/gen_approx_greek.txt +18 -0
  15. data/data/bmpm_data/gen_approx_greeklatin.txt +20 -0
  16. data/data/bmpm_data/gen_approx_hebrew.txt +18 -0
  17. data/data/bmpm_data/gen_approx_hungarian.txt +18 -0
  18. data/data/bmpm_data/gen_approx_italian.txt +18 -0
  19. data/data/bmpm_data/gen_approx_polish.txt +84 -0
  20. data/data/bmpm_data/gen_approx_portuguese.txt +18 -0
  21. data/data/bmpm_data/gen_approx_romanian.txt +18 -0
  22. data/data/bmpm_data/gen_approx_russian.txt +48 -0
  23. data/data/bmpm_data/gen_approx_spanish.txt +21 -0
  24. data/data/bmpm_data/gen_approx_turkish.txt +18 -0
  25. data/data/bmpm_data/gen_exact_any.txt +40 -0
  26. data/data/bmpm_data/gen_exact_approx_common.txt +79 -0
  27. data/data/bmpm_data/gen_exact_arabic.txt +18 -0
  28. data/data/bmpm_data/gen_exact_common.txt +32 -0
  29. data/data/bmpm_data/gen_exact_cyrillic.txt +18 -0
  30. data/data/bmpm_data/gen_exact_czech.txt +18 -0
  31. data/data/bmpm_data/gen_exact_dutch.txt +18 -0
  32. data/data/bmpm_data/gen_exact_english.txt +18 -0
  33. data/data/bmpm_data/gen_exact_french.txt +18 -0
  34. data/data/bmpm_data/gen_exact_german.txt +18 -0
  35. data/data/bmpm_data/gen_exact_greek.txt +18 -0
  36. data/data/bmpm_data/gen_exact_greeklatin.txt +18 -0
  37. data/data/bmpm_data/gen_exact_hebrew.txt +18 -0
  38. data/data/bmpm_data/gen_exact_hungarian.txt +18 -0
  39. data/data/bmpm_data/gen_exact_italian.txt +18 -0
  40. data/data/bmpm_data/gen_exact_polish.txt +23 -0
  41. data/data/bmpm_data/gen_exact_portuguese.txt +18 -0
  42. data/data/bmpm_data/gen_exact_romanian.txt +18 -0
  43. data/data/bmpm_data/gen_exact_russian.txt +19 -0
  44. data/data/bmpm_data/gen_exact_spanish.txt +19 -0
  45. data/data/bmpm_data/gen_exact_turkish.txt +18 -0
  46. data/data/bmpm_data/gen_hebrew_common.txt +113 -0
  47. data/data/bmpm_data/gen_lang.txt +295 -0
  48. data/data/bmpm_data/gen_languages.txt +36 -0
  49. data/data/bmpm_data/gen_rules_any.txt +367 -0
  50. data/data/bmpm_data/gen_rules_arabic.txt +76 -0
  51. data/data/bmpm_data/gen_rules_cyrillic.txt +99 -0
  52. data/data/bmpm_data/gen_rules_czech.txt +67 -0
  53. data/data/bmpm_data/gen_rules_dutch.txt +78 -0
  54. data/data/bmpm_data/gen_rules_english.txt +113 -0
  55. data/data/bmpm_data/gen_rules_french.txt +114 -0
  56. data/data/bmpm_data/gen_rules_german.txt +129 -0
  57. data/data/bmpm_data/gen_rules_greek.txt +97 -0
  58. data/data/bmpm_data/gen_rules_greeklatin.txt +118 -0
  59. data/data/bmpm_data/gen_rules_hebrew.txt +62 -0
  60. data/data/bmpm_data/gen_rules_hungarian.txt +83 -0
  61. data/data/bmpm_data/gen_rules_italian.txt +77 -0
  62. data/data/bmpm_data/gen_rules_polish.txt +185 -0
  63. data/data/bmpm_data/gen_rules_portuguese.txt +105 -0
  64. data/data/bmpm_data/gen_rules_romanian.txt +64 -0
  65. data/data/bmpm_data/gen_rules_russian.txt +142 -0
  66. data/data/bmpm_data/gen_rules_spanish.txt +85 -0
  67. data/data/bmpm_data/gen_rules_turkish.txt +50 -0
  68. data/data/keyboard_data/qwerty.npy +0 -0
  69. data/data/matrix_data/BLOSUM100 +31 -0
  70. data/data/matrix_data/BLOSUM30 +31 -0
  71. data/data/matrix_data/BLOSUM35 +31 -0
  72. data/data/matrix_data/BLOSUM40 +31 -0
  73. data/data/matrix_data/BLOSUM45 +25 -0
  74. data/data/matrix_data/BLOSUM50 +25 -0
  75. data/data/matrix_data/BLOSUM55 +31 -0
  76. data/data/matrix_data/BLOSUM60 +31 -0
  77. data/data/matrix_data/BLOSUM62 +25 -0
  78. data/data/matrix_data/BLOSUM65 +31 -0
  79. data/data/matrix_data/BLOSUM70 +31 -0
  80. data/data/matrix_data/BLOSUM75 +31 -0
  81. data/data/matrix_data/BLOSUM80 +25 -0
  82. data/data/matrix_data/BLOSUM85 +31 -0
  83. data/data/matrix_data/BLOSUM90 +25 -0
  84. data/data/matrix_data/NUC.4.4 +25 -0
  85. data/data/matrix_data/PAM10 +34 -0
  86. data/data/matrix_data/PAM100 +34 -0
  87. data/data/matrix_data/PAM110 +34 -0
  88. data/data/matrix_data/PAM120 +34 -0
  89. data/data/matrix_data/PAM130 +34 -0
  90. data/data/matrix_data/PAM140 +34 -0
  91. data/data/matrix_data/PAM150 +34 -0
  92. data/data/matrix_data/PAM160 +34 -0
  93. data/data/matrix_data/PAM170 +34 -0
  94. data/data/matrix_data/PAM180 +34 -0
  95. data/data/matrix_data/PAM190 +34 -0
  96. data/data/matrix_data/PAM20 +34 -0
  97. data/data/matrix_data/PAM200 +34 -0
  98. data/data/matrix_data/PAM210 +34 -0
  99. data/data/matrix_data/PAM220 +34 -0
  100. data/data/matrix_data/PAM230 +34 -0
  101. data/data/matrix_data/PAM240 +34 -0
  102. data/data/matrix_data/PAM250 +25 -0
  103. data/data/matrix_data/PAM260 +34 -0
  104. data/data/matrix_data/PAM270 +34 -0
  105. data/data/matrix_data/PAM280 +34 -0
  106. data/data/matrix_data/PAM290 +34 -0
  107. data/data/matrix_data/PAM30 +25 -0
  108. data/data/matrix_data/PAM300 +34 -0
  109. data/data/matrix_data/PAM310 +34 -0
  110. data/data/matrix_data/PAM320 +34 -0
  111. data/data/matrix_data/PAM330 +34 -0
  112. data/data/matrix_data/PAM340 +34 -0
  113. data/data/matrix_data/PAM350 +34 -0
  114. data/data/matrix_data/PAM360 +34 -0
  115. data/data/matrix_data/PAM370 +34 -0
  116. data/data/matrix_data/PAM380 +34 -0
  117. data/data/matrix_data/PAM390 +34 -0
  118. data/data/matrix_data/PAM40 +34 -0
  119. data/data/matrix_data/PAM400 +34 -0
  120. data/data/matrix_data/PAM410 +34 -0
  121. data/data/matrix_data/PAM420 +34 -0
  122. data/data/matrix_data/PAM430 +34 -0
  123. data/data/matrix_data/PAM440 +34 -0
  124. data/data/matrix_data/PAM450 +34 -0
  125. data/data/matrix_data/PAM460 +34 -0
  126. data/data/matrix_data/PAM470 +34 -0
  127. data/data/matrix_data/PAM480 +34 -0
  128. data/data/matrix_data/PAM490 +34 -0
  129. data/data/matrix_data/PAM50 +34 -0
  130. data/data/matrix_data/PAM500 +34 -0
  131. data/data/matrix_data/PAM60 +34 -0
  132. data/data/matrix_data/PAM70 +25 -0
  133. data/data/matrix_data/PAM80 +34 -0
  134. data/data/matrix_data/PAM90 +34 -0
  135. data/ext/stride_align/backend_avx2.cpp +2 -0
  136. data/ext/stride_align/backend_avx512bwvl.cpp +2 -0
  137. data/ext/stride_align/backend_generic.cpp +3 -0
  138. data/ext/stride_align/backend_impl.hpp +983 -0
  139. data/ext/stride_align/backend_lasx.cpp +2 -0
  140. data/ext/stride_align/backend_lsx.cpp +2 -0
  141. data/ext/stride_align/backend_neon.cpp +2 -0
  142. data/ext/stride_align/backend_rvv.cpp +2 -0
  143. data/ext/stride_align/backend_sse41.cpp +2 -0
  144. data/ext/stride_align/backend_sve.cpp +2 -0
  145. data/ext/stride_align/backend_sve2.cpp +2 -0
  146. data/ext/stride_align/backend_vsx.cpp +2 -0
  147. data/ext/stride_align/beider_morse_impl.cpp +5 -0
  148. data/ext/stride_align/cpu_detect.cpp +172 -0
  149. data/ext/stride_align/cpu_detect.hpp +6 -0
  150. data/ext/stride_align/extconf.rb +114 -0
  151. data/ext/stride_align/target_profile.hpp +82 -0
  152. data/ext/stride_align/vendor/beider_morse_impl.cpp +1467 -0
  153. data/ext/stride_align/vendor/stride_align/alignment.hpp +199 -0
  154. data/ext/stride_align/vendor/stride_align/batch.hpp +812 -0
  155. data/ext/stride_align/vendor/stride_align/beider_morse.hpp +121 -0
  156. data/ext/stride_align/vendor/stride_align/caverphone.hpp +222 -0
  157. data/ext/stride_align/vendor/stride_align/cologne_phonetic.hpp +202 -0
  158. data/ext/stride_align/vendor/stride_align/core.hpp +731 -0
  159. data/ext/stride_align/vendor/stride_align/daitch_mokotoff.hpp +631 -0
  160. data/ext/stride_align/vendor/stride_align/double_metaphone.hpp +796 -0
  161. data/ext/stride_align/vendor/stride_align/dtw.hpp +300 -0
  162. data/ext/stride_align/vendor/stride_align/encoded.hpp +235 -0
  163. data/ext/stride_align/vendor/stride_align/hamming.hpp +55 -0
  164. data/ext/stride_align/vendor/stride_align/indel.hpp +1200 -0
  165. data/ext/stride_align/vendor/stride_align/jaro.hpp +517 -0
  166. data/ext/stride_align/vendor/stride_align/lcs.hpp +159 -0
  167. data/ext/stride_align/vendor/stride_align/levenshtein.hpp +1247 -0
  168. data/ext/stride_align/vendor/stride_align/levenshtein_prepared.hpp +193 -0
  169. data/ext/stride_align/vendor/stride_align/match_rating.hpp +168 -0
  170. data/ext/stride_align/vendor/stride_align/metaphone.hpp +291 -0
  171. data/ext/stride_align/vendor/stride_align/ngram.hpp +176 -0
  172. data/ext/stride_align/vendor/stride_align/nysiis.hpp +199 -0
  173. data/ext/stride_align/vendor/stride_align/pairwise_alignment.hpp +465 -0
  174. data/ext/stride_align/vendor/stride_align/partial_ratio.hpp +486 -0
  175. data/ext/stride_align/vendor/stride_align/ratcliff_obershelp.hpp +101 -0
  176. data/ext/stride_align/vendor/stride_align/soundex.hpp +108 -0
  177. data/ext/stride_align/vendor/stride_align/token_ratios.hpp +445 -0
  178. data/ext/stride_align/vendor/stride_align/types.hpp +16 -0
  179. data/ext/stride_align/vendor/stride_align/utf8.hpp +512 -0
  180. data/ext/stride_align/vendor/stride_align/wratio.hpp +363 -0
  181. data/lib/stride_align/algorithms.rb +296 -0
  182. data/lib/stride_align/alignment_path.rb +217 -0
  183. data/lib/stride_align/backend.rb +47 -0
  184. data/lib/stride_align/batch.rb +705 -0
  185. data/lib/stride_align/core.rb +180 -0
  186. data/lib/stride_align/keyboard.rb +200 -0
  187. data/lib/stride_align/matrices.rb +403 -0
  188. data/lib/stride_align/version.rb +5 -0
  189. data/lib/stride_align.rb +87 -0
  190. metadata +231 -0
@@ -0,0 +1,78 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ // CONSONANTS
19
+ "ssj" "" "" "S"
20
+ "sj" "" "" "S"
21
+ "ch" "" "" "x"
22
+ "c" "" "[eiy]" "ts"
23
+ "ck" "" "" "k" // German
24
+ "pf" "" "" "(pf|p|f)" // German
25
+ "ph" "" "" "(ph|f)"
26
+ "qu" "" "" "kv"
27
+ "th" "^" "" "t" // German
28
+ "th" "" "[äöüaeiou]" "(t|th)" // German
29
+ "th" "" "" "t" // German
30
+ "ss" "" "" "s"
31
+ "h" "[aeiouy]" "" ""
32
+
33
+ // VOWELS
34
+ "aue" "" "" "aue"
35
+ "ou" "" "" "au"
36
+ "ie" "" "" "(Q|i)"
37
+ "uu" "" "" "(Q|u)"
38
+ "ee" "" "" "e"
39
+ "eu" "" "" "(Y|Yj)" // Dutch Y
40
+ "aa" "" "" "a"
41
+ "oo" "" "" "o"
42
+ "oe" "" "" "u"
43
+ "ij" "" "" "ej"
44
+ "ui" "" "" "(Y|uj)"
45
+ "ei" "" "" "(ej|aj)" // Dutch ej
46
+
47
+ "i" "" "[aou]" "j"
48
+ "y" "" "[aeou]" "j"
49
+ "i" "[aou]" "" "j"
50
+ "y" "[aeou]" "" "j"
51
+
52
+ // LATIN ALPHABET
53
+ "a" "" "" "a"
54
+ "b" "" "" "b"
55
+ "c" "" "" "k"
56
+ "d" "" "" "d"
57
+ "e" "" "" "e"
58
+ "f" "" "" "f"
59
+ "g" "" "" "(g|x)"
60
+ "h" "" "" "h"
61
+ "i" "" "" "(i|Q)"
62
+ "j" "" "" "j"
63
+ "k" "" "" "k"
64
+ "l" "" "" "l"
65
+ "m" "" "" "m"
66
+ "n" "" "" "n"
67
+ "o" "" "" "o"
68
+ "p" "" "" "p"
69
+ "q" "" "" "k"
70
+ "r" "" "" "r"
71
+ "s" "" "" "s"
72
+ "t" "" "" "t"
73
+ "u" "" "" "(u|Q)"
74
+ "v" "" "" "v"
75
+ "w" "" "" "(w|v)"
76
+ "x" "" "" "ks"
77
+ "y" "" "" "i"
78
+ "z" "" "" "z"
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ // GENERAL
19
+
20
+ // CONSONANTS
21
+ "�" "" "" "" // O�Neill
22
+ "'" "" "" "" // O�Neill
23
+ "mc" "^" "" "mak" // McDonald
24
+ "tz" "" "" "ts" // Fitzgerald
25
+ "tch" "" "" "tS"
26
+ "ch" "" "" "(tS|x)"
27
+ "ck" "" "" "k"
28
+ "cc" "" "[iey]" "ks" // success, accent
29
+ "c" "" "c" ""
30
+ "c" "" "[iey]" "s" // circle
31
+
32
+ "gh" "^" "" "g" // ghost
33
+ "gh" "" "" "(g|f|w)" // burgh | tough | bough
34
+ "gn" "" "" "(gn|n)"
35
+ "g" "" "[iey]" "(g|dZ)" // get, gem, giant, gigabyte
36
+ // "th" "" "" "(6|8|t)"
37
+ "th" "" "" "t"
38
+ "kh" "" "" "x"
39
+ "ph" "" "" "f"
40
+ "sch" "" "" "(S|sk)"
41
+ "sh" "" "" "S"
42
+ "who" "^" "" "hu"
43
+ "wh" "^" "" "w"
44
+
45
+ "h" "" "$" "" // hard to find an example that isn't in a name
46
+ "h" "" "[^aeiou]" "" // hard to find an example that isn't in a name
47
+ "h" "^" "" "H"
48
+
49
+ "kn" "^" "" "n" // knight
50
+ "mb" "" "$" "m"
51
+ "ng" "" "$" "(N|ng)"
52
+ "pn" "^" "" "(pn|n)"
53
+ "ps" "^" "" "(ps|s)"
54
+ "qu" "" "" "kw"
55
+ "tia" "" "" "(So|Sa)"
56
+ "tio" "" "" "So"
57
+ "wr" "^" "" "r"
58
+ "x" "^" "" "z"
59
+
60
+ // VOWELS
61
+ "y" "^" "" "j"
62
+ "y" "^" "[aeiouy]" "j"
63
+ "yi" "^" "" "i"
64
+ "aue" "" "" "aue"
65
+ "oue" "" "" "(aue|oue)"
66
+ "ai" "" "" "(aj|ej|e)" // rain | said
67
+ "ay" "" "" "(aj|ej)"
68
+ "a" "" "[^aeiou]e" "ej" // plane
69
+ "ei" "" "" "(ej|aj|i)" // weigh | receive
70
+ "ey" "" "" "(ej|aj|i)" // hey | barley
71
+ "ear" "" "" "ia" // tear
72
+ "ea" "" "" "(i|e)" // reason | treasure
73
+ "ee" "" "" "i" // between
74
+ "e" "" "[^aeiou]e" "i" // meter
75
+ "e" "" "$" "(|E)" // blame, badge
76
+ "ie" "" "" "i" // believe
77
+ "i" "" "[^aeiou]e" "aj" // five
78
+ "oa" "" "" "ou" // toad
79
+ "oi" "" "" "oj" // join
80
+ "oo" "" "" "u" // food
81
+ "ou" "" "" "(u|ou)" // through | tough | could
82
+ "oy" "" "" "oj" // boy
83
+ "o" "" "[^aeiou]e" "ou" // rode
84
+ "u" "" "[^aeiou]e" "(ju|u)" // cute | flute
85
+ "u" "" "r" "(e|u)" // turn -- Morse disagrees, feels it should go to E
86
+
87
+ // LATIN ALPHABET
88
+ "a" "" "" "(e|o|a)" // hat | call | part
89
+ "b" "" "" "b"
90
+ "c" "" "" "k" // candy
91
+ "d" "" "" "d"
92
+ "e" "" "" "E" // bed
93
+ "f" "" "" "f"
94
+ "g" "" "" "g"
95
+ "h" "" "" "h"
96
+ "i" "" "" "I"
97
+ "j" "" "" "dZ"
98
+ "k" "" "" "k"
99
+ "l" "" "" "l"
100
+ "m" "" "" "m"
101
+ "n" "" "" "n"
102
+ "o" "" "" "(o|a)" // hot
103
+ "p" "" "" "p"
104
+ "q" "" "" "k"
105
+ "r" "" "" "r"
106
+ "s" "" "" "s"
107
+ "t" "" "" "t"
108
+ "u" "" "" "(u|a)" // put
109
+ "v" "" "" "v"
110
+ "w" "" "" "(w|v)" // the variant "v" is for spellings coming from German/Polish
111
+ "x" "" "" "ks"
112
+ "y" "" "" "i"
113
+ "z" "" "" "z"
@@ -0,0 +1,114 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ // GENERAL
19
+
20
+ // CONSONANTS
21
+ "lt" "u" "$" "(lt|)" // Renault
22
+ "c" "n" "$" "(k|)" // Tronc
23
+ //"f" "" "" "(f|)" // Clef
24
+ "d" "" "$" "(t|)" // Durand
25
+ "g" "n" "$" "(k|)" // Gang
26
+ "p" "" "$" "(p|)" // Trop, Champ
27
+ "r" "e" "$" "(r|)" // Barbier
28
+ "t" "" "$" "(t|)" // Murat, Constant
29
+ "z" "" "$" "(s|)"
30
+
31
+ "ds" "" "$" "(ds|)"
32
+ "ps" "" "$" "(ps|)" // Champs
33
+ "rs" "e" "$" "(rs|)"
34
+ "ts" "" "$" "(ts|)"
35
+ "s" "" "$" "(s|)" // Denis
36
+
37
+ "x" "u" "$" "(ks|)" // Arnoux
38
+
39
+ "s" "[aeéèêiou]" "[^aeéèêiou]" "(s|)" // Deschamps, Malesherbes, Groslot
40
+ "t" "[aeéèêiou]" "[^aeéèêiou]" "(t|)" // Petitjean
41
+
42
+ "kh" "" "" "x" // foreign
43
+ "ph" "" "" "f"
44
+
45
+ "ç" "" "" "s"
46
+ "x" "" "" "ks"
47
+ "ch" "" "" "S"
48
+ "c" "" "[eiyéèê]" "s"
49
+
50
+ "gn" "" "" "(n|gn)"
51
+ "g" "" "[eiy]" "Z"
52
+ "gue" "" "$" "k"
53
+ "gu" "" "[eiy]" "g"
54
+ "aill" "" "e" "aj" // non Jewish
55
+ "ll" "" "e" "(l|j)" // non Jewish
56
+ "que" "" "$" "k"
57
+ "qu" "" "" "k"
58
+ "s" "[aeiouyéèê]" "[aeiouyéèê]" "z"
59
+ "h" "[bdgt]" "" "" // translit from Arabic
60
+
61
+ "m" "[aeiouy]" "[aeiouy]" "m"
62
+ "m" "[aeiouy]" "" "(m|n)" // nasal
63
+
64
+ "ou" "" "[aeio]" "v"
65
+ "u" "" "[aeio]" "v"
66
+
67
+ // VOWELS
68
+ "aue" "" "" "aue"
69
+ "eau" "" "" "o"
70
+ "au" "" "" "(o|au)" // non Jewish
71
+ "ai" "" "" "(e|aj)" // [e] is non Jewish
72
+ "ay" "" "" "(e|aj)" // [e] is non Jewish
73
+ "é" "" "" "e"
74
+ "ê" "" "" "e"
75
+ "è" "" "" "e"
76
+ "à" "" "" "a"
77
+ "â" "" "" "a"
78
+ "où" "" "" "u"
79
+ "ou" "" "" "u"
80
+ "oi" "" "" "(oj|va)" // [va] (actually "ua") is non Jewish
81
+ "ei" "" "" "(aj|ej|e)" // [e] is non Jewish
82
+ "ey" "" "" "(aj|ej|e)" // [e] non Jewish
83
+ "eu" "" "" "(ej|Y)" // non Jewish
84
+ "y" "[ou]" "" "j"
85
+ "e" "" "$" "(e|)"
86
+ "i" "" "[aou]" "j"
87
+ "y" "" "[aoeu]" "j"
88
+
89
+ // LATIN ALPHABET
90
+ "a" "" "" "a"
91
+ "b" "" "" "b"
92
+ "c" "" "" "k"
93
+ "d" "" "" "d"
94
+ "e" "" "" "e"
95
+ "f" "" "" "f"
96
+ "g" "" "" "g"
97
+ "h" "" "" "h"
98
+ "i" "" "" "i"
99
+ "j" "" "" "Z"
100
+ "k" "" "" "k"
101
+ "l" "" "" "l"
102
+ "m" "" "" "m"
103
+ "n" "" "" "n"
104
+ "o" "" "" "o"
105
+ "p" "" "" "p"
106
+ "q" "" "" "k"
107
+ "r" "" "" "r"
108
+ "s" "" "" "s"
109
+ "t" "" "" "t"
110
+ "u" "" "" "(u|Q)"
111
+ "v" "" "" "v"
112
+ "w" "" "" "v"
113
+ "y" "" "" "i"
114
+ "z" "" "" "z"
@@ -0,0 +1,129 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ // GENERIC
19
+
20
+ // CONSONANTS
21
+ "ewitsch" "" "$" "evitS"
22
+ "owitsch" "" "$" "ovitS"
23
+ "evitsch" "" "$" "evitS"
24
+ "ovitsch" "" "$" "ovitS"
25
+ "witsch" "" "$" "vitS"
26
+ "vitsch" "" "$" "vitS"
27
+ "ssch" "" "" "S"
28
+ "chsch" "" "" "xS"
29
+ "sch" "" "" "S"
30
+
31
+ "ziu" "" "" "tsu"
32
+ "zia" "" "" "tsa"
33
+ "zio" "" "" "tso"
34
+
35
+ "chs" "" "" "ks"
36
+ "ch" "" "" "x"
37
+ "ck" "" "" "k"
38
+ "c" "" "[eiy]" "ts"
39
+
40
+ "sp" "^" "" "Sp"
41
+ "st" "^" "" "St"
42
+ "ssp" "" "" "(Sp|sp)"
43
+ "sp" "" "" "(Sp|sp)"
44
+ "sst" "" "" "(St|st)"
45
+ "st" "" "" "(St|st)"
46
+ "pf" "" "" "(pf|p|f)"
47
+ "ph" "" "" "(ph|f)"
48
+ "qu" "" "" "kv"
49
+
50
+ "ewitz" "" "$" "(evits|evitS)"
51
+ "ewiz" "" "$" "(evits|evitS)"
52
+ "evitz" "" "$" "(evits|evitS)"
53
+ "eviz" "" "$" "(evits|evitS)"
54
+ "owitz" "" "$" "(ovits|ovitS)"
55
+ "owiz" "" "$" "(ovits|ovitS)"
56
+ "ovitz" "" "$" "(ovits|ovitS)"
57
+ "oviz" "" "$" "(ovits|ovitS)"
58
+ "witz" "" "$" "(vits|vitS)"
59
+ "wiz" "" "$" "(vits|vitS)"
60
+ "vitz" "" "$" "(vits|vitS)"
61
+ "viz" "" "$" "(vits|vitS)"
62
+ "tz" "" "" "ts"
63
+
64
+ "thal" "" "$" "tal"
65
+ "th" "^" "" "t"
66
+ "th" "" "[äöüaeiou]" "(t|th)"
67
+ "th" "" "" "t"
68
+ "rh" "^" "" "r"
69
+ "h" "[aeiouyäöü]" "" ""
70
+ "h" "^" "" "H"
71
+
72
+ "ss" "" "" "s"
73
+ "s" "" "[äöüaeiouy]" "(z|s)"
74
+ "s" "[aeiouyäöüj]" "[aeiouyäöü]" "z"
75
+ "ß" "" "" "s"
76
+
77
+
78
+ // VOWELS
79
+ "ij" "" "$" "i"
80
+ "aue" "" "" "aue"
81
+ "ue" "" "" "Q"
82
+ "ae" "" "" "Y"
83
+ "oe" "" "" "Y"
84
+ "ü" "" "" "Q"
85
+ "ä" "" "" "(Y|e)"
86
+ "ö" "" "" "Y"
87
+ "ei" "" "" "(aj|ej)"
88
+ "ey" "" "" "(aj|ej)"
89
+ "eu" "" "" "(Yj|ej|aj|oj)"
90
+ "i" "[aou]" "" "j"
91
+ "y" "[aou]" "" "j"
92
+ "ie" "" "" "I"
93
+ "i" "" "[aou]" "j"
94
+ "y" "" "[aoeu]" "j"
95
+
96
+ // FOREIGN LETTERs
97
+ "ñ" "" "" "n"
98
+ "ã" "" "" "a"
99
+ "ő" "" "" "o"
100
+ "ű" "" "" "u"
101
+ "ç" "" "" "s"
102
+
103
+ // LATIN ALPHABET
104
+ "a" "" "" "A"
105
+ "b" "" "" "b"
106
+ "c" "" "" "k"
107
+ "d" "" "" "d"
108
+ "e" "" "" "E"
109
+ "f" "" "" "f"
110
+ "g" "" "" "g"
111
+ "h" "" "" "h"
112
+ "i" "" "" "I"
113
+ "j" "" "" "j"
114
+ "k" "" "" "k"
115
+ "l" "" "" "l"
116
+ "m" "" "" "m"
117
+ "n" "" "" "n"
118
+ "o" "" "" "O"
119
+ "p" "" "" "p"
120
+ "q" "" "" "k"
121
+ "r" "" "" "r"
122
+ "s" "" "" "s"
123
+ "t" "" "" "t"
124
+ "u" "" "" "U"
125
+ "v" "" "" "(f|v)"
126
+ "w" "" "" "v"
127
+ "x" "" "" "ks"
128
+ "y" "" "" "i"
129
+ "z" "" "" "ts"
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ "αυ" "" "$" "af" // "av" before vowels and voiced consonants, "af" elsewhere
19
+ "αυ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "af"
20
+ "αυ" "" "" "av"
21
+ "ευ" "" "$" "ef" // "ev" before vowels and voiced consonants, "ef" elsewhere
22
+ "ευ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "ef"
23
+ "ευ" "" "" "ev"
24
+ "ηυ" "" "$" "if" // "iv" before vowels and voiced consonants, "if" elsewhere
25
+ "ηυ" "" "(κ|π|σ|τ|φ|θ|χ|ψ)" "if"
26
+ "ηυ" "" "" "iv"
27
+ "ου" "" "" "u" // [u:]
28
+
29
+ "αι" "" "" "aj" // modern [e]
30
+ "ει" "" "" "ej" // modern [i]
31
+ "οι" "" "" "oj" // modern [i]
32
+ "ωι" "" "" "oj"
33
+ "ηι" "" "" "ej"
34
+ "υι" "" "" "i" // modern Greek "i"
35
+
36
+ "γγ" "(ε|ι|η|α|ο|ω|υ)" "(ε|ι|η)" "(nj|j)"
37
+ "γγ" "" "(ε|ι|η)" "j"
38
+ "γγ" "(ε|ι|η|α|ο|ω|υ)" "" "(ng|g)"
39
+ "γγ" "" "" "g"
40
+ "γκ" "^" "" "g"
41
+ "γκ" "(ε|ι|η|α|ο|ω|υ)" "(ε|ι|η)" "(nj|j)"
42
+ "γκ" "" "(ε|ι|η)" "j"
43
+ "γκ" "(ε|ι|η|α|ο|ω|υ)" "" "(ng|g)"
44
+ "γκ" "" "" "g"
45
+ "γι" "" "(α|ο|ω|υ)" "j"
46
+ "γι" "" "" "(gi|i)"
47
+ "γε" "" "(α|ο|ω|υ)" "j"
48
+ "γε" "" "" "(ge|je)"
49
+
50
+ "κζ" "" "" "gz"
51
+ "τζ" "" "" "dz"
52
+ "σ" "" "(β|γ|δ|μ|ν|ρ)" "z"
53
+
54
+ "μβ" "" "" "(mb|b)"
55
+ "μπ" "^" "" "b"
56
+ "μπ" "(ε|ι|η|α|ο|ω|υ)" "" "mb"
57
+ "μπ" "" "" "b" // after any consonant
58
+ "ντ" "^" "" "d"
59
+ "ντ" "(ε|ι|η|α|ο|ω|υ)" "" "(nd|nt)" // Greek is "nd"
60
+ "ντ" "" "" "(nt|d)" // Greek is "d" after any consonant
61
+
62
+ "ά" "" "" "a"
63
+ "έ" "" "" "e"
64
+ "ή" "" "" "(i|e)"
65
+ "ί" "" "" "i"
66
+ "ό" "" "" "o"
67
+ "ύ" "" "" "(Q|i|u)"
68
+ "ώ" "" "" "o"
69
+ "ΰ" "" "" "(Q|i|u)"
70
+ "ϋ" "" "" "(Q|i|u)"
71
+ "ϊ" "" "" "j"
72
+
73
+ "α" "" "" "a"
74
+ "β" "" "" "(v|b)" // modern "v", old "b"
75
+ "γ" "" "" "g"
76
+ "δ" "" "" "d" // modern like "th" in English "them", old "d"
77
+ "ε" "" "" "e"
78
+ "ζ" "" "" "z"
79
+ "η" "" "" "(i|e)" // modern "i", old "e:"
80
+ "ι" "" "" "i"
81
+ "κ" "" "" "k"
82
+ "λ" "" "" "l"
83
+ "μ" "" "" "m"
84
+ "ν" "" "" "n"
85
+ "ξ" "" "" "ks"
86
+ "ο" "" "" "o"
87
+ "π" "" "" "p"
88
+ "ρ" "" "" "r"
89
+ "σ" "" "" "s"
90
+ "ς" "" "" "s"
91
+ "τ" "" "" "t"
92
+ "υ" "" "" "(Q|i|u)" // modern "i", old like German "ü"
93
+ "φ" "" "" "f"
94
+ "θ" "" "" "t" // old greek like "th" in English "theme"
95
+ "χ" "" "" "x"
96
+ "ψ" "" "" "ps"
97
+ "ω" "" "" "o"
@@ -0,0 +1,118 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one or more
3
+ * contributor license agreements. See the NOTICE file distributed with
4
+ * this work for additional information regarding copyright ownership.
5
+ * The ASF licenses this file to You under the Apache License, Version 2.0
6
+ * (the "License"); you may not use this file except in compliance with
7
+ * the License. You may obtain a copy of the License at
8
+ *
9
+ * https://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ "au" "" "$" "af"
19
+ "au" "" "[kpstfh]" "af"
20
+ "au" "" "" "av"
21
+ "eu" "" "$" "ef"
22
+ "eu" "" "[kpstfh]" "ef"
23
+ "eu" "" "" "ev"
24
+ "ou" "" "" "u"
25
+
26
+ "gge" "[aeiouy]" "" "(nje|je)" // aggelopoulos
27
+ "ggi" "[aeiouy]" "[aou]" "(nj|j)"
28
+ "ggi" "[aeiouy]" "" "(ni|i)"
29
+ "gge" "" "" "je"
30
+ "ggi" "" "" "i"
31
+ "gg" "[aeiouy]" "" "(ng|g)"
32
+ "gg" "" "" "g"
33
+ "gk" "^" "" "g"
34
+ "gke" "[aeiouy]" "" "(nje|je)"
35
+ "gki" "[aeiouy]" "" "(ni|i)"
36
+ "gke" "" "" "je"
37
+ "gki" "" "" "i"
38
+ "gk" "[aeiouy]" "" "(ng|g)"
39
+ "gk" "" "" "g"
40
+ "nghi" "" "[aouy]" "Nj"
41
+ "nghi" "" "" "(Ngi|Ni)"
42
+ "nghe" "" "[aouy]" "Nj"
43
+ "nghe" "" "" "(Nje|Nge)"
44
+ "ghi" "" "[aouy]" "j"
45
+ "ghi" "" "" "(gi|i)"
46
+ "ghe" "" "[aouy]" "j"
47
+ "ghe" "" "" "(je|ge)"
48
+ "ngh" "" "" "Ng"
49
+ "gh" "" "" "g"
50
+ "ngi" "" "[aouy]" "Nj"
51
+ "ngi" "" "" "(Ngi|Ni)"
52
+ "nge" "" "[aouy]" "Nj"
53
+ "nge" "" "" "(Nje|Nge)"
54
+ "gi" "" "[aouy]" "j"
55
+ "gi" "" "" "(gi|i)" // what about Pantazis = Pantagis ???
56
+ "ge" "" "[aouy]" "j"
57
+ "ge" "" "" "(je|ge)"
58
+ "ng" "" "" "Ng" // fragakis = fraggakis = frangakis; angel = agel = aggel
59
+
60
+ "i" "" "[aeou]" "j"
61
+ "i" "[aeou]" "" "j"
62
+ "y" "" "[aeou]" "j"
63
+ "y" "[aeou]" "" "j"
64
+ "yi" "" "[aeou]" "j"
65
+ "yi" "" "" "i"
66
+
67
+ "ch" "" "" "x"
68
+ "kh" "" "" "x"
69
+ "dh" "" "" "d" // actually as "th" in English "that"
70
+ "dj" "" "" "dZ" // Turkish words
71
+ "ph" "" "" "f"
72
+ "th" "" "" "t"
73
+ "kz" "" "" "gz"
74
+ "tz" "" "" "dz"
75
+ "s" "" "[bgdmnr]" "z"
76
+
77
+ "mb" "" "" "(mb|b)" // Liberis = Limperis = Limberis
78
+ "mp" "^" "" "b"
79
+ "mp" "[aeiouy]" "" "mp"
80
+ "mp" "" "" "b"
81
+ "nt" "^" "" "d"
82
+ "nt" "[aeiouy]" "" "(nd|nt)" // Greek "nd"
83
+ "nt" "" "" "(nt|d)" // Greek "d" after any consonant
84
+
85
+ "á" "" "" "a"
86
+ "é" "" "" "e"
87
+ "í" "" "" "i"
88
+ "ó" "" "" "o"
89
+ "óu" "" "" "u"
90
+ "ú" "" "" "u"
91
+ "ý" "" "" "(i|Q|u)" // [ü]
92
+
93
+ "a" "" "" "a"
94
+ "b" "" "" "(b|v)" // beta: modern "v", old "b"
95
+ "c" "" "" "k"
96
+ "d" "" "" "d" // modern like "th" in English "them", old "d"
97
+ "e" "" "" "e"
98
+ "f" "" "" "f"
99
+ "g" "" "" "g"
100
+ "h" "" "" "x"
101
+ "i" "" "" "i"
102
+ "j" "" "" "(j|Z)" // Panajotti = Panaiotti; Louijos = Louizos; Pantajis = Pantazis = Pantagis
103
+ "k" "" "" "k"
104
+ "l" "" "" "l"
105
+ "m" "" "" "m"
106
+ "n" "" "" "n"
107
+ "ο" "" "" "o"
108
+ "p" "" "" "p"
109
+ "q" "" "" "k" // foreign
110
+ "r" "" "" "r"
111
+ "s" "" "" "s"
112
+ "t" "" "" "t"
113
+ "u" "" "" "u"
114
+ "v" "" "" "v"
115
+ "w" "" "" "v" // foreign
116
+ "x" "" "" "ks"
117
+ "y" "" "" "(i|Q|u)" // [ü]
118
+ "z" "" "" "z"