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,131 @@
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
+ // A, E, I, O, P, U should create variants, but a, e, i, o, u should not create any new variant
20
+ // Q = ü ; Y = ä = ö
21
+ // EE = final "e" (english or french)
22
+
23
+ // VOWELS
24
+ // "ALL" DIPHTHONGS are interchangeable BETWEEN THEM and with monophthongs of which they are composed ("D" means "diphthong")
25
+ // {a,o} are totally interchangeable if non-stressed; in German "a/o" can actually be from "ä/ö" (that are equivalent to "e")
26
+ // {i,e} are interchangeable if non-stressed, while in German "u" can actually be from "ü" (that is equivalent to "i")
27
+
28
+ "mb" "" "" "(mb|b[greeklatin])"
29
+ "mp" "" "" "(mp|b[greeklatin])"
30
+ "ng" "" "" "(ng|g[greeklatin])"
31
+
32
+ "B" "" "[fktSs]" "(p|f[spanish])"
33
+ "B" "" "p" ""
34
+ "B" "" "$" "(p|f[spanish])"
35
+ "V" "" "[pktSs]" "(f|p[spanish])"
36
+ "V" "" "f" ""
37
+ "V" "" "$" "(f|p[spanish])"
38
+ "B" "" "" "(b|v[spanish])"
39
+ "V" "" "" "(v|b[spanish])"
40
+
41
+ // French word-final and word-part-final letters
42
+ "t" "" "$" "(t|[french])"
43
+ "g" "n" "$" "(g|[french])"
44
+ "k" "n" "$" "(k|[french])"
45
+ "p" "" "$" "(p|[french])"
46
+ "r" "[Ee]" "$" "(r|[french])"
47
+ "s" "" "$" "(s|[french])"
48
+ "t" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(t|[french])" // Petitjean
49
+ "s" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(s|[french])" // Groslot, Grosleau
50
+ //array("p" "[aeiouAEIOU]" "[^aeiouAEIOU]" "(p|[french])"
51
+
52
+ "I" "[aeiouAEIBFOUQY]" "" "i"
53
+ "I" "" "[^aeiouAEBFIOU]e" "(Q[german]|i|D[english])" // "line"
54
+ "I" "" "$" "i"
55
+ "I" "" "[^k]$" "i"
56
+ "Ik" "[lr]" "$" "(ik|Qk[german])"
57
+ "Ik" "" "$" "ik"
58
+ "sIts" "" "$" "(sits|sQts[german])"
59
+ "Its" "" "$" "its"
60
+ "I" "" "" "(Q[german]|i)"
61
+
62
+ "lEE" "[bdfgkmnprsStvzZ]" "" "(li|il[english])" // Apple = Appel
63
+ "rEE" "[bdfgkmnprsStvzZ]" "" "(ri|ir[english])"
64
+ "lE" "[bdfgkmnprsStvzZ]" "" "(li|il[english]|lY[german])" // Applebaum < Appelbaum
65
+ "rE" "[bdfgkmnprsStvzZ]" "" "(ri|ir[english]|rY[german])"
66
+
67
+ "EE" "" "" "(i|)"
68
+ "ea" "" "" "(D|a|i)"
69
+
70
+ "au" "" "" "(D|a|u)"
71
+ "ou" "" "" "(D|o|u)"
72
+ "eu" "" "" "(D|e|u)"
73
+
74
+ "ai" "" "" "(D|a|i)"
75
+ "Ai" "" "" "(D|a|i)"
76
+ "oi" "" "" "(D|o|i)"
77
+ "Oi" "" "" "(D|o|i)"
78
+ "ui" "" "" "(D|u|i)"
79
+ "Ui" "" "" "(D|u|i)"
80
+ "ei" "" "" "(D|i)"
81
+ "Ei" "" "" "(D|i)"
82
+
83
+ "iA" "" "$" "(ia|io)"
84
+ "iA" "" "" "(ia|io|iY[german])"
85
+ "A" "" "[^aeiouAEBFIOU]e" "(a|o|Y[german]|D[english])" // "plane"
86
+
87
+
88
+ "E" "i[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Wineberg (vineberg/vajneberg) --> vajnberg
89
+ "E" "a[^aeiouAEIOU]" "" "(i|Y[german]|[english])" // Shaneberg (shaneberg/shejneberg) --> shejnberg
90
+
91
+ "E" "" "[fklmnprst]$" "i"
92
+ "E" "" "ts$" "i"
93
+ "E" "" "$" "i"
94
+ "E" "[DaoiuAOIUQY]" "" "i"
95
+ "E" "" "[aoAOQY]" "i"
96
+ "E" "" "" "(i|Y[german])"
97
+
98
+ "P" "" "" "(o|u)"
99
+
100
+ "O" "" "[fklmnprstv]$" "o"
101
+ "O" "" "ts$" "o"
102
+ "O" "" "$" "o"
103
+ "O" "[oeiuQY]" "" "o"
104
+ "O" "" "" "(o|Y[german])"
105
+ "O" "" "" "o"
106
+
107
+ "A" "" "[fklmnprst]$" "(a|o)"
108
+ "A" "" "ts$" "(a|o)"
109
+ "A" "" "$" "(a|o)"
110
+ "A" "[oeiuQY]" "" "(a|o)"
111
+ "A" "" "" "(a|o|Y[german])"
112
+ "A" "" "" "(a|o)"
113
+
114
+ "U" "" "$" "u"
115
+ "U" "[DoiuQY]" "" "u"
116
+ "U" "" "[^k]$" "u"
117
+ "Uk" "[lr]" "$" "(uk|Qk[german])"
118
+ "Uk" "" "$" "uk"
119
+ "sUts" "" "$" "(suts|sQts[german])"
120
+ "Uts" "" "$" "uts"
121
+ "U" "" "" "(u|Q[german])"
122
+ "U" "" "" "u"
123
+
124
+ "e" "" "[fklmnprstv]$" "i"
125
+ "e" "" "ts$" "i"
126
+ "e" "" "$" "i"
127
+ "e" "[DaoiuAOIUQY]" "" "i"
128
+ "e" "" "[aoAOQY]" "i"
129
+ "e" "" "" "(i|Y[german])"
130
+
131
+ "a" "" "" "(a|o)"
@@ -0,0 +1,26 @@
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
+ "1a" "" "" "(D|a)"
19
+ "1i" "" "" "(D|i|e)"
20
+ "1u" "" "" "(D|u|o)"
21
+ "j1" "" "" "(ja|je|jo|ju|j)"
22
+ "1" "" "" "(a|e|i|o|u|)"
23
+ "u" "" "" "(o|u)"
24
+ "i" "" "" "(i|e)"
25
+ "p" "" "$" "p"
26
+ "p" "" "" "(p|b)"
@@ -0,0 +1,233 @@
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
+ #include gen_exact_approx_common
21
+
22
+ // DUTCH
23
+ "van" "^" "[bp]" "(vam|)"
24
+ "van" "^" "" "(van|)"
25
+
26
+ // REGRESSIVE ASSIMILATION OF CONSONANTS
27
+ "n" "" "[bp]" "m"
28
+
29
+ // PECULIARITY OF "h"
30
+ "h" "" "" ""
31
+ "H" "" "" "(x|)"
32
+
33
+ // "e" and "i" ARE TO BE OMITTED BEFORE (SYLLABIC) n & l: Halperin=Halpern; Frankel = Frankl, Finkelstein = Finklstein
34
+ // but Andersen & Anderson should match
35
+ "sen" "[rmnl]" "$" "(zn|zon)"
36
+ "sen" "" "$" "(sn|son)"
37
+ "sEn" "[rmnl]" "$" "(zn|zon)"
38
+ "sEn" "" "$" "(sn|son)"
39
+
40
+ "e" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
41
+ "i" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
42
+ "E" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
43
+ "I" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
44
+ "Q" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
45
+ "Y" "[BbdfgklmnprsStvzZ]" "[ln]$" ""
46
+
47
+ "e" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
48
+ "i" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
49
+ "E" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
50
+ "I" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
51
+ "Q" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
52
+ "Y" "[BbdfgklmnprsStvzZ]" "[ln][BbdfgklmnprsStvzZ]" ""
53
+
54
+ "lEs" "" "" "(lEs|lz)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein)
55
+ "lE" "[bdfgkmnprStvzZ]" "" "(lE|l)" // Applebaum < Appelbaum (English + blend English-something forms as Finklestein)
56
+
57
+ // SIMPLIFICATION: (TRIPHTHONGS & DIPHTHONGS) -> ONE GENERIC DIPHTHONG "D"
58
+ "aue" "" "" "D"
59
+ "oue" "" "" "D"
60
+
61
+ "AvE" "" "" "(D|AvE)"
62
+ "Ave" "" "" "(D|Ave)"
63
+ "avE" "" "" "(D|avE)"
64
+ "ave" "" "" "(D|ave)"
65
+
66
+ "OvE" "" "" "(D|OvE)"
67
+ "Ove" "" "" "(D|Ove)"
68
+ "ovE" "" "" "(D|ovE)"
69
+ "ove" "" "" "(D|ove)"
70
+
71
+ "ea" "" "" "(D|ea)"
72
+ "EA" "" "" "(D|EA)"
73
+ "Ea" "" "" "(D|Ea)"
74
+ "eA" "" "" "(D|eA)"
75
+
76
+ "aji" "" "" "D"
77
+ "ajI" "" "" "D"
78
+ "aje" "" "" "D"
79
+ "ajE" "" "" "D"
80
+
81
+ "Aji" "" "" "D"
82
+ "AjI" "" "" "D"
83
+ "Aje" "" "" "D"
84
+ "AjE" "" "" "D"
85
+
86
+ "oji" "" "" "D"
87
+ "ojI" "" "" "D"
88
+ "oje" "" "" "D"
89
+ "ojE" "" "" "D"
90
+
91
+ "Oji" "" "" "D"
92
+ "OjI" "" "" "D"
93
+ "Oje" "" "" "D"
94
+ "OjE" "" "" "D"
95
+
96
+ "eji" "" "" "D"
97
+ "ejI" "" "" "D"
98
+ "eje" "" "" "D"
99
+ "ejE" "" "" "D"
100
+
101
+ "Eji" "" "" "D"
102
+ "EjI" "" "" "D"
103
+ "Eje" "" "" "D"
104
+ "EjE" "" "" "D"
105
+
106
+ "uji" "" "" "D"
107
+ "ujI" "" "" "D"
108
+ "uje" "" "" "D"
109
+ "ujE" "" "" "D"
110
+
111
+ "Uji" "" "" "D"
112
+ "UjI" "" "" "D"
113
+ "Uje" "" "" "D"
114
+ "UjE" "" "" "D"
115
+
116
+ "iji" "" "" "D"
117
+ "ijI" "" "" "D"
118
+ "ije" "" "" "D"
119
+ "ijE" "" "" "D"
120
+
121
+ "Iji" "" "" "D"
122
+ "IjI" "" "" "D"
123
+ "Ije" "" "" "D"
124
+ "IjE" "" "" "D"
125
+
126
+ "aja" "" "" "D"
127
+ "ajA" "" "" "D"
128
+ "ajo" "" "" "D"
129
+ "ajO" "" "" "D"
130
+ "aju" "" "" "D"
131
+ "ajU" "" "" "D"
132
+
133
+ "Aja" "" "" "D"
134
+ "AjA" "" "" "D"
135
+ "Ajo" "" "" "D"
136
+ "AjO" "" "" "D"
137
+ "Aju" "" "" "D"
138
+ "AjU" "" "" "D"
139
+
140
+ "oja" "" "" "D"
141
+ "ojA" "" "" "D"
142
+ "ojo" "" "" "D"
143
+ "ojO" "" "" "D"
144
+ "Aju" "" "" "D"
145
+ "AjU" "" "" "D"
146
+
147
+ "Oja" "" "" "D"
148
+ "OjA" "" "" "D"
149
+ "Ojo" "" "" "D"
150
+ "OjO" "" "" "D"
151
+ "Aju" "" "" "D"
152
+ "AjU" "" "" "D"
153
+
154
+ "eja" "" "" "D"
155
+ "ejA" "" "" "D"
156
+ "ejo" "" "" "D"
157
+ "ejO" "" "" "D"
158
+ "Aju" "" "" "D"
159
+ "AjU" "" "" "D"
160
+
161
+ "Eja" "" "" "D"
162
+ "EjA" "" "" "D"
163
+ "Ejo" "" "" "D"
164
+ "EjO" "" "" "D"
165
+ "Aju" "" "" "D"
166
+ "AjU" "" "" "D"
167
+
168
+ "uja" "" "" "D"
169
+ "ujA" "" "" "D"
170
+ "ujo" "" "" "D"
171
+ "ujO" "" "" "D"
172
+ "Aju" "" "" "D"
173
+ "AjU" "" "" "D"
174
+
175
+ "Uja" "" "" "D"
176
+ "UjA" "" "" "D"
177
+ "Ujo" "" "" "D"
178
+ "UjO" "" "" "D"
179
+ "Aju" "" "" "D"
180
+ "AjU" "" "" "D"
181
+
182
+ "ija" "" "" "D"
183
+ "ijA" "" "" "D"
184
+ "ijo" "" "" "D"
185
+ "ijO" "" "" "D"
186
+ "Aju" "" "" "D"
187
+ "AjU" "" "" "D"
188
+
189
+ "Ija" "" "" "D"
190
+ "IjA" "" "" "D"
191
+ "Ijo" "" "" "D"
192
+ "IjO" "" "" "D"
193
+ "Aju" "" "" "D"
194
+ "AjU" "" "" "D"
195
+
196
+ "j" "" "" "i"
197
+
198
+ // lander = lender = länder
199
+ "lYndEr" "" "$" "lYnder"
200
+ "lander" "" "$" "lYnder"
201
+ "lAndEr" "" "$" "lYnder"
202
+ "lAnder" "" "$" "lYnder"
203
+ "landEr" "" "$" "lYnder"
204
+ "lender" "" "$" "lYnder"
205
+ "lEndEr" "" "$" "lYnder"
206
+ "lendEr" "" "$" "lYnder"
207
+ "lEnder" "" "$" "lYnder"
208
+
209
+ // burg = berg
210
+ "burk" "" "$" "(burk|berk)"
211
+ "bUrk" "" "$" "(burk|berk)"
212
+ "burg" "" "$" "(burk|berk)"
213
+ "bUrg" "" "$" "(burk|berk)"
214
+ "Burk" "" "$" "(burk|berk)"
215
+ "BUrk" "" "$" "(burk|berk)"
216
+ "Burg" "" "$" "(burk|berk)"
217
+ "BUrg" "" "$" "(burk|berk)"
218
+
219
+ // CONSONANTS {z & Z; s & S} are approximately interchangeable
220
+ "s" "" "[rmnl]" "z"
221
+ "S" "" "[rmnl]" "z"
222
+ "s" "[rmnl]" "" "z"
223
+ "S" "[rmnl]" "" "z"
224
+
225
+ "dS" "" "$" "S"
226
+ "dZ" "" "$" "S"
227
+ "Z" "" "$" "S"
228
+ "S" "" "$" "(S|s)"
229
+ "z" "" "$" "(S|s)"
230
+
231
+ "S" "" "" "s"
232
+ "dZ" "" "" "z"
233
+ "Z" "" "" "z"
@@ -0,0 +1,18 @@
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
+ #include gen_approx_russian
@@ -0,0 +1,18 @@
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
+ #include gen_approx_french
@@ -0,0 +1,18 @@
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
+ #include gen_approx_french
@@ -0,0 +1,47 @@
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
+ // VOWELS
19
+ "I" "" "[^aEIeiou]e" "(Q|i|D)" // like in "five"
20
+ "I" "" "$" "i"
21
+ "I" "[aEIeiou]" "" "i"
22
+ "I" "" "[^k]$" "i"
23
+ "Ik" "[lr]" "$" "(ik|Qk)"
24
+ "Ik" "" "$" "ik"
25
+ "sIts" "" "$" "(sits|sQts)"
26
+ "Its" "" "$" "its"
27
+ "I" "" "" "(i|Q)"
28
+
29
+ "lE" "[bdfgkmnprsStvzZ]" "" "(il|li|lY)" // Applebaum < Appelbaum
30
+
31
+ "au" "" "" "(D|a|u)"
32
+ "ou" "" "" "(D|o|u)"
33
+ "ai" "" "" "(D|a|i)"
34
+ "oi" "" "" "(D|o|i)"
35
+ "ui" "" "" "(D|u|i)"
36
+
37
+ "E" "D[^aeiEIou]" "" "(i|)" // Weinberg, Shaneberg (shaneberg/shejneberg) --> shejnberg
38
+ "e" "D[^aeiEIou]" "" "(i|)"
39
+
40
+ "e" "" "" "i"
41
+ "E" "" "[fklmnprsStv]$" "i"
42
+ "E" "" "ts$" "i"
43
+ "E" "[DaoiEuQY]" "" "i"
44
+ "E" "" "[aoQY]" "i"
45
+ "E" "" "" "(Y|i)"
46
+
47
+ "a" "" "" "(a|o)"
@@ -0,0 +1,25 @@
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" "" "" "(D|a|u)"
19
+ "ou" "" "" "(D|o|u)"
20
+ "ai" "" "" "(D|a|i)"
21
+ "oi" "" "" "(D|o|i)"
22
+ "ui" "" "" "(D|u|i)"
23
+
24
+ "a" "" "" "(a|o)"
25
+ "e" "" "" "i"
@@ -0,0 +1,73 @@
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
+
19
+ "I" "" "$" "i"
20
+ "I" "[aeiAEIOUouQY]" "" "i"
21
+ "I" "" "[^k]$" "i"
22
+ "Ik" "[lr]" "$" "(ik|Qk)"
23
+ "Ik" "" "$" "ik"
24
+ "sIts" "" "$" "(sits|sQts)"
25
+ "Its" "" "$" "its"
26
+ "I" "" "" "(Q|i)"
27
+
28
+ "AU" "" "" "(D|a|u)"
29
+ "aU" "" "" "(D|a|u)"
30
+ "Au" "" "" "(D|a|u)"
31
+ "au" "" "" "(D|a|u)"
32
+ "ou" "" "" "(D|o|u)"
33
+ "OU" "" "" "(D|o|u)"
34
+ "oU" "" "" "(D|o|u)"
35
+ "Ou" "" "" "(D|o|u)"
36
+ "ai" "" "" "(D|a|i)"
37
+ "Ai" "" "" "(D|a|i)"
38
+ "oi" "" "" "(D|o|i)"
39
+ "Oi" "" "" "(D|o|i)"
40
+ "ui" "" "" "(D|u|i)"
41
+ "Ui" "" "" "(D|u|i)"
42
+
43
+ "e" "" "" "i"
44
+
45
+ "E" "" "[fklmnprst]$" "i"
46
+ "E" "" "ts$" "i"
47
+ "E" "" "$" "i"
48
+ "E" "[DaoAOUiuQY]" "" "i"
49
+ "E" "" "[aoAOQY]" "i"
50
+ "E" "" "" "(Y|i)"
51
+
52
+ "O" "" "$" "o"
53
+ "O" "" "[fklmnprst]$" "o"
54
+ "O" "" "ts$" "o"
55
+ "O" "[aoAOUeiuQY]" "" "o"
56
+ "O" "" "" "(o|Y)"
57
+
58
+ "a" "" "" "(a|o)"
59
+
60
+ "A" "" "$" "(a|o)"
61
+ "A" "" "[fklmnprst]$" "(a|o)"
62
+ "A" "" "ts$" "(a|o)"
63
+ "A" "[aoeOUiuQY]" "" "(a|o)"
64
+ "A" "" "" "(a|o|Y)"
65
+
66
+ "U" "" "$" "u"
67
+ "U" "[DaoiuUQY]" "" "u"
68
+ "U" "" "[^k]$" "u"
69
+ "Uk" "[lr]" "$" "(uk|Qk)"
70
+ "Uk" "" "$" "uk"
71
+ "sUts" "" "$" "(suts|sQts)"
72
+ "Uts" "" "$" "uts"
73
+ "U" "" "" "(u|Q)"
@@ -0,0 +1,18 @@
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
+ #include gen_approx_french
@@ -0,0 +1,20 @@
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
+ #include gen_approx_french
19
+
20
+ "N" "" "" ""
@@ -0,0 +1,18 @@
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
+ // empty