Commit 8e42d298462a9f347e3628baa1ea11b61a980d87
1 parent
c0c2a74c
moduły dla tree
Showing
5 changed files
with
828 additions
and
136 deletions
guesser/data/interps.tab
0 → 100644
1 | +adj-sup adj:sg:nom.voc:n1.n2:sup Ca | |
2 | +adj-sup adj:sg:nom.voc:m1.m2.m3:sup Cb | |
3 | +adj-sup adj:sg:nom.voc:f:sup Cc | |
4 | +adj-sup adj:sg:loc:m1.m2.m3.n1.n2:sup Cd | |
5 | +adj-sup adj:sg:loc:f:sup Ce | |
6 | +adj-sup adj:sg:inst:m1.m2.m3.n1.n2:sup Cf | |
7 | +adj-sup adj:sg:inst:f:sup Cg | |
8 | +adj-sup adj:sg:gen:m1.m2.m3.n1.n2:sup Ch | |
9 | +adj-sup adj:sg:gen:f:sup Ci | |
10 | +adj-sup adj:sg:dat:m1.m2.m3.n1.n2:sup Cj | |
11 | +adj-sup adj:sg:dat:f:sup Ck | |
12 | +adj-sup adj:sg:acc:n1.n2:sup Cl | |
13 | +adj-sup adj:sg:acc:m3:sup Cm | |
14 | +adj-sup adj:sg:acc:m1.m2:sup Cn | |
15 | +adj-sup adj:sg:acc:f:sup Co | |
16 | +adj-sup adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:sup Cp | |
17 | +adj-sup adj:pl:nom.voc:m1.p1:sup Cq | |
18 | +adj-sup adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:sup Cr | |
19 | +adj-sup adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:sup Cs | |
20 | +adj-sup adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:sup Ct | |
21 | +adj-sup adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:sup Cu | |
22 | +adj-sup adj:pl:acc:m2.m3.f.n1.n2.p2.p3:sup Cv | |
23 | +adj-sup adj:pl:acc:m1.p1:sup Cw | |
24 | +verb-neg ppas:sg:nom.voc:m1.m2.m3:perf:neg Ua | |
25 | +verb-neg ppas:sg:nom.voc:m1.m2.m3:imperf:neg Ua | |
26 | +verb-neg ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg Ua | |
27 | +verb-neg ppas:sg:nom.voc:f:perf:neg Ub | |
28 | +verb-neg ppas:sg:nom.voc:f:imperf:neg Ub | |
29 | +verb-neg ppas:sg:nom.voc:f:imperf.perf:neg Ub | |
30 | +verb-neg ppas:sg:nom.acc.voc:n1.n2:perf:neg Uc | |
31 | +verb-neg ppas:sg:nom.acc.voc:n1.n2:imperf:neg Uc | |
32 | +verb-neg ppas:sg:nom.acc.voc:n1.n2:imperf.perf:neg Uc | |
33 | +verb-neg ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:neg Ud | |
34 | +verb-neg ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg Ud | |
35 | +verb-neg ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg Ud | |
36 | +verb-neg ppas:sg:gen:m1.m2.m3.n1.n2:perf:neg Ue | |
37 | +verb-neg ppas:sg:gen:m1.m2.m3.n1.n2:imperf:neg Ue | |
38 | +verb-neg ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg Ue | |
39 | +verb-neg ppas:sg:gen.dat.loc:f:perf:neg Uf | |
40 | +verb-neg ppas:sg:gen.dat.loc:f:imperf:neg Uf | |
41 | +verb-neg ppas:sg:gen.dat.loc:f:imperf.perf:neg Uf | |
42 | +verb-neg ppas:sg:dat:m1.m2.m3.n1.n2:perf:neg Ug | |
43 | +verb-neg ppas:sg:dat:m1.m2.m3.n1.n2:imperf:neg Ug | |
44 | +verb-neg ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg Ug | |
45 | +verb-neg ppas:sg:acc:m3:perf:neg Uh | |
46 | +verb-neg ppas:sg:acc:m3:imperf:neg Uh | |
47 | +verb-neg ppas:sg:acc:m3:imperf.perf:neg Uh | |
48 | +verb-neg ppas:sg:acc:m1.m2:perf:neg Ui | |
49 | +verb-neg ppas:sg:acc:m1.m2:imperf:neg Ui | |
50 | +verb-neg ppas:sg:acc:m1.m2:imperf.perf:neg Ui | |
51 | +verb-neg ppas:sg:acc.inst:f:perf:neg Uj | |
52 | +verb-neg ppas:sg:acc.inst:f:imperf:neg Uj | |
53 | +verb-neg ppas:sg:acc.inst:f:imperf.perf:neg Uj | |
54 | +verb-neg ppas:pl:nom.voc:m1.p1:perf:neg Uk | |
55 | +verb-neg ppas:pl:nom.voc:m1.p1:imperf:neg Uk | |
56 | +verb-neg ppas:pl:nom.voc:m1.p1:imperf.perf:neg Uk | |
57 | +verb-neg ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:neg Ul | |
58 | +verb-neg ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg Ul | |
59 | +verb-neg ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg Ul | |
60 | +verb-neg ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg Um | |
61 | +verb-neg ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Um | |
62 | +verb-neg ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Um | |
63 | +verb-neg ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg Un | |
64 | +verb-neg ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Un | |
65 | +verb-neg ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Un | |
66 | +verb-neg ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:neg Uo | |
67 | +verb-neg ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Uo | |
68 | +verb-neg ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Uo | |
69 | +verb-neg ppas:pl:acc:m1.p1:perf:neg Up | |
70 | +verb-neg ppas:pl:acc:m1.p1:imperf:neg Up | |
71 | +verb-neg ppas:pl:acc:m1.p1:imperf.perf:neg Up | |
72 | +verb-neg pact:sg:nom.voc:m1.m2.m3:imperf:neg Va | |
73 | +verb-neg pact:sg:nom.voc:m1.m2.m3:imperf.perf:neg Va | |
74 | +verb-neg pact:sg:nom.voc:f:imperf:neg Vb | |
75 | +verb-neg pact:sg:nom.voc:f:imperf.perf:neg Vb | |
76 | +verb-neg pact:sg:nom.acc.voc:n1.n2:imperf:neg Vc | |
77 | +verb-neg pact:sg:nom.acc.voc:n1.n2:imperf.perf:neg Vc | |
78 | +verb-neg pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:neg Vd | |
79 | +verb-neg pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:neg Vd | |
80 | +verb-neg pact:sg:gen:m1.m2.m3.n1.n2:imperf:neg Ve | |
81 | +verb-neg pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:neg Ve | |
82 | +verb-neg pact:sg:gen.dat.loc:f:imperf:neg Vf | |
83 | +verb-neg pact:sg:gen.dat.loc:f:imperf.perf:neg Vf | |
84 | +verb-neg pact:sg:dat:m1.m2.m3.n1.n2:imperf:neg Vg | |
85 | +verb-neg pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:neg Vg | |
86 | +verb-neg pact:sg:acc:m3:imperf:neg Vh | |
87 | +verb-neg pact:sg:acc:m3:imperf.perf:neg Vh | |
88 | +verb-neg pact:sg:acc:m1.m2:imperf:neg Vi | |
89 | +verb-neg pact:sg:acc:m1.m2:imperf.perf:neg Vi | |
90 | +verb-neg pact:sg:acc.inst:f:imperf:neg Vj | |
91 | +verb-neg pact:sg:acc.inst:f:imperf.perf:neg Vj | |
92 | +verb-neg pact:pl:nom.voc:m1.p1:imperf:neg Vk | |
93 | +verb-neg pact:pl:nom.voc:m1.p1:imperf.perf:neg Vk | |
94 | +verb-neg pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:neg Vl | |
95 | +verb-neg pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:neg Vl | |
96 | +verb-neg pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Vm | |
97 | +verb-neg pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Vm | |
98 | +verb-neg pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Vn | |
99 | +verb-neg pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Vn | |
100 | +verb-neg pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:neg Vo | |
101 | +verb-neg pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:neg Vo | |
102 | +verb-neg pact:pl:acc:m1.p1:imperf:neg Vp | |
103 | +verb-neg pact:pl:acc:m1.p1:imperf.perf:neg Vp | |
104 | +verb-neg ger:sg:nom.acc:n2:perf:neg Ta | |
105 | +verb-neg ger:sg:nom.acc:n2:imperf:neg Ta | |
106 | +verb-neg ger:sg:nom.acc:n2:imperf.perf:neg Ta | |
107 | +verb-neg ger:sg:inst:n2:perf:neg Tb | |
108 | +verb-neg ger:sg:inst:n2:imperf:neg Tb | |
109 | +verb-neg ger:sg:inst:n2:imperf.perf:neg Tb | |
110 | +verb-neg ger:sg:gen:n2:perf:neg Tc | |
111 | +verb-neg ger:sg:gen:n2:imperf:neg Tc | |
112 | +verb-neg ger:sg:gen:n2:imperf.perf:neg Tc | |
113 | +verb-neg ger:sg:dat.loc:n2:perf:neg Td | |
114 | +verb-neg ger:sg:dat.loc:n2:imperf:neg Td | |
115 | +verb-neg ger:sg:dat.loc:n2:imperf.perf:neg Td | |
116 | +verb-neg ger:pl:nom.acc:n2:perf:neg Te | |
117 | +verb-neg ger:pl:nom.acc:n2:imperf:neg Te | |
118 | +verb-neg ger:pl:nom.acc:n2:imperf.perf:neg Te | |
119 | +verb-neg ger:pl:loc:n2:perf:neg Tf | |
120 | +verb-neg ger:pl:loc:n2:imperf:neg Tf | |
121 | +verb-neg ger:pl:loc:n2:imperf.perf:neg Tf | |
122 | +verb-neg ger:pl:inst:n2:perf:neg Tg | |
123 | +verb-neg ger:pl:inst:n2:imperf:neg Tg | |
124 | +verb-neg ger:pl:inst:n2:imperf.perf:neg Tg | |
125 | +verb-neg ger:pl:gen:n2:perf:neg Th | |
126 | +verb-neg ger:pl:gen:n2:imperf:neg Th | |
127 | +verb-neg ger:pl:gen:n2:imperf.perf:neg Th | |
128 | +verb-neg ger:pl:dat:n2:perf:neg Ti | |
129 | +verb-neg ger:pl:dat:n2:imperf:neg Ti | |
130 | +verb-neg ger:pl:dat:n2:imperf.perf:neg Ti | |
131 | +other winien:sg:n1.n2:ter:imperf W | |
132 | +other winien:sg:n1.n2:sec:imperf W | |
133 | +other winien:sg:n1.n2:pri:imperf W | |
134 | +other winien:sg:n1.n2:imperf W | |
135 | +other winien:sg:m1.m2.m3:ter:imperf W | |
136 | +other winien:sg:m1.m2.m3:sec:imperf W | |
137 | +other winien:sg:m1.m2.m3:pri:imperf W | |
138 | +other winien:sg:m1.m2.m3:imperf W | |
139 | +other winien:sg:f:ter:imperf W | |
140 | +other winien:sg:f:sec:imperf W | |
141 | +other winien:sg:f:pri:imperf W | |
142 | +other winien:sg:f:imperf W | |
143 | +other winien:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf W | |
144 | +other winien:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf W | |
145 | +other winien:pl:m2.m3.f.n1.n2.p2.p3:imperf W | |
146 | +other winien:pl:m1.p1:ter:imperf W | |
147 | +other winien:pl:m1.p1:sec:imperf W | |
148 | +other winien:pl:m1.p1:pri:imperf W | |
149 | +other winien:pl:m1.p1:imperf W | |
150 | +noun subst:sg:voc:n2 Gva | |
151 | +noun subst:sg:voc:n1 Gvb | |
152 | +noun subst:sg:voc:m3 Gvc | |
153 | +noun subst:sg:voc:m2 Gvd | |
154 | +noun subst:sg:voc:m1 Gve | |
155 | +noun subst:sg:voc:f Gvf | |
156 | +noun subst:sg:nom:n2 Gna | |
157 | +noun subst:sg:nom:n1 Gnb | |
158 | +noun subst:sg:nom:m3 Gnc | |
159 | +noun subst:sg:nom:m2 Gnd | |
160 | +noun subst:sg:nom:m1 Gne | |
161 | +noun subst:sg:nom:f Gnf | |
162 | +noun subst:sg:loc:n2 Gla | |
163 | +noun subst:sg:loc:n1 Glb | |
164 | +noun subst:sg:loc:m3 Glc | |
165 | +noun subst:sg:loc:m2 Gld | |
166 | +noun subst:sg:loc:m1 Gle | |
167 | +noun subst:sg:loc:f Glf | |
168 | +noun subst:sg:inst:n2 Gia | |
169 | +noun subst:sg:inst:n1 Gib | |
170 | +noun subst:sg:inst:m3 Gic | |
171 | +noun subst:sg:inst:m2 Gid | |
172 | +noun subst:sg:inst:m1 Gie | |
173 | +noun subst:sg:inst:f Gif | |
174 | +noun subst:sg:gen:n2 Gga | |
175 | +noun subst:sg:gen:n1 Ggb | |
176 | +noun subst:sg:gen:m3 Ggc | |
177 | +noun subst:sg:gen:m2 Ggd | |
178 | +noun subst:sg:gen:m1 Gge | |
179 | +noun subst:sg:gen:f Ggf | |
180 | +noun subst:sg:dat:n2 Gda | |
181 | +noun subst:sg:dat:n1 Gdb | |
182 | +noun subst:sg:dat:m3 Gdc | |
183 | +noun subst:sg:dat:m2 Gdd | |
184 | +noun subst:sg:dat:m1 Gde | |
185 | +noun subst:sg:dat:f Gdf | |
186 | +noun subst:sg:acc:n2 Gaa | |
187 | +noun subst:sg:acc:n1 Gab | |
188 | +noun subst:sg:acc:m3 Gac | |
189 | +noun subst:sg:acc:m2 Gad | |
190 | +noun subst:sg:acc:m1 Gae | |
191 | +noun subst:sg:acc:f Gaf | |
192 | +noun subst:pl:voc:p3 Yvp | |
193 | +noun subst:pl:voc:p2 Yvq | |
194 | +noun subst:pl:voc:p1 Yvr | |
195 | +noun subst:pl:voc:n2 Yva | |
196 | +noun subst:pl:voc:n1 Yvb | |
197 | +noun subst:pl:voc:m3 Yvc | |
198 | +noun subst:pl:voc:m2 Yvd | |
199 | +noun subst:pl:voc:m1 Yve | |
200 | +noun subst:pl:voc:f Yvf | |
201 | +noun subst:pl:nom:p3 Ynp | |
202 | +noun subst:pl:nom:p2 Ynq | |
203 | +noun subst:pl:nom:p1 Ynr | |
204 | +noun subst:pl:nom:n2 Yna | |
205 | +noun subst:pl:nom:n1 Ynb | |
206 | +noun subst:pl:nom:m3 Ync | |
207 | +noun subst:pl:nom:m2 Ynd | |
208 | +noun subst:pl:nom:m1 Yne | |
209 | +noun subst:pl:nom:f Ynf | |
210 | +noun subst:pl:loc:p3 Ylp | |
211 | +noun subst:pl:loc:p2 Ylq | |
212 | +noun subst:pl:loc:p1 Ylr | |
213 | +noun subst:pl:loc:n2 Yla | |
214 | +noun subst:pl:loc:n1 Ylb | |
215 | +noun subst:pl:loc:m3 Ylc | |
216 | +noun subst:pl:loc:m2 Yld | |
217 | +noun subst:pl:loc:m1 Yle | |
218 | +noun subst:pl:loc:f Ylf | |
219 | +noun subst:pl:inst:p3 Yip | |
220 | +noun subst:pl:inst:p2 Yiq | |
221 | +noun subst:pl:inst:p1 Yir | |
222 | +noun subst:pl:inst:n2 Yia | |
223 | +noun subst:pl:inst:n1 Yib | |
224 | +noun subst:pl:inst:m3 Yic | |
225 | +noun subst:pl:inst:m2 Yid | |
226 | +noun subst:pl:inst:m1 Yie | |
227 | +noun subst:pl:inst:f Yif | |
228 | +noun subst:pl:gen:p3 Ygp | |
229 | +noun subst:pl:gen:p2 Ygq | |
230 | +noun subst:pl:gen:p1 Ygr | |
231 | +noun subst:pl:gen:n2 Yga | |
232 | +noun subst:pl:gen:n1 Ygb | |
233 | +noun subst:pl:gen:m3 Ygc | |
234 | +noun subst:pl:gen:m2 Ygd | |
235 | +noun subst:pl:gen:m1 Yge | |
236 | +noun subst:pl:gen:f Ygf | |
237 | +noun subst:pl:dat:p3 Ydp | |
238 | +noun subst:pl:dat:p2 Ydq | |
239 | +noun subst:pl:dat:p1 Ydr | |
240 | +noun subst:pl:dat:n2 Yda | |
241 | +noun subst:pl:dat:n1 Ydb | |
242 | +noun subst:pl:dat:m3 Ydc | |
243 | +noun subst:pl:dat:m2 Ydd | |
244 | +noun subst:pl:dat:m1 Yde | |
245 | +noun subst:pl:dat:f Ydf | |
246 | +noun subst:pl:acc:p3 Yap | |
247 | +noun subst:pl:acc:p2 Yaq | |
248 | +noun subst:pl:acc:p1 Yar | |
249 | +noun subst:pl:acc:n2 Yaa | |
250 | +noun subst:pl:acc:n1 Yab | |
251 | +noun subst:pl:acc:m3 Yac | |
252 | +noun subst:pl:acc:m2 Yad | |
253 | +noun subst:pl:acc:m1 Yae | |
254 | +noun subst:pl:acc:f Yaf | |
255 | +other qub W | |
256 | +other prep:nom W | |
257 | +other prep:loc:wok W | |
258 | +other prep:loc:nwok W | |
259 | +other prep:loc W | |
260 | +other prep:inst:wok W | |
261 | +other prep:inst:nwok W | |
262 | +other prep:inst W | |
263 | +other prep:gen:wok W | |
264 | +other prep:gen:nwok W | |
265 | +other prep:gen W | |
266 | +other prep:dat W | |
267 | +other prep:acc:wok W | |
268 | +other prep:acc:nwok W | |
269 | +other prep:acc W | |
270 | +other pred W | |
271 | +verb praet:sg:n1.n2:ter:perf Ja | |
272 | +verb praet:sg:n1.n2:ter:imperf.perf Ja | |
273 | +verb praet:sg:n1.n2:ter:imperf Ja | |
274 | +verb praet:sg:n1.n2:sec:perf Jb | |
275 | +verb praet:sg:n1.n2:sec:imperf.perf Jb | |
276 | +verb praet:sg:n1.n2:sec:imperf Jb | |
277 | +verb praet:sg:n1.n2:pri:perf Jc | |
278 | +verb praet:sg:n1.n2:pri:imperf.perf Jc | |
279 | +verb praet:sg:n1.n2:pri:imperf Jc | |
280 | +verb praet:sg:n1.n2:perf Jd | |
281 | +verb praet:sg:n1.n2:imperf.perf Jd | |
282 | +verb praet:sg:n1.n2:imperf Jd | |
283 | +verb praet:sg:m1.m2.m3:ter:perf Je | |
284 | +verb praet:sg:m1.m2.m3:ter:imperf.perf Je | |
285 | +verb praet:sg:m1.m2.m3:ter:imperf Je | |
286 | +verb praet:sg:m1.m2.m3:sec:perf Jf | |
287 | +verb praet:sg:m1.m2.m3:sec:imperf.perf Jf | |
288 | +verb praet:sg:m1.m2.m3:sec:imperf Jf | |
289 | +verb praet:sg:m1.m2.m3:pri:perf Jg | |
290 | +verb praet:sg:m1.m2.m3:pri:imperf.perf Jg | |
291 | +verb praet:sg:m1.m2.m3:pri:imperf Jg | |
292 | +verb praet:sg:m1.m2.m3:perf:nagl Jh | |
293 | +verb praet:sg:m1.m2.m3:perf:agl Jh | |
294 | +verb praet:sg:m1.m2.m3:perf Jh | |
295 | +verb praet:sg:m1.m2.m3:imperf:nagl Jh | |
296 | +verb praet:sg:m1.m2.m3:imperf:agl Jh | |
297 | +verb praet:sg:m1.m2.m3:imperf.perf Jh | |
298 | +verb praet:sg:m1.m2.m3:imperf Jh | |
299 | +verb praet:sg:f:ter:perf Ji | |
300 | +verb praet:sg:f:ter:imperf.perf Ji | |
301 | +verb praet:sg:f:ter:imperf Ji | |
302 | +verb praet:sg:f:sec:perf Jj | |
303 | +verb praet:sg:f:sec:imperf.perf Jj | |
304 | +verb praet:sg:f:sec:imperf Jj | |
305 | +verb praet:sg:f:pri:perf Jk | |
306 | +verb praet:sg:f:pri:imperf.perf Jk | |
307 | +verb praet:sg:f:pri:imperf Jk | |
308 | +verb praet:sg:f:perf Jl | |
309 | +verb praet:sg:f:imperf.perf Jl | |
310 | +verb praet:sg:f:imperf Jl | |
311 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:ter:perf Jm | |
312 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf Jm | |
313 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf Jm | |
314 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:sec:perf Jn | |
315 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf Jn | |
316 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf Jn | |
317 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:pri:perf Jo | |
318 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf Jo | |
319 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf Jo | |
320 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:perf Jp | |
321 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:imperf.perf Jp | |
322 | +verb praet:pl:m2.m3.f.n1.n2.p2.p3:imperf Jp | |
323 | +verb praet:pl:m1.p1:ter:perf Jq | |
324 | +verb praet:pl:m1.p1:ter:imperf.perf Jq | |
325 | +verb praet:pl:m1.p1:ter:imperf Jq | |
326 | +verb praet:pl:m1.p1:sec:perf Jr | |
327 | +verb praet:pl:m1.p1:sec:imperf.perf Jr | |
328 | +verb praet:pl:m1.p1:sec:imperf Jr | |
329 | +verb praet:pl:m1.p1:pri:perf Js | |
330 | +verb praet:pl:m1.p1:pri:imperf.perf Js | |
331 | +verb praet:pl:m1.p1:pri:imperf Js | |
332 | +verb praet:pl:m1.p1:perf Jt | |
333 | +verb praet:pl:m1.p1:imperf.perf Jt | |
334 | +verb praet:pl:m1.p1:imperf Jt | |
335 | +other ppron3:sg:nom:n1.n2:ter:akc.nakc:praep.npraep W | |
336 | +other ppron3:sg:nom:m1.m2.m3:ter:akc.nakc:praep.npraep W | |
337 | +other ppron3:sg:nom:f:ter:akc.nakc:praep.npraep W | |
338 | +other ppron3:sg:loc:n1.n2:ter:akc.nakc:praep.npraep W | |
339 | +other ppron3:sg:loc:m1.m2.m3:ter:akc.nakc:praep.npraep W | |
340 | +other ppron3:sg:loc:f:ter:akc.nakc:praep.npraep W | |
341 | +other ppron3:sg:inst:n1.n2:ter:akc.nakc:praep.npraep W | |
342 | +other ppron3:sg:inst:m1.m2.m3:ter:akc.nakc:praep.npraep W | |
343 | +other ppron3:sg:inst:f:ter:akc.nakc:praep.npraep W | |
344 | +other ppron3:sg:gen:n1.n2:ter:nakc:npraep W | |
345 | +other ppron3:sg:gen:n1.n2:ter:akc:npraep W | |
346 | +other ppron3:sg:gen:n1.n2:ter:akc.nakc:praep W | |
347 | +other ppron3:sg:gen:m1.m2.m3:ter:nakc:praep W | |
348 | +other ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep W | |
349 | +other ppron3:sg:gen:m1.m2.m3:ter:akc:praep W | |
350 | +other ppron3:sg:gen:m1.m2.m3:ter:akc:npraep W | |
351 | +other ppron3:sg:gen:f:ter:akc.nakc:praep W | |
352 | +other ppron3:sg:gen:f:ter:akc.nakc:npraep W | |
353 | +other ppron3:sg:dat:n1.n2:ter:nakc:npraep W | |
354 | +other ppron3:sg:dat:n1.n2:ter:akc:npraep W | |
355 | +other ppron3:sg:dat:n1.n2:ter:akc.nakc:praep W | |
356 | +other ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep W | |
357 | +other ppron3:sg:dat:m1.m2.m3:ter:akc:npraep W | |
358 | +other ppron3:sg:dat:m1.m2.m3:ter:akc.nakc:praep W | |
359 | +other ppron3:sg:dat:f:ter:akc.nakc:praep W | |
360 | +other ppron3:sg:dat:f:ter:akc.nakc:npraep W | |
361 | +other ppron3:sg:acc:n1.n2:ter:akc.nakc:praep W | |
362 | +other ppron3:sg:acc:n1.n2:ter:akc.nakc:npraep W | |
363 | +other ppron3:sg:acc:m1.m2.m3:ter:nakc:praep W | |
364 | +other ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep W | |
365 | +other ppron3:sg:acc:m1.m2.m3:ter:akc:praep W | |
366 | +other ppron3:sg:acc:m1.m2.m3:ter:akc:npraep W | |
367 | +other ppron3:sg:acc:f:ter:akc.nakc:praep W | |
368 | +other ppron3:sg:acc:f:ter:akc.nakc:npraep W | |
369 | +other ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:akc.nakc:praep.npraep W | |
370 | +other ppron3:pl:nom:m1.p1:ter:akc.nakc:praep.npraep W | |
371 | +other ppron3:pl:loc:_:ter:akc.nakc:praep.npraep W | |
372 | +other ppron3:pl:inst:_:ter:akc.nakc:praep.npraep W | |
373 | +other ppron3:pl:gen:_:ter:akc.nakc:praep W | |
374 | +other ppron3:pl:gen:_:ter:akc.nakc:npraep W | |
375 | +other ppron3:pl:dat:_:ter:akc.nakc:praep W | |
376 | +other ppron3:pl:dat:_:ter:akc.nakc:npraep W | |
377 | +other ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:akc.nakc:praep W | |
378 | +other ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:akc.nakc:npraep W | |
379 | +other ppron3:pl:acc:m1.p1:ter:akc.nakc:praep W | |
380 | +other ppron3:pl:acc:m1.p1:ter:akc.nakc:npraep W | |
381 | +other ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec W | |
382 | +other ppron12:sg:voc:m1.m2.m3.f.n1.n2:pri W | |
383 | +other ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec W | |
384 | +other ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri W | |
385 | +other ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec W | |
386 | +other ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri W | |
387 | +other ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec W | |
388 | +other ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri W | |
389 | +other ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc W | |
390 | +other ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc W | |
391 | +other ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc W | |
392 | +other ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc W | |
393 | +other ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc W | |
394 | +other ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc W | |
395 | +other ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc W | |
396 | +other ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc W | |
397 | +other ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc W | |
398 | +other ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc W | |
399 | +other ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc W | |
400 | +other ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc W | |
401 | +other ppron12:pl:voc:_:sec W | |
402 | +other ppron12:pl:voc:_:pri W | |
403 | +other ppron12:pl:nom:_:sec W | |
404 | +other ppron12:pl:nom:_:pri W | |
405 | +other ppron12:pl:loc:_:sec W | |
406 | +other ppron12:pl:loc:_:pri W | |
407 | +other ppron12:pl:inst:_:sec W | |
408 | +other ppron12:pl:inst:_:pri W | |
409 | +other ppron12:pl:gen:_:sec W | |
410 | +other ppron12:pl:gen:_:pri W | |
411 | +other ppron12:pl:dat:_:sec W | |
412 | +other ppron12:pl:dat:_:pri W | |
413 | +other ppron12:pl:acc:_:sec W | |
414 | +other ppron12:pl:acc:_:pri W | |
415 | +verb ppas:sg:nom.voc:m1.m2.m3:perf:aff Ra | |
416 | +verb ppas:sg:nom.voc:m1.m2.m3:imperf:aff Ra | |
417 | +verb ppas:sg:nom.voc:m1.m2.m3:imperf.perf:aff Ra | |
418 | +verb ppas:sg:nom.voc:f:perf:aff Rb | |
419 | +verb ppas:sg:nom.voc:f:imperf:aff Rb | |
420 | +verb ppas:sg:nom.voc:f:imperf.perf:aff Rb | |
421 | +verb ppas:sg:nom.acc.voc:n1.n2:perf:aff Rc | |
422 | +verb ppas:sg:nom.acc.voc:n1.n2:imperf:aff Rc | |
423 | +verb ppas:sg:nom.acc.voc:n1.n2:imperf.perf:aff Rc | |
424 | +verb ppas:sg:inst.loc:m1.m2.m3.n1.n2:perf:aff Rd | |
425 | +verb ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff Rd | |
426 | +verb ppas:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff Rd | |
427 | +verb ppas:sg:gen:m1.m2.m3.n1.n2:perf:aff Re | |
428 | +verb ppas:sg:gen:m1.m2.m3.n1.n2:imperf:aff Re | |
429 | +verb ppas:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff Re | |
430 | +verb ppas:sg:gen.dat.loc:f:perf:aff Rf | |
431 | +verb ppas:sg:gen.dat.loc:f:imperf:aff Rf | |
432 | +verb ppas:sg:gen.dat.loc:f:imperf.perf:aff Rf | |
433 | +verb ppas:sg:dat:m1.m2.m3.n1.n2:perf:aff Rg | |
434 | +verb ppas:sg:dat:m1.m2.m3.n1.n2:imperf:aff Rg | |
435 | +verb ppas:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff Rg | |
436 | +verb ppas:sg:acc:m3:perf:aff Rh | |
437 | +verb ppas:sg:acc:m3:imperf:aff Rh | |
438 | +verb ppas:sg:acc:m3:imperf.perf:aff Rh | |
439 | +verb ppas:sg:acc:m1.m2:perf:aff Ri | |
440 | +verb ppas:sg:acc:m1.m2:imperf:aff Ri | |
441 | +verb ppas:sg:acc:m1.m2:imperf.perf:aff Ri | |
442 | +verb ppas:sg:acc.inst:f:perf:aff Rj | |
443 | +verb ppas:sg:acc.inst:f:imperf:aff Rj | |
444 | +verb ppas:sg:acc.inst:f:imperf.perf:aff Rj | |
445 | +verb ppas:pl:nom.voc:m1.p1:perf:aff Rk | |
446 | +verb ppas:pl:nom.voc:m1.p1:imperf:aff Rk | |
447 | +verb ppas:pl:nom.voc:m1.p1:imperf.perf:aff Rk | |
448 | +verb ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:perf:aff Rl | |
449 | +verb ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff Rl | |
450 | +verb ppas:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff Rl | |
451 | +verb ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff Rm | |
452 | +verb ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Rm | |
453 | +verb ppas:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Rm | |
454 | +verb ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff Rn | |
455 | +verb ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Rn | |
456 | +verb ppas:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Rn | |
457 | +verb ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:perf:aff Ro | |
458 | +verb ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Ro | |
459 | +verb ppas:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Ro | |
460 | +verb ppas:pl:acc:m1.p1:perf:aff Rp | |
461 | +verb ppas:pl:acc:m1.p1:imperf:aff Rp | |
462 | +verb ppas:pl:acc:m1.p1:imperf.perf:aff Rp | |
463 | +verb pcon:imperf O | |
464 | +verb pant:perf P | |
465 | +verb pact:sg:nom.voc:m1.m2.m3:imperf:aff Qa | |
466 | +verb pact:sg:nom.voc:m1.m2.m3:imperf.perf:aff Qa | |
467 | +verb pact:sg:nom.voc:f:imperf:aff Qb | |
468 | +verb pact:sg:nom.voc:f:imperf.perf:aff Qb | |
469 | +verb pact:sg:nom.acc.voc:n1.n2:imperf:aff Qc | |
470 | +verb pact:sg:nom.acc.voc:n1.n2:imperf.perf:aff Qc | |
471 | +verb pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf:aff Qd | |
472 | +verb pact:sg:inst.loc:m1.m2.m3.n1.n2:imperf.perf:aff Qd | |
473 | +verb pact:sg:gen:m1.m2.m3.n1.n2:imperf:aff Qe | |
474 | +verb pact:sg:gen:m1.m2.m3.n1.n2:imperf.perf:aff Qe | |
475 | +verb pact:sg:gen.dat.loc:f:imperf:aff Qf | |
476 | +verb pact:sg:gen.dat.loc:f:imperf.perf:aff Qf | |
477 | +verb pact:sg:dat:m1.m2.m3.n1.n2:imperf:aff Qg | |
478 | +verb pact:sg:dat:m1.m2.m3.n1.n2:imperf.perf:aff Qg | |
479 | +verb pact:sg:acc:m3:imperf:aff Qh | |
480 | +verb pact:sg:acc:m3:imperf.perf:aff Qh | |
481 | +verb pact:sg:acc:m1.m2:imperf:aff Qi | |
482 | +verb pact:sg:acc:m1.m2:imperf.perf:aff Qi | |
483 | +verb pact:sg:acc.inst:f:imperf:aff Qj | |
484 | +verb pact:sg:acc.inst:f:imperf.perf:aff Qj | |
485 | +verb pact:pl:nom.voc:m1.p1:imperf:aff Qk | |
486 | +verb pact:pl:nom.voc:m1.p1:imperf.perf:aff Qk | |
487 | +verb pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf:aff Ql | |
488 | +verb pact:pl:nom.acc.voc:m2.m3.f.n1.n2.p2.p3:imperf.perf:aff Ql | |
489 | +verb pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Qm | |
490 | +verb pact:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Qm | |
491 | +verb pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Qn | |
492 | +verb pact:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Qn | |
493 | +verb pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf:aff Qo | |
494 | +verb pact:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:imperf.perf:aff Qo | |
495 | +verb pact:pl:acc:m1.p1:imperf:aff Qp | |
496 | +verb pact:pl:acc:m1.p1:imperf.perf:aff Qp | |
497 | +other num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.n1.n2:rec W | |
498 | +other num:sg:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2:rec W | |
499 | +other num:sg:nom.gen.dat.inst.acc.loc.voc:f:rec W | |
500 | +other num:sg:nom.acc:m1.m2.m3.f.n1.n2:rec W | |
501 | +other num:sg.pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec W | |
502 | +other num:pl:nom.voc:m1:rec W | |
503 | +other num:pl:nom.voc:m1:congr W | |
504 | +other num:pl:nom.gen.dat.inst.acc.loc.voc:m1.m2.m3.f.n1.n2.p1.p2:rec W | |
505 | +other num:pl:nom.acc:m1.m2.m3.f.n1.n2.p1.p2:rec W | |
506 | +other num:pl:nom.acc.voc:n1.p1.p2:rec W | |
507 | +other num:pl:nom.acc.voc:m2.m3.n2:congr W | |
508 | +other num:pl:nom.acc.voc:m2.m3.n2.f:congr W | |
509 | +other num:pl:nom.acc.voc:m2.m3.f.n2:rec W | |
510 | +other num:pl:nom.acc.voc:m2.m3.f.n1.n2.p1.p2:rec W | |
511 | +other num:pl:nom.acc.voc:m1:rec W | |
512 | +other num:pl:nom.acc.voc:f:congr W | |
513 | +other num:pl:inst:n1.p1.p2:rec W | |
514 | +other num:pl:inst:m1.m2.m3.n2:congr W | |
515 | +other num:pl:inst:m1.m2.m3.n2.f:congr W | |
516 | +other num:pl:inst:m1.m2.m3.f.n2:congr W | |
517 | +other num:pl:inst:m1.m2.m3.f.n1.n2.p1.p2:congr W | |
518 | +other num:pl:inst:f:congr W | |
519 | +other num:pl:gen:n1.p1.p2:rec W | |
520 | +other num:pl:gen.loc:m1.m2.m3.n2.f:congr W | |
521 | +other num:pl:gen.loc:m1.m2.m3.f.n1.n2.p1.p2:congr W | |
522 | +other num:pl:gen.dat.loc:m1.m2.m3.n2.f:congr W | |
523 | +other num:pl:gen.dat.inst.loc:m1.m2.m3.f.n2:congr W | |
524 | +other num:pl:gen.dat.inst.loc:m1.m2.m3.f.n1.n2.p1.p2:congr W | |
525 | +other num:pl:dat:m1.m2.m3.n2.f:congr W | |
526 | +other num:pl:dat.loc:n1.p1.p2:congr.rec W | |
527 | +other num:pl:acc:m1:rec W | |
528 | +other num:comp W | |
529 | +other interj W | |
530 | +verb inf:perf I | |
531 | +verb inf:imperf.perf I | |
532 | +verb inf:imperf I | |
533 | +verb impt:sg:sec:perf Ma | |
534 | +verb impt:sg:sec:imperf.perf Ma | |
535 | +verb impt:sg:sec:imperf Ma | |
536 | +verb impt:pl:sec:perf Mb | |
537 | +verb impt:pl:sec:imperf.perf Mb | |
538 | +verb impt:pl:sec:imperf Mb | |
539 | +verb impt:pl:pri:perf Mc | |
540 | +verb impt:pl:pri:imperf.perf Mc | |
541 | +verb impt:pl:pri:imperf Mc | |
542 | +verb imps:perf N | |
543 | +verb imps:imperf.perf N | |
544 | +verb imps:imperf N | |
545 | +verb ger:sg:nom.acc:n2:perf:aff Xa | |
546 | +verb ger:sg:nom.acc:n2:imperf:aff Xa | |
547 | +verb ger:sg:nom.acc:n2:imperf.perf:aff Xa | |
548 | +verb ger:sg:inst:n2:perf:aff Xb | |
549 | +verb ger:sg:inst:n2:imperf:aff Xb | |
550 | +verb ger:sg:inst:n2:imperf.perf:aff Xb | |
551 | +verb ger:sg:gen:n2:perf:aff Xc | |
552 | +verb ger:sg:gen:n2:imperf:aff Xc | |
553 | +verb ger:sg:gen:n2:imperf.perf:aff Xc | |
554 | +verb ger:sg:dat.loc:n2:perf:aff Xd | |
555 | +verb ger:sg:dat.loc:n2:imperf:aff Xd | |
556 | +verb ger:sg:dat.loc:n2:imperf.perf:aff Xd | |
557 | +verb ger:pl:nom.acc:n2:perf:aff Xe | |
558 | +verb ger:pl:nom.acc:n2:imperf:aff Xe | |
559 | +verb ger:pl:nom.acc:n2:imperf.perf:aff Xe | |
560 | +verb ger:pl:loc:n2:perf:aff Xf | |
561 | +verb ger:pl:loc:n2:imperf:aff Xf | |
562 | +verb ger:pl:loc:n2:imperf.perf:aff Xf | |
563 | +verb ger:pl:inst:n2:perf:aff Xg | |
564 | +verb ger:pl:inst:n2:imperf:aff Xg | |
565 | +verb ger:pl:inst:n2:imperf.perf:aff Xg | |
566 | +verb ger:pl:gen:n2:perf:aff Xh | |
567 | +verb ger:pl:gen:n2:imperf:aff Xh | |
568 | +verb ger:pl:gen:n2:imperf.perf:aff Xh | |
569 | +verb ger:pl:dat:n2:perf:aff Xi | |
570 | +verb ger:pl:dat:n2:imperf:aff Xi | |
571 | +verb ger:pl:dat:n2:imperf.perf:aff Xi | |
572 | +verb fin:sg:ter:perf La | |
573 | +verb fin:sg:ter:imperf.perf La | |
574 | +verb fin:sg:ter:imperf La | |
575 | +verb fin:sg:sec:perf Lb | |
576 | +verb fin:sg:sec:imperf.perf Lb | |
577 | +verb fin:sg:sec:imperf Lb | |
578 | +verb fin:sg:pri:perf Lc | |
579 | +verb fin:sg:pri:imperf.perf Lc | |
580 | +verb fin:sg:pri:imperf Lc | |
581 | +verb fin:pl:ter:perf Ld | |
582 | +verb fin:pl:ter:imperf.perf Ld | |
583 | +verb fin:pl:ter:imperf Ld | |
584 | +verb fin:pl:sec:perf Le | |
585 | +verb fin:pl:sec:imperf.perf Le | |
586 | +verb fin:pl:sec:imperf Le | |
587 | +verb fin:pl:pri:perf Lf | |
588 | +verb fin:pl:pri:imperf.perf Lf | |
589 | +verb fin:pl:pri:imperf Lf | |
590 | +noun depr:pl:voc:m2 Hv | |
591 | +noun depr:pl:nom:m2 Hn | |
592 | +other conj W | |
593 | +verb cond:sg:n1.n2:ter:perf Ka | |
594 | +verb cond:sg:n1.n2:ter:imperf.perf Ka | |
595 | +verb cond:sg:n1.n2:ter:imperf Ka | |
596 | +verb cond:sg:n1.n2:sec:perf Kb | |
597 | +verb cond:sg:n1.n2:sec:imperf.perf Kb | |
598 | +verb cond:sg:n1.n2:sec:imperf Kb | |
599 | +verb cond:sg:n1.n2:pri:perf Kc | |
600 | +verb cond:sg:n1.n2:pri:imperf.perf Kc | |
601 | +verb cond:sg:n1.n2:pri:imperf Kc | |
602 | +verb cond:sg:n1.n2:perf Kd | |
603 | +verb cond:sg:n1.n2:imperf.perf Kd | |
604 | +verb cond:sg:n1.n2:imperf Kd | |
605 | +verb cond:sg:m1.m2.m3:ter:perf Ke | |
606 | +verb cond:sg:m1.m2.m3:ter:imperf.perf Ke | |
607 | +verb cond:sg:m1.m2.m3:ter:imperf Ke | |
608 | +verb cond:sg:m1.m2.m3:sec:perf Kf | |
609 | +verb cond:sg:m1.m2.m3:sec:imperf.perf Kf | |
610 | +verb cond:sg:m1.m2.m3:sec:imperf Kf | |
611 | +verb cond:sg:m1.m2.m3:pri:perf Kg | |
612 | +verb cond:sg:m1.m2.m3:pri:imperf.perf Kg | |
613 | +verb cond:sg:m1.m2.m3:pri:imperf Kg | |
614 | +verb cond:sg:f:ter:perf Kh | |
615 | +verb cond:sg:f:ter:imperf.perf Kh | |
616 | +verb cond:sg:f:ter:imperf Kh | |
617 | +verb cond:sg:f:sec:perf Ki | |
618 | +verb cond:sg:f:sec:imperf.perf Ki | |
619 | +verb cond:sg:f:sec:imperf Ki | |
620 | +verb cond:sg:f:pri:perf Kj | |
621 | +verb cond:sg:f:pri:imperf.perf Kj | |
622 | +verb cond:sg:f:pri:imperf Kj | |
623 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:ter:perf Kk | |
624 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf.perf Kk | |
625 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:ter:imperf Kk | |
626 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:sec:perf Kl | |
627 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf.perf Kl | |
628 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:sec:imperf Kl | |
629 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:pri:perf Km | |
630 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf.perf Km | |
631 | +verb cond:pl:m2.m3.f.n1.n2.p2.p3:pri:imperf Km | |
632 | +verb cond:pl:m1.p1:ter:perf Kn | |
633 | +verb cond:pl:m1.p1:ter:imperf.perf Kn | |
634 | +verb cond:pl:m1.p1:ter:imperf Kn | |
635 | +verb cond:pl:m1.p1:sec:perf Ko | |
636 | +verb cond:pl:m1.p1:sec:imperf.perf Ko | |
637 | +verb cond:pl:m1.p1:sec:imperf Ko | |
638 | +verb cond:pl:m1.p1:pri:perf Kp | |
639 | +verb cond:pl:m1.p1:pri:imperf.perf Kp | |
640 | +verb cond:pl:m1.p1:pri:imperf Kp | |
641 | +other comp W | |
642 | +other burk W | |
643 | +other brev:pun W | |
644 | +other brev:npun W | |
645 | +other bedzie:sg:ter:imperf W | |
646 | +other bedzie:sg:sec:imperf W | |
647 | +other bedzie:sg:pri:imperf W | |
648 | +other bedzie:pl:ter:imperf W | |
649 | +other bedzie:pl:sec:imperf W | |
650 | +other bedzie:pl:pri:imperf W | |
651 | +other aglt:sg:sec:imperf:wok W | |
652 | +other aglt:sg:sec:imperf:nwok W | |
653 | +other aglt:sg:pri:imperf:wok W | |
654 | +other aglt:sg:pri:imperf:nwok W | |
655 | +other aglt:pl:sec:imperf:wok W | |
656 | +other aglt:pl:sec:imperf:nwok W | |
657 | +other aglt:pl:pri:imperf:wok W | |
658 | +other aglt:pl:pri:imperf:nwok W | |
659 | +adv-sup adv:sup W | |
660 | +adv adv:pos W | |
661 | +adv-com adv:com W | |
662 | +adv adv W | |
663 | +adj adjp F | |
664 | +adj adjc E | |
665 | +adj adja D | |
666 | +adj adj:sg:nom:n1.n2:pos Ax | |
667 | +adj adj:sg:nom:m1.m2.m3:pos Ay | |
668 | +adj adj:sg:nom:f:pos Az | |
669 | +adj adj:sg:nom.voc:n1.n2:pos Aa | |
670 | +adj-com adj:sg:nom.voc:n1.n2:com Ba | |
671 | +adj adj:sg:nom.voc:m1.m2.m3:pos Ab | |
672 | +adj-com adj:sg:nom.voc:m1.m2.m3:com Bb | |
673 | +adj adj:sg:nom.voc:f:pos Ac | |
674 | +adj-com adj:sg:nom.voc:f:com Bc | |
675 | +adj adj:sg:loc:m1.m2.m3.n1.n2:pos Ad | |
676 | +adj-com adj:sg:loc:m1.m2.m3.n1.n2:com Bd | |
677 | +adj adj:sg:loc:f:pos Ae | |
678 | +adj-com adj:sg:loc:f:com Be | |
679 | +adj adj:sg:inst:m1.m2.m3.n1.n2:pos Af | |
680 | +adj-com adj:sg:inst:m1.m2.m3.n1.n2:com Bf | |
681 | +adj adj:sg:inst:f:pos Ag | |
682 | +adj-com adj:sg:inst:f:com Bg | |
683 | +adj adj:sg:gen:m1.m2.m3.n1.n2:pos Ah | |
684 | +adj-com adj:sg:gen:m1.m2.m3.n1.n2:com Bh | |
685 | +adj adj:sg:gen:f:pos Ai | |
686 | +adj-com adj:sg:gen:f:com Bi | |
687 | +adj adj:sg:dat:m1.m2.m3.n1.n2:pos Aj | |
688 | +adj-com adj:sg:dat:m1.m2.m3.n1.n2:com Bj | |
689 | +adj adj:sg:dat:f:pos Ak | |
690 | +adj-com adj:sg:dat:f:com Bk | |
691 | +adj adj:sg:acc:n1.n2:pos Al | |
692 | +adj-com adj:sg:acc:n1.n2:com Bl | |
693 | +adj adj:sg:acc:m3:pos Am | |
694 | +adj-com adj:sg:acc:m3:com Bm | |
695 | +adj adj:sg:acc:m1.m2:pos An | |
696 | +adj-com adj:sg:acc:m1.m2:com Bn | |
697 | +adj adj:sg:acc:f:pos Ao | |
698 | +adj-com adj:sg:acc:f:com Bo | |
699 | +adj adj:pl:nom:m2.m3.f.n1.n2.p2.p3:pos A! | |
700 | +adj adj:pl:nom:m1.p1:pos A@ | |
701 | +adj adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:pos Ap | |
702 | +adj-com adj:pl:nom.voc:m2.m3.f.n1.n2.p2.p3:com Bp | |
703 | +adj adj:pl:nom.voc:m1.p1:pos Aq | |
704 | +adj-com adj:pl:nom.voc:m1.p1:com Bq | |
705 | +adj adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:pos Ar | |
706 | +adj-com adj:pl:loc:m1.m2.m3.f.n1.n2.p1.p2.p3:com Br | |
707 | +adj adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:pos As | |
708 | +adj-com adj:pl:inst:m1.m2.m3.f.n1.n2.p1.p2.p3:com Bs | |
709 | +adj adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:pos At | |
710 | +adj-com adj:pl:gen:m1.m2.m3.f.n1.n2.p1.p2.p3:com Bt | |
711 | +adj adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:pos Au | |
712 | +adj-com adj:pl:dat:m1.m2.m3.f.n1.n2.p1.p2.p3:com Bu | |
713 | +adj adj:pl:acc:m2.m3.f.n1.n2.p2.p3:pos Av | |
714 | +adj-com adj:pl:acc:m2.m3.f.n1.n2.p2.p3:com Bv | |
715 | +adj adj:pl:acc:m1.p1:pos Aw | |
716 | +adj-com adj:pl:acc:m1.p1:com Bw | |
717 | +verb pacta XYZ | |
... | ... |
guesser/generate.ml
... | ... | @@ -115,7 +115,7 @@ let tag_compare x y = |
115 | 115 | |
116 | 116 | let combine_interps interps = |
117 | 117 | let map = Xlist.fold interps StringMap.empty (fun map interp -> |
118 | - match Xlist.map (Str.split (Str.regexp ":") interp) (Str.split (Str.regexp "\\.")) with | |
118 | + match Xlist.map (Xstring.split ":" interp) (Xstring.split "\\.") with | |
119 | 119 | [cat] :: tags -> StringMap.add_inc map cat [tags] (fun l -> tags :: l) |
120 | 120 | | _ -> failwith "combine_interps") in |
121 | 121 | let map = StringMap.mapi map (fun cat interp -> |
... | ... | @@ -138,25 +138,25 @@ let combine_interps interps = |
138 | 138 | |
139 | 139 | let load_tab filename = |
140 | 140 | File.load_tab filename (function |
141 | -(* let l = Str.split_delim (Str.regexp "\n") (File.load_file filename) in | |
141 | +(* let l = Xstring.split_delim "\n" (File.load_file filename) in | |
142 | 142 | List.rev (Xlist.fold l [] (fun l line -> |
143 | 143 | if String.length line = 0 then l else |
144 | 144 | if String.get line 0 = '#' then l else |
145 | 145 | let line = if String.get line (String.length line - 1) = '\r' then |
146 | 146 | String.sub line 0 (String.length line - 1) else line in |
147 | - match Str.split (Str.regexp "\t") line with*) | |
147 | + match Xstring.split "\t" line with*) | |
148 | 148 | orth :: lemma :: interp :: _ -> orth,lemma,interp |
149 | 149 | | line -> failwith ("load_tab: " ^ (String.concat "\t" line))) |
150 | 150 | |
151 | 151 | let load_tab_full filename = |
152 | 152 | File.load_tab filename (function |
153 | -(* let l = Str.split_delim (Str.regexp "\n") (File.load_file filename) in | |
153 | +(* let l = Xstring.split_delim "\n" (File.load_file filename) in | |
154 | 154 | List.rev (Xlist.fold l [] (fun l line -> |
155 | 155 | if String.length line = 0 then l else |
156 | 156 | if String.get line 0 = '#' then l else |
157 | 157 | let line = if String.get line (String.length line - 1) = '\r' then |
158 | 158 | String.sub line 0 (String.length line - 1) else line in |
159 | - match Str.split (Str.regexp "\t") line with*) | |
159 | + match Xstring.split "\t" line with*) | |
160 | 160 | [orth; lemma; interp] -> orth,lemma,interp,"","" |
161 | 161 | | [orth; lemma; interp; cl] -> orth,lemma,interp,cl,"" |
162 | 162 | | [orth; lemma; interp; cl; cl2] -> orth,lemma,interp,cl,cl2 |
... | ... | @@ -210,7 +210,7 @@ let split_dict path filename = |
210 | 210 | File.file_out (path ^ "verb_" ^ filename) (fun verb_file -> |
211 | 211 | File.file_out (path ^ "other_" ^ filename) (fun other_file -> |
212 | 212 | Xlist.iter dict (fun (orth,lemma,interp) -> |
213 | - let cat,tags = match Str.split (Str.regexp ":") interp with | |
213 | + let cat,tags = match Xstring.split ":" interp with | |
214 | 214 | cat :: tags -> cat,tags |
215 | 215 | | _ -> failwith ("split_dict: " ^ interp) in |
216 | 216 | if cat = "subst" || cat = "depr" then |
... | ... | @@ -315,8 +315,8 @@ let find_kolwiek_suffixes morfs = |
315 | 315 | if StringSet.mem kolwiek_lemmas lemma then |
316 | 316 | Xlist.map interps (fun (orth,interp) -> |
317 | 317 | (Xlist.fold kolwiek_suffixes orth (fun orth kolwiek_suf -> |
318 | - if Rules.check_sufix kolwiek_suf orth then | |
319 | - Rules.cut_sufix kolwiek_suf orth | |
318 | + if Xstring.check_sufix kolwiek_suf orth then | |
319 | + Xstring.cut_sufix kolwiek_suf orth | |
320 | 320 | else orth)), interp) |
321 | 321 | else interps) |
322 | 322 | |
... | ... | @@ -418,7 +418,7 @@ let _ = |
418 | 418 | |
419 | 419 | let remove_com_sup dict = |
420 | 420 | List.rev (Xlist.fold dict [] (fun l (orth,lemma,interp) -> |
421 | - if Rules.check_sufix ":com" interp || Rules.check_sufix ":sup" interp then l else (orth,lemma,interp) :: l)) | |
421 | + if Xstring.check_sufix ":com" interp || Xstring.check_sufix ":sup" interp then l else (orth,lemma,interp) :: l)) | |
422 | 422 | |
423 | 423 | let generate_adj_pos_rules rules_filename dict = |
424 | 424 | let dict = map_of_tab dict in |
... | ... | @@ -440,11 +440,11 @@ let split_into_groups interp_sel dict = |
440 | 440 | |
441 | 441 | let load_interp_sel filename = |
442 | 442 | File.fold_tab filename StringMap.empty (fun interp_sel -> function |
443 | -(* let l = Str.split_delim (Str.regexp "\n") (File.load_file filename) in | |
443 | +(* let l = Xstring.split_delim "\n" (File.load_file filename) in | |
444 | 444 | Xlist.fold l StringMap.empty (fun interp_sel line -> |
445 | 445 | if String.length line = 0 then interp_sel else |
446 | 446 | if String.get line 0 = '#' then interp_sel else |
447 | - match Str.split (Str.regexp "\t") line with*) | |
447 | + match Xstring.split "\t" line with*) | |
448 | 448 | (* [group;interp;label] -> Strcut_prefixingMap.add_inc interp_sel group [interp,label] (fun l -> (interp,label) :: l) *) |
449 | 449 | [group;interp;label] -> StringMap.add interp_sel interp group |
450 | 450 | | line -> failwith ("load_interp_sel: " ^ (String.concat "\t" line))) |
... | ... | @@ -657,7 +657,7 @@ let find_not_parsed_entries path filename out_filename = |
657 | 657 | let not_parsed = Xlist.fold dict [] (fun not_parsed (orth,lemma,interp) -> |
658 | 658 | (* printf "E %s\t%s\t%s\n" orth lemma interp; *) |
659 | 659 | let simple_lemma = Rules.simplify_lemma lemma in |
660 | - let forms = Rules.find_char_tree_suf rules orth in | |
660 | + let forms = Rules.CharTrees.find rules orth in | |
661 | 661 | (* printf "S %d\n" (Xlist.size forms); *) |
662 | 662 | let forms = Xlist.fold forms [] (fun forms (stem,rule) -> |
663 | 663 | (* printf "R %s\t%s\n" stem (Rules.string_of_rule rule); *) |
... | ... | @@ -679,7 +679,7 @@ let print_interp_rules con_flag group_flag lemma_flag path filename out_filename |
679 | 679 | let interp_rules = Xlist.fold dict StringMap.empty (fun interp_rules (orth,lemma,interp) -> |
680 | 680 | (* printf "E %s\t%s\t%s\n" orth lemma interp; *) |
681 | 681 | let simple_lemma = Rules.simplify_lemma lemma in |
682 | - let forms = Rules.find_char_tree_suf rules orth in | |
682 | + let forms = Rules.CharTrees.find rules orth in | |
683 | 683 | (* printf "S %d\n" (Xlist.size forms); *) |
684 | 684 | let forms = Xlist.fold forms [] (fun forms (stem,rule) -> |
685 | 685 | if stem ^ rule.Rules.set = simple_lemma then (stem,rule) :: forms else forms) in |
... | ... | @@ -719,8 +719,8 @@ let _ = |
719 | 719 | (*** |
720 | 720 | let expand_tags tags = |
721 | 721 | if tags = "" then [] else |
722 | - List.flatten (Xlist.map (Str.split (Str.regexp "|") tags) (fun tags -> | |
723 | - let tags = Xlist.map (Str.split (Str.regexp ":") tags) (Str.split (Str.regexp "\\.")) in | |
722 | + List.flatten (Xlist.map (Xstring.split "|" tags) (fun tags -> | |
723 | + let tags = Xlist.map (Xstring.split ":" tags) (Xstring.split "\\.") in | |
724 | 724 | Xlist.map (Xlist.multiply_list tags) (String.concat ":"))) |
725 | 725 | |
726 | 726 | let prepare_rules l = |
... | ... |
guesser/ruleGenerator.ml
... | ... | @@ -151,8 +151,8 @@ let cut_prefixn i s = |
151 | 151 | let rule_code (a,b) = |
152 | 152 | let s = sprintf "%s\t%s" a b in |
153 | 153 | try StringMap.find rule_types s, true with Not_found -> |
154 | - if Rules.check_prefix b a then | |
155 | - let suf = Rules.cut_prefix b a in | |
154 | + if Xstring.check_prefix b a then | |
155 | + let suf = Xstring.cut_prefix b a in | |
156 | 156 | suf ^ "_" ^ (String.concat "_" (List.rev (Xunicode.utf8_chars_of_utf8_string(*Stem.text_to_chars*) b))), false |
157 | 157 | else "???", false |
158 | 158 | |
... | ... | @@ -168,7 +168,7 @@ let rec classify_entry lemma stem forms = function |
168 | 168 | let l = Xlist.fold forms [] (fun l (orth,interp) -> |
169 | 169 | if interp = class_interp then orth :: l else l) in |
170 | 170 | let b = Xlist.fold l false (fun b orth -> |
171 | - if Rules.check_sufix suf orth then true else b) in | |
171 | + if Xstring.check_sufix suf orth then true else b) in | |
172 | 172 | if b then cl else classify_entry lemma stem forms class_sel |
173 | 173 | (* let l = StringSet.to_list (Xlist.fold l StringSet.empty (fun set orth -> |
174 | 174 | if check_prefix stem orth then |
... | ... | @@ -227,7 +227,7 @@ let generate_rules_com_entry cat rules lemma forms = |
227 | 227 | (* let cl = classify_entry lemma stem forms entry_classes in *) |
228 | 228 | let forms = Rules.select_not_validated lemma forms in |
229 | 229 | Xlist.fold forms rules (fun rules (orth,interp) -> |
230 | - if not (Rules.check_sufix ":com" interp) then rules else | |
230 | + if not (Xstring.check_sufix ":com" interp) then rules else | |
231 | 231 | let rule = "\t" ^ generate_rule stem stem_pref orth in |
232 | 232 | let rules2 = try StringMap.find rules interp with Not_found -> StringMap.empty in |
233 | 233 | let rules2 = StringMap.add_inc rules2 rule (1,[lemma]) (fun (q,l) -> q+1, if q < 20 then lemma :: l else l) in |
... | ... |
guesser/rules.ml
... | ... | @@ -11,8 +11,8 @@ let parse_name s = |
11 | 11 | else failwith ("parse_name: invalid name " ^ s) |
12 | 12 | |
13 | 13 | let parse_tags s = |
14 | - Xlist.map (Str.split (Str.regexp " ") s) (fun t -> | |
15 | - match Str.split (Str.regexp "=") t with | |
14 | + Xlist.map (Xstring.split " " s) (fun t -> | |
15 | + match Xstring.split "=" t with | |
16 | 16 | [k] -> A k |
17 | 17 | | [k;v] -> T(k,v) |
18 | 18 | | _ -> failwith "parse_tags") |
... | ... | @@ -115,28 +115,6 @@ let schemata = File.load_tab "data/schemata.dic" (fun l -> l) |
115 | 115 | |
116 | 116 | (**********************************************************************************************) |
117 | 117 | |
118 | -let check_prefix pat s = | |
119 | - let n = String.length pat in | |
120 | - if n > String.length s then false else | |
121 | - String.sub s 0 n = pat | |
122 | - | |
123 | -let cut_prefix pat s = | |
124 | - let i = String.length pat in | |
125 | - let n = String.length s in | |
126 | - if i >= n then "" else | |
127 | - try String.sub s i (n-i) with _ -> failwith ("cut_prefix: " ^ s ^ " " ^ string_of_int i) | |
128 | - | |
129 | -let check_sufix pat s = | |
130 | - let n = String.length pat in | |
131 | - let m = String.length s in | |
132 | - if n > m then false else | |
133 | - String.sub s (m-n) n = pat | |
134 | - | |
135 | -let cut_sufix pat s = | |
136 | - let i = String.length pat in | |
137 | - let n = String.length s in | |
138 | - try String.sub s 0 (n-i) with _ -> failwith ("cut_sufix: " ^ pat ^ " " ^ s) | |
139 | - | |
140 | 118 | let rec extract_tag s rev = function |
141 | 119 | [] -> "", List.rev rev |
142 | 120 | | (k,v) :: l -> if s = k then v, List.rev rev @ l else extract_tag s ((k,v) :: rev) l |
... | ... | @@ -152,12 +130,12 @@ let create_compound_rules schemata rule_map = |
152 | 130 | if rule.find = "" && rule.set = "" then |
153 | 131 | {compound with star=merge_stars (compound.star, rule.star); |
154 | 132 | pref=compound.pref ^ rule.pref; tags=rule.tags@compound.tags} :: compounds |
155 | - else if check_sufix compound.set rule.find then | |
133 | + else if Xstring.check_sufix compound.set rule.find then | |
156 | 134 | {compound with star=merge_stars (compound.star, rule.star); |
157 | - find=cut_sufix compound.set rule.find ^ compound.find; set=rule.set; tags=rule.tags@compound.tags} :: compounds | |
158 | - else if check_sufix rule.find compound.set then | |
135 | + find=Xstring.cut_sufix compound.set rule.find ^ compound.find; set=rule.set; tags=rule.tags@compound.tags} :: compounds | |
136 | + else if Xstring.check_sufix rule.find compound.set then | |
159 | 137 | {compound with star=merge_stars (compound.star, rule.star); |
160 | - find=compound.find; set=cut_sufix rule.find compound.set ^ rule.set; tags=rule.tags@compound.tags} :: compounds | |
138 | + find=compound.find; set=Xstring.cut_sufix rule.find compound.set ^ rule.set; tags=rule.tags@compound.tags} :: compounds | |
161 | 139 | else compounds))) in |
162 | 140 | compounds @ found) in |
163 | 141 | let found = Xlist.rev_map found (fun rule -> |
... | ... | @@ -205,47 +183,51 @@ let load_interp_rules filename = |
205 | 183 | tags=expand_tags_simple (parse_tags tags); interp=interp; (*comment=comment*)} |
206 | 184 | | line -> failwith ("load_tab: " ^ (String.concat "\t" line))) |
207 | 185 | |
208 | -type interp_tree = | |
209 | - N of string * interp_tree StringMap.t * rule list | |
210 | - | L of rule list | |
211 | - | |
212 | -let empty_interp_tree = L [] | |
213 | - | |
214 | -let rec create_interp_tree_rec rule = function | |
215 | - [],N(key,map,rules) -> N(key,map,rule :: rules) | |
216 | - | [],L rules -> L(rule :: rules) | |
217 | - | (k,v) :: tags,N(key,map,rules) -> | |
218 | - if k <> key then failwith ("create_interp_tree_rec: " ^ k ^ " " ^ key) else | |
219 | - let tree = try StringMap.find map v with Not_found -> empty_interp_tree in | |
220 | - let tree = create_interp_tree_rec rule (tags,tree) in | |
221 | - N(key,StringMap.add map v tree,rules) | |
222 | - | (k,v) :: tags,L rules -> | |
223 | - let tree = create_interp_tree_rec rule (tags,empty_interp_tree) in | |
224 | - N(k,StringMap.add StringMap.empty v tree,rules) | |
225 | - | |
226 | -let create_interp_tree interp_rules = | |
227 | - Xlist.fold interp_rules empty_interp_tree (fun interp_tree rule -> | |
228 | - let tags = Xlist.sort rule.tags compare_tag2 in | |
229 | - create_interp_tree_rec rule (tags,interp_tree)) | |
230 | - | |
231 | -let rec find_interp_tree_rec = function | |
232 | - [],N(_,_,rules) -> rules | |
233 | - | _,L rules -> rules | |
234 | - | (k,v) :: tags,N(key,map,rules) -> | |
235 | - if k <> key then find_interp_tree_rec (tags,N(key,map,rules)) else | |
236 | - try rules @ (find_interp_tree_rec (tags,StringMap.find map v)) | |
237 | - with Not_found -> rules | |
238 | - | |
239 | -let find_interp_tree interp_tree tags = | |
240 | - find_interp_tree_rec (Xlist.sort tags compare_tag2,interp_tree) | |
241 | - | |
242 | -let interp_tree = create_interp_tree (load_interp_rules "data/interp_rules.dic") | |
186 | +module InterpTree = struct | |
187 | + | |
188 | + type t = | |
189 | + N of string * t StringMap.t * rule list | |
190 | + | L of rule list | |
191 | + | |
192 | + let empty = L [] | |
193 | + | |
194 | + let rec create_rec rule = function | |
195 | + [],N(key,map,rules) -> N(key,map,rule :: rules) | |
196 | + | [],L rules -> L(rule :: rules) | |
197 | + | (k,v) :: tags,N(key,map,rules) -> | |
198 | + if k <> key then failwith ("create_rec: " ^ k ^ " " ^ key) else | |
199 | + let tree = try StringMap.find map v with Not_found -> empty in | |
200 | + let tree = create_rec rule (tags,tree) in | |
201 | + N(key,StringMap.add map v tree,rules) | |
202 | + | (k,v) :: tags,L rules -> | |
203 | + let tree = create_rec rule (tags,empty) in | |
204 | + N(k,StringMap.add StringMap.empty v tree,rules) | |
205 | + | |
206 | + let create interp_rules = | |
207 | + Xlist.fold interp_rules empty (fun interp_tree rule -> | |
208 | + let tags = Xlist.sort rule.tags compare_tag2 in | |
209 | + create_rec rule (tags,interp_tree)) | |
210 | + | |
211 | + let rec find_rec = function | |
212 | + [],N(_,_,rules) -> rules | |
213 | + | _,L rules -> rules | |
214 | + | (k,v) :: tags,N(key,map,rules) -> | |
215 | + if k <> key then find_rec (tags,N(key,map,rules)) else | |
216 | + try rules @ (find_rec (tags,StringMap.find map v)) | |
217 | + with Not_found -> rules | |
218 | + | |
219 | + let find interp_tree tags = | |
220 | + find_rec (Xlist.sort tags compare_tag2,interp_tree) | |
221 | + | |
222 | +end | |
223 | + | |
224 | +let interp_tree = InterpTree.create (load_interp_rules "data/interp_rules.dic") | |
243 | 225 | |
244 | 226 | (**********************************************************************************************) |
245 | 227 | |
246 | 228 | let create_interp_compound_rules interp_tree compound_rules = |
247 | 229 | Xlist.fold compound_rules [] (fun interp_compound_rules rule -> |
248 | - let interp_rules = find_interp_tree interp_tree rule.tags in | |
230 | + let interp_rules = InterpTree.find interp_tree rule.tags in | |
249 | 231 | Xlist.fold interp_rules interp_compound_rules (fun interp_compound_rules interp_rule -> |
250 | 232 | {rule with interp=interp_rule.interp; star=merge_stars (rule.star, interp_rule.star)} :: interp_compound_rules)) |
251 | 233 | |
... | ... | @@ -253,56 +235,49 @@ let interp_compound_rules = create_interp_compound_rules interp_tree compound_ru |
253 | 235 | |
254 | 236 | (**********************************************************************************************) |
255 | 237 | |
256 | -module OrderedChar = struct | |
257 | - | |
258 | - type t = char | |
259 | - | |
260 | - let compare = compare | |
238 | +module CharTrees = struct | |
239 | + | |
240 | + type t = M of t CharMap.t * rule list | |
241 | + | |
242 | + let empty = M(CharMap.empty,[]) | |
243 | + | |
244 | + let rec add_path_rules rule orth_suf i (M(map,rules)) = | |
245 | + if i = -1 then M(map,rule :: rules) else | |
246 | + let tree = try CharMap.find map (String.get orth_suf i) with Not_found -> empty in | |
247 | + let tree = add_path_rules rule orth_suf (i-1) tree in | |
248 | + M(CharMap.add map (String.get orth_suf i) tree,rules) | |
249 | + | |
250 | + let create_char_tree rules = | |
251 | + let tree = Xlist.fold rules empty (fun tree rule -> | |
252 | + add_path_rules rule rule.find (String.length rule.find - 1) tree) in | |
253 | + tree | |
254 | + | |
255 | + let create rules = | |
256 | + let prefix_map = Xlist.fold rules StringMap.empty (fun prefix_map rule -> | |
257 | + StringMap.add_inc prefix_map rule.pref [rule] (fun l -> rule :: l)) in | |
258 | + StringMap.fold prefix_map [] (fun trees prefix rules -> (prefix, create_char_tree rules) :: trees) | |
259 | + | |
260 | + let rec find_rec l i orth (M(map,rules)) = | |
261 | + if i = 0 then Xlist.fold rules l (fun l rule -> ("", rule) :: l) else | |
262 | + let l = try find_rec l (i-1) orth (CharMap.find map (String.get orth (i-1))) with Not_found -> l in | |
263 | + Xlist.fold rules l (fun l rule -> (String.sub orth 0 i, rule) :: l) | |
264 | + | |
265 | + let find trees orth = | |
266 | + Xlist.fold trees [] (fun found (pref,tree) -> | |
267 | + (* print_endline pref; *) | |
268 | + if Xstring.check_prefix pref orth then ( | |
269 | + let orth = Xstring.cut_prefix pref orth in | |
270 | + (* printf "%s %d " orth (Xlist.size found); *) | |
271 | + let found = find_rec found (String.length orth) orth tree in | |
272 | + (* printf "%d\n%!" (Xlist.size found); *) | |
273 | + (* Xlist.iter found (fun (stem,rule) -> printf "F %s\t%s\n" stem (string_of_rule rule)); *) | |
274 | + found) | |
275 | + else found) | |
261 | 276 | |
262 | 277 | end |
263 | 278 | |
264 | -module CharMap = Xmap.Make(OrderedChar) | |
265 | - | |
266 | -type char_tree_suf = M of char_tree_suf CharMap.t * rule list | |
267 | - (* następne możliwości * rule list *) | |
268 | - | |
269 | -let empty_char_tree_suf = M(CharMap.empty,[]) | |
270 | - | |
271 | -let rec add_path_rules rule orth_suf i (M(map,rules)) = | |
272 | - if i = -1 then M(map,rule :: rules) else | |
273 | - let tree = try CharMap.find map (String.get orth_suf i) with Not_found -> empty_char_tree_suf in | |
274 | - let tree = add_path_rules rule orth_suf (i-1) tree in | |
275 | - M(CharMap.add map (String.get orth_suf i) tree,rules) | |
276 | - | |
277 | -let create_char_tree rules = | |
278 | - let tree = Xlist.fold rules empty_char_tree_suf (fun tree rule -> | |
279 | - add_path_rules rule rule.find (String.length rule.find - 1) tree) in | |
280 | - tree | |
281 | - | |
282 | -let create_char_trees rules = | |
283 | - let prefix_map = Xlist.fold rules StringMap.empty (fun prefix_map rule -> | |
284 | - StringMap.add_inc prefix_map rule.pref [rule] (fun l -> rule :: l)) in | |
285 | - StringMap.fold prefix_map [] (fun trees prefix rules -> (prefix, create_char_tree rules) :: trees) | |
286 | - | |
287 | -let rec find_char_tree_rec l i orth (M(map,rules)) = | |
288 | - if i = 0 then Xlist.fold rules l (fun l rule -> ("", rule) :: l) else | |
289 | - let l = try find_char_tree_rec l (i-1) orth (CharMap.find map (String.get orth (i-1))) with Not_found -> l in | |
290 | - Xlist.fold rules l (fun l rule -> (String.sub orth 0 i, rule) :: l) | |
291 | - | |
292 | -let find_char_tree trees orth = | |
293 | - Xlist.fold trees [] (fun found (pref,tree) -> | |
294 | - (* print_endline pref; *) | |
295 | - if check_prefix pref orth then ( | |
296 | - let orth = cut_prefix pref orth in | |
297 | - (* printf "%s %d " orth (Xlist.size found); *) | |
298 | - let found = find_char_tree_rec found (String.length orth) orth tree in | |
299 | - (* printf "%d\n%!" (Xlist.size found); *) | |
300 | - (* Xlist.iter found (fun (stem,rule) -> printf "F %s\t%s\n" stem (string_of_rule rule)); *) | |
301 | - found) | |
302 | - else found) | |
303 | - | |
304 | -let compound_rule_trees = create_char_trees compound_rules | |
305 | -let interp_compound_rule_trees = create_char_trees interp_compound_rules | |
279 | +let compound_rule_trees = CharTrees.create compound_rules | |
280 | +let interp_compound_rule_trees = CharTrees.create interp_compound_rules | |
306 | 281 | |
307 | 282 | (**********************************************************************************************) |
308 | 283 | (**********************************************************************************************) |
... | ... | @@ -311,10 +286,10 @@ let rec select_tag tag rev = function |
311 | 286 | [] -> "", rev |
312 | 287 | | (k,v) :: l -> if k = tag then v, rev @ l else select_tag tag ((k,v) :: rev) l |
313 | 288 | |
314 | -let is_applicable_rule rule s = check_sufix rule.find s | |
289 | +let is_applicable_rule rule s = Xstring.check_sufix rule.find s | |
315 | 290 | |
316 | 291 | let apply_rule rule s = |
317 | - (cut_sufix rule.find s) ^ rule.set | |
292 | + (Xstring.cut_sufix rule.find s) ^ rule.set | |
318 | 293 | |
319 | 294 | let apply_rules orth = |
320 | 295 | let found = Xlist.fold schemata [] (fun found schema -> |
... | ... | @@ -344,7 +319,7 @@ let validate_form orth lemma interp = |
344 | 319 | b |
345 | 320 | |
346 | 321 | let simplify_lemma s = |
347 | - match Str.split (Str.regexp ":") s with | |
322 | + match Xstring.split ":" s with | |
348 | 323 | [s] -> s |
349 | 324 | | [s;_] -> s |
350 | 325 | | _ -> failwith "simplify_lemma" |
... | ... |
guesser/stem.ml
... | ... | @@ -107,15 +107,15 @@ let lemma_stem_sel = |
107 | 107 | let map = StringMap.add map "verb" verb_stem_sel in |
108 | 108 | map |
109 | 109 | |
110 | -let is_applicable_sel (pat,_,_) s = Rules.check_sufix pat s | |
110 | +let is_applicable_sel (pat,_,_) s = Xstring.check_sufix pat s | |
111 | 111 | |
112 | 112 | let apply_sel (pat,set,_) s = |
113 | - (Rules.cut_sufix pat s) ^ set | |
113 | + (Xstring.cut_sufix pat s) ^ set | |
114 | 114 | |
115 | 115 | let get_priority (_,_,p) = p |
116 | 116 | |
117 | 117 | let simplify_lemma s = |
118 | - match Str.split (Str.regexp ":") s with | |
118 | + match Xstring.split ":" s with | |
119 | 119 | [s] -> s |
120 | 120 | | [s;_] -> s |
121 | 121 | | _ -> failwith "simplify_lemma" |
... | ... |