Commit 78e8cc501860a04eff409542a2d65e5f3f34bcea

Authored by Wojciech Jaworski
1 parent f7ed7092

Reorganizacja warstwy fonetycznej

morphology/data/alternations.dic
... ... @@ -191,7 +191,7 @@
191 191 p py p
192 192 r ry r
193 193 s sy s
194   - š šy š
  194 +# š šy š
195 195 t ty t
196 196 v vy v
197 197 z zy z
... ...
morphology/data/fonetics.dic 0 → 100644
  1 +@symbols
  2 +ω a ą e ę o ó u
  3 +δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε v x q
  4 +#γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
  5 +#ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
  6 +#μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
  7 +λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε v x q
  8 +κ b c ć d f g h i j k l ł m n ń p r s ś t w z ź ż - ε v x q
  9 +#σ a ą b c ć d e ę f g j h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
  10 +ρ aε achε amiε ąε eε ęε iε oε omε onε umε
  11 +α ε goε muε mε
  12 +ά ε goε muε
  13 +β ε chε miε mε
  14 +γ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε goε mε muε ε
  15 +
  16 +@rev_symbols
  17 +ω a ą e ę o ó u {eu}
  18 +δ a ą b c ć č d ʒ ǯ e ę f g h x i k l ł m n ń o ó p r ř s ś š t u v w y z ź ž - ε {
  19 +λ b c ć č d ʒ ǯ f g h x k l ł m n ń p r ř s ś š t v w z ź ž - ε { q
  20 +κ b c ć č d ʒ ǯ f g h x i j ʲ k l ł m n ń p r ř s ś š t v w z ź ž - ε {
  21 +ρ aε axε am′iε ąε eε ęε iε oε omε onε umε
  22 +
  23 +@rev_rules
  24 +core p′ pi ω
  25 +core p′ p i
  26 +core pj pi ρ
  27 +core b′ bi ω
  28 +core b′ b i
  29 +core bj bi ρ
  30 +core m′ mi ω
  31 +core m′ m i
  32 +core m′j mi ρ
  33 +core f′ fi ω
  34 +core f′ f i
  35 +core fj fi ρ
  36 +core v′ wi ω
  37 +core v′ w i
  38 +core v w δ
  39 +core vj wi ρ
  40 +#core v w j
  41 +core t′ ć λ
  42 +core t′ ci ω
  43 +core t′ c i
  44 +core d′ dź λ
  45 +core d′ dzi ω
  46 +core d′ dz i
  47 +core ʒ dz
  48 +core tʲ ti ω
  49 +core tʲ t i
  50 +core tj ti ρ
  51 +core dʲ di ω
  52 +core dʲ d i
  53 +core dj di ρ
  54 +core č cz δ
  55 +core čʲ czi ω
  56 +core čʲ cz i
  57 +core č cz j
  58 +core ǯ dż δ
  59 +core ǯʲ dżi ω
  60 +core ǯʲ dż i
  61 +core ǯj dżi ρ
  62 +core s′ ś λ
  63 +core s′ si ω
  64 +core s′ s i
  65 +core z′ ź λ
  66 +core z′ zi ω
  67 +core z′ z i
  68 +core š sz δ
  69 +core š sz j
  70 +core šʲ szi ω
  71 +core šʲ sz i
  72 +core ž ż δ
  73 +core žʲ żi ω
  74 +core žʲ ż i
  75 +core žj żi ρ
  76 +core lʲ li ω
  77 +core lj li ρ
  78 +core ř rz δ
  79 +core ř rz j
  80 +core rʲ ri ω
  81 +core rʲ r i
  82 +core rj ri ρ
  83 +core n′ ń λ
  84 +core n′ ni ω
  85 +core n′ n i
  86 +core n′j ni ρ
  87 +core k′ ki ω
  88 +core k′ k i
  89 +core k′j ki ρ
  90 +core g′ gi ω
  91 +core g′ g i
  92 +core g′j gi ρ
  93 +core x ch δ
  94 +core xʲ chi ω
  95 +core xʲ ch i
  96 +core xʲj chi ρ
  97 +core hʲ hi ω
  98 +core hʲ h i
  99 +core aʲ a i
  100 +core eʲ e i
  101 +core oʲ o i
  102 +core óʲ ó i
  103 +core uʲ u i
  104 +core iʲ i i
  105 +core yʲ y i
  106 +
  107 +aux {ch}š ch
  108 +aux {q}k q
  109 +aux {ng}n ng
  110 +aux {tch}č tch
  111 +aux {sh}š sh
  112 +aux {w}ł w
  113 +aux {leigh}l leigh
  114 +aux {au}ał au
  115 +aux {sch}š sch
  116 +aux {tsch}č tsch
  117 +aux {z}c z
  118 +core {lj}lj lj a
  119 +core {lj}lj lj e
  120 +core {pj}pj pj e
  121 +aux {zs}ž zs ε
  122 +aux {cs}č cs ε
  123 +
  124 +aux {ay}aj ay ε
  125 +aux {ey}ej ey ε
  126 +aux {oy}oj oy ε
  127 +aux {ay}aj ay ω
  128 +aux {ey}ej ey ω
  129 +aux {oy}oj oy ω
  130 +aux {ai}aj ai ε
  131 +aux {ai}aj ai ω
  132 +
  133 +aux {dh}dʲ dhi ω
  134 +aux {dh}dʲ dh iκ
  135 +aux {dh}d dh δ
  136 +aux {gh}g′ ghi ω
  137 +aux {gh}g′ gh iκ
  138 +aux {gh}g gh δ
  139 +aux {kh}k′ khi ω
  140 +aux {kh}k′ kh iκ
  141 +aux {kh}k kh δ
  142 +aux {nh}n′ nhi ω
  143 +aux {nh}n′ nh iκ
  144 +aux {nh}n nh δ
  145 +aux {th}tʲ thi ω
  146 +aux {th}tʲ th iκ
  147 +aux {th}t th δ
  148 +core {v}v′ vi ω
  149 +core {v}v′ v iκ
  150 +core {v}v v δ
  151 +core {v}vj vi ρ
  152 +core {x}ks′ xi ω
  153 +core {x}ks′ x iκ
  154 +core {x}ks x δ
  155 +
  156 +#lemma=e/y gender=m1
  157 +aux {dieu}dʲe dieu ε
  158 +aux {dieu}dʲi dieu ε
  159 +aux {quieu}k′e quieu ε
  160 +aux {quieu}k′i quieu ε
  161 +aux {lieu}lʲe lieu ε
  162 +aux {lieu}lʲi lieu ε
  163 +aux {rie}rʲe rie ε
  164 +aux {rie}rʲi rie ε
  165 +aux {gie}ǯʲe gie ε
  166 +aux {gie}ǯʲi gie ε
  167 +aux {kie}k′e kie ε
  168 +aux {kie}k′i kie ε
  169 +aux {tie}tʲe tie ε
  170 +aux {tie}tʲi tie ε
  171 +aux {pie}p′e pie ε
  172 +aux {pie}p′i pie ε
  173 +aux {die}dʲe die ε
  174 +aux {die}dʲi die ε
  175 +aux {bee}b′e bee ε
  176 +aux {bee}b′i bee ε
  177 +
  178 +#lemma=e gender=m1
  179 +aux {mée}me mée ε
  180 +aux {ge}g′e ge ε
  181 +aux {ke}k′e ke ε
  182 +
  183 +#lemma=y gender=m1
  184 +aux {by}b′i by ε
  185 +aux {dy}dʲi dy ε
  186 +aux {dí}dʲi dí ε
  187 +aux {phy}f′i phy ε
  188 +aux {guy}g′i guy ε
  189 +aux {ky}k′i ky ε
  190 +aux {my}m′i my ε
  191 +aux {li}li li ε
  192 +aux {ly}li ly ε
  193 +aux {ry}rʲi ry ε
  194 +core {ři}rʲi ři ε
  195 +aux {sy}sʲi sy ε
  196 +aux {cy}sʲi cy ε
  197 +aux {şi}sʲi şi ε
  198 +aux {thy}tʲi thy ε
  199 +
  200 +#lemma=e/ndm gender=m1
  201 +aux {chais}še chais ε
  202 +aux {lais}le lais ε
  203 +aux {nais}ne nais ε
  204 +aux {rès}re rès ε
  205 +aux {rés}re rés ε
  206 +aux {ré}re ré ε
  207 +
  208 +#lemma=ε
  209 +aux {de}d de ε
  210 +aux {fe}f fe ε
  211 +aux {phe}f phe ε
  212 +aux {ge}ǯ ge ε
  213 +aux {ges}ǯ ges ε
  214 +aux {gue}g gue ε
  215 +aux {gues}g gues ε
  216 +aux {ke}k ke ε
  217 +aux {que}k que ε
  218 +aux {ques}k ques ε
  219 +aux {le}l le ε
  220 +aux {les}l les ε
  221 +aux {me}m me ε
  222 +aux {ne}n ne ε
  223 +aux {gne}n′ gne ε
  224 +aux {re}r re ε
  225 +aux {rue}r rue ε
  226 +aux {se}s se ε
  227 +aux {ce}s ce ε
  228 +aux {che}š che ε
  229 +aux {te}t te ε
  230 +aux {the}t the ε
  231 +aux {ve}v ve ε
  232 +aux {we}ł we ε
  233 +aux {se}z se ε
  234 +aux {ge}ž ge ε
  235 +aux {oe}oł oe ε
  236 +
  237 +
  238 +aux g′el gel ε
  239 +
  240 +aux g′e ge ε
  241 +aux k′e ke ε
  242 +aux k′i ky ε
  243 +aux k′i kij ε
  244 +aux k′i koj ε
  245 +aux k′i kyj ε
  246 + s s k′i
  247 +aux sk′i szky ε
  248 + l l i
  249 +aux li ly ε
  250 +
  251 +aux ks x ε
  252 +aux ks kx ε
  253 +
  254 + r r a
  255 +aux r rh a
  256 + t t a
  257 +aux t th a
  258 + k k
  259 +aux k kh a
  260 +aux ks x a
  261 +aux k c a
  262 + n n a
  263 +aux n nh a
  264 + d d a
  265 +aux d dh a
  266 + g g a
  267 +aux g gh a
  268 +
  269 +aux k c o
  270 +aux kk cc o
  271 +
  272 +
  273 + b b ε
  274 +aux b bes ε
  275 + d d ε
  276 +aux d de ε
  277 +aux d dh ε
  278 + f f ε
  279 +aux f phe ε
  280 +aux f ph ε
  281 + g g ε
  282 +aux g gue ε
  283 +aux g gues ε
  284 + k k ε
  285 +aux k ke ε
  286 +aux k c ε
  287 +aux k que ε
  288 +aux k q ε
  289 +aux k cq ε
  290 +aux k ques ε
  291 +aux k cques ε
  292 +aux kt ct ε
  293 + m m ε
  294 +aux m me ε
  295 + n n ε
  296 +aux n ne ε
  297 +aux n nes ε
  298 +aux n ng ε
  299 +aux n nh ε
  300 + r r ε
  301 +aux r re ε
  302 +aux r res ε
  303 +aux r rs ε
  304 +aux r rh ε
  305 + s s ε
  306 +aux s se ε
  307 +aux s ce ε
  308 +aux s th ε
  309 + t t ε
  310 +aux t te ε
  311 +aux t tes ε
  312 +aux t thes ε
  313 +aux t th ε
  314 +aux t the ε
  315 +aux t tt ε
  316 +
  317 + e e j
  318 +aux ej ey ε
  319 +
  320 + a a ε
  321 +aux a ah ε
  322 + a a j
  323 +aux aja ayah ε
  324 +
  325 + o o j
  326 +aux oja oya ε
  327 +
  328 +acro {A}a A
  329 +acro {B}b B
  330 +acro {C}c C
  331 +acro {C}k C
  332 +acro {Ć}t′ Ć
  333 +acro {D}d D
  334 +acro {E}e E
  335 +acro {F}f F
  336 +acro {G}g G
  337 +acro {H}h H
  338 +acro {I}j I
  339 +acro {J}j J
  340 +acro {K}k K
  341 +acro {L}l L
  342 +acro {Ł}ł Ł
  343 +acro {M}m M
  344 +acro {N}n N
  345 +acro {O}o O
  346 +acro {P}p P
  347 +acro {R}r R
  348 +acro {S}s S
  349 +acro {Ś}s′ Ś
  350 +acro {T}t T
  351 +acro {U}u U
  352 +acro {V}v V
  353 +acro {W}v W
  354 +acro {X}ks X
  355 +acro {Y}y Y
  356 +acro {Z}z Z
  357 +acro {Ż}ž Ż
  358 +acro {J}jot J
  359 +acro {Z}zet Z
  360 +acro {Ż}žet Ż
  361 +acro {v}v V
  362 +acro {x}ks X
  363 +acro {j}jot J
  364 +acro {z}zet z
  365 +acro {ż}žet Ż
  366 +
  367 +acro a A ε
  368 +
  369 +@rules
  370 +core p′ pi ω
  371 +core p′ p iκ
  372 +#core p p δ
  373 +#core p p j
  374 +core pj pi ρ
  375 +core b′ bi ω
  376 +core b′ b iκ
  377 +#core b b δ
  378 +core bj bi ρ
  379 +#zbitka
  380 +#core b b j
  381 +core m′ mi ω
  382 +core m′ m iκ
  383 +#core m m δ
  384 +core m′j mi ρ
  385 +core f′ fi ω
  386 +core f′ f iκ
  387 +#core f f δ
  388 +core fj fi ρ
  389 +core v′ wi ω
  390 +core v′ w iκ
  391 +core v w δ
  392 +core vj wi ρ
  393 +#zbitka
  394 +#core v w j
  395 +core t′ ć λ
  396 +#zbitki
  397 +#core t′ ć u
  398 +#core t′ ć a
  399 +#core t′ ć i
  400 +core t′ ci ω
  401 +#core c c j
  402 +core t′ c iκ
  403 +#core c c μ
  404 +core d′ dź λ
  405 +core d′ dzi ω
  406 +core d′ dz iκ
  407 +core ʒ dz δ
  408 +#zbitka
  409 +#core ʒ dz j
  410 +#core t t δ
  411 +#core t t j
  412 +core tʲ ti ω
  413 +core tʲ t iκ
  414 +core tj ti ρ
  415 +#core d d ξ
  416 +core dʲ di ω
  417 +core dʲ d iκ
  418 +#core d d j
  419 +core dj di ρ
  420 +core č cz δ
  421 +core čʲ czi ω
  422 +core čʲ cz iκ
  423 +#core čʲ cz j
  424 +core ǯ dż δ
  425 +core ǯʲ dżi ω
  426 +core ǯʲ dż iκ
  427 +core ǯj dżi ρ
  428 +core s′ ś λ
  429 +core s′ si ω
  430 +#core s s j
  431 +core s′ s iκ
  432 +#core s s γ
  433 +core z′ ź λ
  434 +core z′ zi ω
  435 +#core z z j
  436 +core z′ z iκ
  437 +#core z z δ
  438 +core š sz δ
  439 +#core šʲ sz j
  440 +core šʲ szi ω
  441 +core šʲ sz iκ
  442 +core ž ż δ
  443 +core žʲ żi ω
  444 +core žʲ ż iκ
  445 +core žj żi ρ
  446 +#core l l δ
  447 +core lʲ li ω
  448 +core l l iκ
  449 +#core l l j
  450 +#core ł ł δ
  451 +#zbitka
  452 +#core ł ł i
  453 +#zbitka
  454 +#core ł ł j
  455 +core lj li ρ
  456 +core ř rz δ
  457 +#zbitka
  458 +#core ř rz j
  459 +core r r zi
  460 +#core r r γ
  461 +#core r r j
  462 +core rʲ ri ω
  463 +core rʲ r iκ
  464 +core rj ri ρ
  465 +core n′ ń λ
  466 +core n′ ni ω
  467 +core n′ n iκ
  468 +#core n n δ
  469 +#core n n j
  470 +core n′j ni ρ
  471 +core k′ ki ω
  472 +core k′ k iκ
  473 +#core k k δ
  474 +#core k k j
  475 +core k′j ki ρ
  476 +core g′ gi ω
  477 +core g′ g iκ
  478 +#core g g δ
  479 +core g′j gi ρ
  480 +core x ch δ
  481 +core xʲ chi ω
  482 +core xʲ ch iκ
  483 +core xʲj chi ρ
  484 +#core h h δ
  485 +core hʲ hi ω
  486 +core hʲ h iκ
  487 +core mar mar z
  488 +core m′er mier z
  489 +core n′e nie i
  490 +#core a a σ
  491 +core aʲ a i
  492 +#core a a i
  493 +#core e e σ
  494 +core eʲ e i
  495 +#core e e i
  496 +#core o o σ
  497 +core oʲ o i
  498 +#core o o i
  499 +#core ó ó σ
  500 +core óʲ ó i
  501 +#core ó ó i
  502 +#core u u σ
  503 +core uʲ u i
  504 +#core u u i
  505 +#core i i σ
  506 +core iʲ i i
  507 +#core i i i
  508 +#core y y σ
  509 +core yʲ y i
  510 +#core y y i
  511 +#core ą ą σ
  512 +#core ę ę σ
  513 +#core j j
  514 +#core A A
  515 +#core B B
  516 +#core C C
  517 +#core Ć Ć
  518 +#core D D
  519 +#core E E
  520 +#core F F
  521 +#core G G
  522 +#core H H
  523 +#core I I
  524 +#core J J
  525 +#core K K
  526 +#core L L
  527 +#core Ł Ł
  528 +#core M M
  529 +#core N N
  530 +#core O O
  531 +#core P P
  532 +#core R R
  533 +#core S S
  534 +#core Ś Ś
  535 +#core T T
  536 +#core U U
  537 +#core W W
  538 +#core Y Y
  539 +#core Z Z
  540 +#core Ż Ż
  541 +#core - -
  542 +
  543 +aux {ch}š ch γ
  544 +aux {q}k q γ
  545 +aux {ng}n ng γ
  546 +aux {tch}č tch γ
  547 +aux {sh}š sh γ
  548 +aux {w}ł w
  549 +aux {leigh}l leigh γ
  550 +aux {au}ał au γ
  551 +aux {sch}š sch γ
  552 +aux {tsch}č tsch γ
  553 +aux {z}c z γ
  554 +core {lj}lj lj γ
  555 +core {pj}pj pj γ
  556 +aux {zs}ž zs γ
  557 +aux {cs}č cs γ
  558 +
  559 +aux {ay}aj ay γ
  560 +aux {ey}ej ey γ
  561 +aux {oy}oj oy γ
  562 +aux {ai}aj ai γ
  563 +
  564 +aux {dh}dʲ dhi ω
  565 +aux {dh}dʲ dh iκ
  566 +aux {dh}d dh δ
  567 +aux {gh}g′ ghi ω
  568 +aux {gh}g′ gh iκ
  569 +aux {gh}g gh δ
  570 +aux {kh}k′ khi ω
  571 +aux {kh}k′ kh iκ
  572 +aux {kh}k kh δ
  573 +aux {nh}n′ nhi ω
  574 +aux {nh}n′ nh iκ
  575 +aux {nh}n nh δ
  576 +aux {th}tʲ thi ω
  577 +aux {th}tʲ th iκ
  578 +aux {th}t th δ
  579 +core {v}v′ vi ω
  580 +core {v}v′ v iκ
  581 +core {v}v v δ
  582 +core {v}vj vi ρ
  583 +core {x}ks′ xi ω
  584 +core {x}ks′ x iκ
  585 +core {x}ks x δ
  586 +
  587 +#lemma=e/y gender=m1
  588 +aux {dieu}dʲe dieu α
  589 +aux {dieu}dʲi dieu β
  590 +aux {quieu}k′e quieu α
  591 +aux {quieu}k′i quieu β
  592 +aux {lieu}lʲe lieu α
  593 +aux {lieu}lʲi lieu β
  594 +aux {rie}rʲe rie α
  595 +aux {rie}rʲi rie β
  596 +aux {gie}ǯʲe gie α
  597 +aux {gie}ǯʲi gie β
  598 +aux {kie}k′e kie α
  599 +aux {kie}k′i kie β
  600 +aux {tie}tʲe tie α
  601 +aux {tie}tʲi tie β
  602 +aux {pie}p′e pie α
  603 +aux {pie}p′i pie β
  604 +aux {die}dʲe die α
  605 +aux {die}dʲi die β
  606 +aux {bee}b′e bee α
  607 +aux {bee}b′i bee β
  608 +
  609 +#lemma=e gender=m1
  610 +aux {mée}me mée α
  611 +aux {ge}g′e ge α
  612 +aux {ke}k′e ke α
  613 +
  614 +#lemma=y gender=m1
  615 +aux {by}b′ by ’eά
  616 +aux {by}b′i by β
  617 +aux {dy}dʲ dy ’eά
  618 +aux {dy}dʲ dy eά
  619 +aux {dy}dʲ dy owieε
  620 +aux {dy}dʲi dy β
  621 +aux {dí}dʲ dí eά
  622 +aux {dí}dʲ dí owieε
  623 +aux {dí}dʲi dí β
  624 +aux {phy}f′ phy ’eά
  625 +aux {phy}f′i phy β
  626 +aux {guy}g′ guy ’eά
  627 +aux {guy}g′i guy β
  628 +aux {ky}k′ ky ’eά
  629 +aux {ky}k′ ky eά
  630 +aux {ky}k ky owieε
  631 +aux {ky}k′i ky β
  632 +aux {my}m′ my ’eά
  633 +aux {my}m′i my β
  634 +aux {li}l li eά
  635 +aux {li}l l iβ
  636 +aux {ly}l ly ’eά
  637 +aux {ly}li ly β
  638 +aux {ry}rʲ ry ’eά
  639 +aux {ry}rʲi ry β
  640 +core {ři}rʲ ři eά
  641 +core {ři}rʲ ři owieε
  642 +core {ři}rʲi ři β
  643 +aux {sy}sʲ sy ’eά
  644 +aux {sy}sʲ sy eά
  645 +aux {sy}sʲ sy owieε
  646 +aux {sy}sʲi sy β
  647 +aux {şi}sʲ şi eά
  648 +aux {şi}sʲ şi owieε
  649 +aux {şi}sʲi şi β
  650 +aux {cy}sʲ cy ’eά
  651 +aux {cy}sʲi cy β
  652 +aux {thy}tʲ thy ’eά
  653 +aux {thy}tʲ thy eά
  654 +aux {thy}tʲ thy owieε
  655 +aux {thy}tʲi thy β
  656 +
  657 +#lemma=e/ndm gender=m1
  658 +aux {chais}še chais ’
  659 +aux {lais}le lais ’
  660 +aux {nais}ne nais ’
  661 +aux {rès}re rès ’
  662 +aux {rés}re rés ’
  663 +aux {ré}re ré ά
  664 +
  665 +#lemma=ε
  666 +aux {de}d de ’
  667 +aux {de}d de ε
  668 +aux {fe}f fe ’
  669 +aux {fe}f fe ε
  670 +aux {phe}f phe ’
  671 +aux {phe}f phe ε
  672 +aux {ge}ǯ ge ’
  673 +aux {ge}ǯ ge ε
  674 +aux {ges}ǯ ges ’
  675 +aux {ges}ǯ ges ε
  676 +aux {gue}g gue ’
  677 +aux {gue}g gue ε
  678 +aux {gues}g gues ’
  679 +aux {gues}g gues ε
  680 +aux {ke}k ke ’
  681 +aux {ke}k ke ε
  682 +aux {que}k que ’
  683 +aux {que}k que ε
  684 +aux {ques}k ques ’
  685 +aux {ques}k ques ε
  686 +aux {le}l le ’
  687 +aux {le}l le ε
  688 +aux {les}l les ’
  689 +aux {les}l les ε
  690 +aux {me}m me ’
  691 +aux {me}m me ε
  692 +aux {ne}n ne ’
  693 +aux {ne}n ne ε
  694 +aux {gne}n′ gne ’
  695 +aux {gne}n′ gne ε
  696 +aux {re}r re ’
  697 +aux {re}r re ε
  698 +aux {rue}r rue ’
  699 +aux {rue}r rue ε
  700 +aux {se}s se ’
  701 +aux {se}s se ε
  702 +aux {ce}s ce ’
  703 +aux {ce}s ce ε
  704 +aux {che}š che ’
  705 +aux {che}š che ε
  706 +aux {te}t te ’
  707 +aux {te}t te ε
  708 +aux {the}t the ’
  709 +aux {the}t the ε
  710 +aux {ve}v ve ’
  711 +aux {ve}v ve ε
  712 +aux {we}ł we ’
  713 +aux {we}ł we ε
  714 +aux {se}z se ’
  715 +aux {se}z se ε
  716 +aux {ge}ž ge ’
  717 +aux {ge}ž ge ε
  718 +#z wyjątkiem sg:loc.voc
  719 +aux {oe}oł oe ’
  720 +aux {oe}oł oe ε
  721 +
  722 +aux ’ γ
  723 +# ’ ’ owi
  724 +
  725 + n n g
  726 + z z γ
  727 + b b e
  728 + b b y
  729 + d d y
  730 + m m y
  731 + s s y
  732 + c c y
  733 + r r y
  734 + k k y
  735 + l l y
  736 + l l a
  737 + n n a
  738 + r r è
  739 + d d e
  740 + f f e
  741 + p p h
  742 + g g e
  743 + g g u
  744 + k k e
  745 + q q u
  746 + l l e
  747 + m m e
  748 + n n e
  749 + g g n
  750 + r r e
  751 + s s e
  752 + c c e
  753 +# c c h
  754 + t t e
  755 + t t h
  756 + v v e
  757 + w w e
  758 + s s e
  759 + o o e
  760 + m m é
  761 + a a y
  762 + e e y
  763 + o o y
  764 +
  765 +acro a A ε
  766 +
  767 +acro {A}a A
  768 +acro {B}b B
  769 +acro {C}c C
  770 +acro {C}k C
  771 +acro {Ć}t′ Ć
  772 +acro {D}d D
  773 +acro {E}e E
  774 +acro {F}f F
  775 +acro {G}g G
  776 +acro {H}h H
  777 +acro {I}j I
  778 +acro {J}j J
  779 +acro {K}k K
  780 +acro {L}l L
  781 +acro {Ł}ł Ł
  782 +acro {M}m M
  783 +acro {N}n N
  784 +acro {O}o O
  785 +acro {P}p P
  786 +acro {R}r R
  787 +acro {S}s S
  788 +acro {Ś}s′ Ś
  789 +acro {T}t T
  790 +acro {U}u U
  791 +acro {V}v V
  792 +acro {W}v W
  793 +acro {X}ks X
  794 +acro {Y}y Y
  795 +acro {Z}z Z
  796 +acro {Ż}ž Ż
  797 +acro {J}jot J-ot δ
  798 +acro {Z}zet Z-et δ
  799 +acro {Ż}žet Ż-et δ
  800 +acro {z}zet z-et δ
  801 +
  802 +acro {B}b′e B-ie ε
  803 +acro {D}d′e D-zie ε
  804 +acro {F}f′e F-ie ε
  805 +acro {M}m′e M-ie ε
  806 +acro {N}n′e N-ie ε
  807 +acro {P}p′e P-ie ε
  808 +acro {R}ře R-ze ε
  809 +acro {S}s′e S-ie ε
  810 +acro {T}t′e -cie ε
  811 +acro {V}v′e V-ie ε
  812 +acro {W}v′e W-ie ε
  813 +acro {X}ks′e X-ie ε
  814 +acro {Z}z′e Z-ie ε
  815 +acro {J}jot′e J-ocie ε
  816 +acro {Z}zet′e Z-ecie ε
  817 +acro {Ż}žet′e Ż-ecie ε
  818 +
  819 +acro {B}b′e Bie ε
  820 +acro {D}d′e Dzie ε
  821 +acro {F}f′e Fie ε
  822 +acro {M}m′e Mie ε
  823 +acro {N}n′e Nie ε
  824 +acro {P}p′e Pie ε
  825 +acro {R}ře Rze ε
  826 +acro {S}s′e Sie ε
  827 +acro {T}t′e cie ε
  828 +acro {V}v′e Vie ε
  829 +acro {W}v′e Wie ε
  830 +acro {X}ks′e Xie ε
  831 +acro {Z}z′e Zie ε
  832 +acro {J}jot′e Jocie ε
  833 +acro {Z}zet′e Zecie ε
  834 +acro {Ż}žet′e Żecie ε
  835 +
  836 +acro b′e b-ie ε
  837 +acro d′e d-zie ε
  838 +acro f′e f-ie ε
  839 +acro m′e m-ie ε
  840 +acro n′e n-ie ε
  841 +acro p′e p-ie ε
  842 +acro ře r-ze ε
  843 +acro s′e s-ie ε
  844 +acro t′e -cie ε
  845 +core {v}v′e v-ie ε
  846 +acro v′e w-ie ε
  847 +core {x}ks′e x-ie ε
  848 +acro z′e z-ie ε
  849 +acro {j}jot′e j-ocie ε
  850 +acro {z}zet′e z-ecie ε
  851 +acro {ż}žet′e ż-ecie ε
  852 +
  853 +acro {T}t′e CIE ε
  854 + a a cieε
  855 + e e cieε
  856 + i i cieε
  857 + o o cieε
  858 + u u cieε
  859 +acro {A}a{T}t′e acie ε
  860 +acro {E}e{T}t′e ecie ε
  861 +acro {I}j{T}t′e icie ε
  862 +acro {O}o{T}t′e ocie ε
  863 +acro {U}u{T}t′e ucie ε
  864 +
  865 +acro {C}k′i C-i ε
  866 +acro {C}k′em C-iem ε
  867 +acro {E}eʲi E-i ε
  868 +acro {G}g′i G-i ε
  869 +acro {G}g′em G-iem ε
  870 +acro {J}ji J-i ε
  871 +acro {K}k′i K-i ε
  872 +acro {K}k′em K-iem ε
  873 +acro {L}li L-i ε
  874 +acro - γ
  875 +
  876 +
... ...
morphology/data/fonetics_acro.dic deleted
1   -@symbols
2   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε v x q
3   -γ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε goε mε muε ε
4   -
5   -
6   -@rev_symbols
7   -
8   -
9   -@rev_rules
10   -acro {A}a A
11   -acro {B}b B
12   -acro {C}c C
13   -acro {C}k C
14   -acro {Ć}t′ Ć
15   -acro {D}d D
16   -acro {E}e E
17   -acro {F}f F
18   -acro {G}g G
19   -acro {H}h H
20   -acro {I}j I
21   -acro {J}j J
22   -acro {K}k K
23   -acro {L}l L
24   -acro {Ł}ł Ł
25   -acro {M}m M
26   -acro {N}n N
27   -acro {O}o O
28   -acro {P}p P
29   -acro {R}r R
30   -acro {S}s S
31   -acro {Ś}s′ Ś
32   -acro {T}t T
33   -acro {U}u U
34   -acro {V}v V
35   -acro {W}v W
36   -acro {X}ks X
37   -acro {Y}y Y
38   -acro {Z}z Z
39   -acro {Ż}ž Ż
40   -acro {J}jot J
41   -acro {Z}zet Z
42   -acro {Ż}žet Ż
43   -acro {v}v V
44   -acro {x}ks X
45   -acro {j}jot J
46   -acro {z}zet z
47   -acro {ż}žet Ż
48   -
49   -acro a A ε
50   -
51   -
52   -@rules
53   -acro {A}a A δ
54   -acro {B}b B δ
55   -acro {C}c C δ
56   -acro {C}k C δ
57   -acro {Ć}t′ Ć δ
58   -acro {D}d D δ
59   -acro {E}e E δ
60   -acro {F}f F δ
61   -acro {G}g G δ
62   -acro {H}h H δ
63   -acro {I}j I δ
64   -acro {J}j J δ
65   -acro {K}k K δ
66   -acro {L}l L δ
67   -acro {Ł}ł Ł δ
68   -acro {M}m M δ
69   -acro {N}n N δ
70   -acro {O}o O δ
71   -acro {P}p P δ
72   -acro {R}r R δ
73   -acro {S}s S δ
74   -acro {Ś}s′ Ś δ
75   -acro {T}t T δ
76   -acro {U}u U δ
77   -acro {V}v V δ
78   -acro {W}v W δ
79   -acro {X}ks X δ
80   -acro {Y}y Y δ
81   -acro {Z}z Z δ
82   -acro {Ż}ž Ż δ
83   -acro {J}jot J-ot δ
84   -acro {Z}zet Z-et δ
85   -acro {Ż}žet Ż-et δ
86   -acro {z}zet z-et δ
87   -
88   -acro {B}b′e B-ie ε
89   -acro {D}d′e D-zie ε
90   -acro {F}f′e F-ie ε
91   -acro {M}m′e M-ie ε
92   -acro {N}n′e N-ie ε
93   -acro {P}p′e P-ie ε
94   -acro {R}ře R-ze ε
95   -acro {S}s′e S-ie ε
96   -acro {T}t′e -cie ε
97   -acro {V}v′e V-ie ε
98   -acro {W}v W-ie ε
99   -acro {X}ks′e X-ie ε
100   -acro {Z}z Z-ie ε
101   -acro {J}jot′e J-ocie ε
102   -acro {Z}zet′e Z-ecie ε
103   -acro {Ż}žet′e Ż-ecie ε
104   -
105   -acro {B}b′e Bie ε
106   -acro {D}d′e Dzie ε
107   -acro {F}f′e Fie ε
108   -acro {M}m′e Mie ε
109   -acro {N}n′e Nie ε
110   -acro {P}p′e Pie ε
111   -acro {R}ře Rze ε
112   -acro {S}s′e Sie ε
113   -acro {T}t′e cie ε
114   -acro {V}v′e Vie ε
115   -acro {W}v Wie ε
116   -acro {X}ks′e Xie ε
117   -acro {Z}z Zie ε
118   -acro {J}jot′e Jocie ε
119   -acro {Z}zet′e Zecie ε
120   -acro {Ż}žet′e Żecie ε
121   -
122   -acro b′e b-ie ε
123   -acro d′e d-zie ε
124   -acro f′e f-ie ε
125   -acro m′e m-ie ε
126   -acro n′e n-ie ε
127   -acro p′e p-ie ε
128   -acro ře r-ze ε
129   -acro s′e s-ie ε
130   -acro t′e -cie ε
131   -acro {v}v′e v-ie ε
132   -acro v w-ie ε
133   -acro {x}ks′e x-ie ε
134   -acro z z-ie ε
135   -acro {j}jot′e j-ocie ε
136   -acro {z}zet′e z-ecie ε
137   -acro {ż}žet′e ż-ecie ε
138   -
139   -acro {T}t′e CIE ε
140   -acro {A}a{T}t′e acie ε
141   -acro {E}e{T}t′e ecie ε
142   -acro {I}j{T}t′e icie ε
143   -acro {O}o{T}t′e ocie ε
144   -acro {U}u{T}t′e ucie ε
145   -
146   -acro {C}k′i C-i ε
147   -acro {C}k′em C-iem ε
148   -acro {G}g′i G-i ε
149   -acro {G}g′em G-iem ε
150   -acro {J}ji J-i ε
151   -acro {K}k′i K-i ε
152   -acro {K}k′em K-iem ε
153   -acro {L}li L-i ε
154   -acro - γ
155   - a a ε
156   - ax ach ε
157   - am′i ami ε
158   - ą ą ε
159   - e e ε
160   - ę ę ε
161   - em em ε
162   - o o ε
163   - om om ε
164   - ov′i owi ε
165   - ov′e owie ε
166   - u u ε
167   - óv ów ε
168   - y y ε
169   -
170   -
morphology/data/fonetics_acro_old.dic deleted
1   -@symbols
2   -
3   -
4   -@rev_symbols
5   -
6   -
7   -@rev_rules
8   -!a A
9   -!b B
10   -!c C
11   -!t′ Ć
12   -!d D
13   -!e E
14   -!f F
15   -!g G
16   -!h H
17   -!i I
18   -#!j J
19   -!k K
20   -!l L
21   -!ł Ł
22   -!m M
23   -!n N
24   -!o O
25   -!p P
26   -!r R
27   -!s S
28   -!s′ Ś
29   -!t T
30   -!u U
31   -!v W
32   -!y Y
33   -!z Z
34   -!ż Ż
35   -#x ch ε
36   -ax -ach ε
37   -ę -ę ε
38   -ʲi -i ε
39   -a A ε
40   -!jot′e J-ocie ε
41   -!jotax J-otach ε
42   -!jot J ε
43   -t′e -cie ε
44   -
45   -
46   -@rules
47   -!a A
48   -!b B
49   -!c C
50   -!t′ Ć
51   -!d D
52   -!e E
53   -!f F
54   -!g G
55   -!h H
56   -!i I
57   -#!jot J
58   -!k K
59   -!l L
60   -!ł Ł
61   -!m M
62   -!n N
63   -!o O
64   -!p P
65   -!r R
66   -!s S
67   -!s′ Ś
68   -!t T
69   -!u U
70   -!v W
71   -!y Y
72   -!z Z
73   -!ž Ż
74   -ax -ach ε
75   -ę -ę ε
76   -ʲi -i ε
77   -!jot′e J-ocie ε
78   -!jotax J-otach ε
79   -t′e -cie ε
80   -
81   -
morphology/data/fonetics_de.dic deleted
1   -@symbols
2   -ω a ą e ę o ó u
3   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
4   -γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
5   -ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
6   -μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
7   -λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε
8   -κ b c ć d f g h i j k l ł m n ń p r s ś t w z ź ż - ε
9   -σ a ą b c ć d e ę f g j h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
10   -ρ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε goε mε muε ε
11   -
12   -@rev_symbols
13   -ω a ą e ę o ó u
14   -δ a ą b c ć č d ʒ ǯ e ę f g h x i k l ł m n ń o ó p r ř s ś š t u v w y z ź ž - ε
15   -λ b c ć č d ʒ ǯ f g h x k l ł m n ń p r ř s ś š t v w z ź ž - ε
16   -κ b c ć č d ʒ ǯ f g h x i j ʲ k l ł m n ń p r ř s ś š t v w z ź ž - ε
17   -ρ aε axε am′iε ąε eε ęε iε oε omε onε umε óvε uε ov′iε omε emε ε
18   -
19   -@rev_rules
20   -de r rh
21   -de r r
22   -de ta tha
23   -de ks x
24   -
25   -de g′e ge ε
26   -de k′e ke ε
27   -
28   -de k′i ky ε
29   -
30   -
31   -@rules
32   -de š sch
33   -de r rh
34   -de c z
35   -de ał au
36   -
37   -de ře rze ε
38   -de ks′e ksie ε
39   -de t′e cie ε
40   -de v′e vie ε
41   -
42   -de óv ów ε
43   -de ov′i owi ε
44   -de ov′e owie ε
45   -de am′i ami ε
46   -de ax ach ε
47   -
48   -de g′e ge ch
49   -de g′e ge go
50   -de g′e ge m
51   -de g′e ge mi
52   -de g′e ge mu
53   -de k′e ke ch
54   -de k′e ke go
55   -de k′e ke m
56   -de k′e ke mi
57   -de k′e ke mu
58   -de k′i ky ch
59   -de k′i ky mi
60   -de k′i ky m
61   -de x ch ε
62   -de m′i mi ε
63   -
64   -de kj ky ’
65   -de ’ ρ
66   -
67   -de góv gów ε
68   -de gov′i gowi ε
69   -de gov′e gowie ε
70   -de gam′i gami ε
71   -de gax gach ε
72   -de gom gom ε
73   -de kóv ków ε
74   -de kov′i kowi ε
75   -de kov′e kowie ε
76   -de kam′i kami ε
77   -de kax kach ε
78   -de kom kom ε
79   -
80   -de k′ix kich ε
81   -de k′e kie ε
82   -de k′im kim ε
83   -de k′im′i kimi ε
84   -de k′ego kiego ε
85   -de k′emu kiemu ε
86   -
87   -
88   -
morphology/data/fonetics_en.dic deleted
1   -@symbols
2   -ω a ą e ę o ó u
3   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
4   -γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
5   -ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
6   -μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
7   -λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε
8   -κ b c ć d f g h i j k l ł m n ń p r s ś t w z ź ż - ε
9   -σ a ą b c ć d e ę f g j h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
10   -ρ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε ε
11   -
12   -@rev_symbols
13   -ω a ą e ę o ó u
14   -δ a ą b c ć č d ʒ ǯ e ę f g h x i k l ł m n ń o ó p r ř s ś š t u v w y z ź ž - ε
15   -λ b c ć č d ʒ ǯ f g h x k l ł m n ń p r ř s ś š t v w z ź ž - ε
16   -κ b c ć č d ʒ ǯ f g h x i j ʲ k l ł m n ń p r ř s ś š t v w z ź ž - ε
17   -ρ aε axε am′iε ąε eε ęε iε oε omε onε umε óvε uε ov′iε omε emε ε
18   -
19   -@rev_rules
20   -en ks x
21   -en č tch
22   -en ł w
23   -en aj ay ρ
24   -en ej ey ρ
25   -en oj oy ρ
26   -
27   -en d de ε
28   -en d d ε
29   -en f ph ε
30   -en k ke ε
31   -en k k ε
32   -en k kes ε
33   -en k c
34   -en k ky ε
35   -en t te ε
36   -en t t ε
37   -en t th
38   -en t the ε
39   -en r re ε
40   -en r r ε
41   -en r rh ε
42   -en m me ε
43   -en m m ε
44   -en n ne ε
45   -en n n ε
46   -en s se ε
47   -en s s ε
48   -en s ce ε
49   -en s th ε
50   -en s the ε
51   -
52   -en a a ε
53   -en a ah ε
54   -en ka kha ε
55   -en vja via ε
56   -
57   -en ʲi ie ε
58   -en ʲi i ε
59   -en ʲi y ε
60   -
61   -@rules
62   -en ks x
63   -en č tch
64   -en ł w
65   -en d dh
66   -en g gh
67   -en k kh
68   -en l leigh
69   -en aj ay ρ
70   -en ej ey ρ
71   -en oj oy ρ
72   -en aʲi ai ε
73   -en oʲi oi ε
74   -en eʲi ei ε
75   -en uʲi ui ε
76   -
77   -en vj vi ρ
78   -en v′ij vij ε
79   -
80   -en ce ce ε
81   -en f′e fie ε
82   -en ře rze ε
83   -en t′e cie ε
84   -en kt′e kcie ε
85   -en s′t′e ście ε
86   -en m′e mie ε
87   -en n′e nie ε
88   -en d′e dzie ε
89   -en p′e pie ε
90   -en s′e sie ε
91   -en ks′e ksie ε
92   -en v′e vie ε
93   -en z′e zie ε
94   -
95   -en k′i ki ε
96   -en k′em kiem ε
97   -en k k iem
98   -en řy rzy ε
99   -
100   -
101   -en ʲi ie ch
102   -en ʲi ie mi
103   -en ʲi ie m
104   -en ʲi ee ch
105   -en ʲi ee mi
106   -en li ly ch
107   -en li ly mi
108   -en li ly m
109   -en ʲego iego ε
110   -en ʲemu iemu ε
111   -en ʲem iem ε
112   -en ʲim im ε
113   -en ʲix ich ε
114   -en ʲe ie ε
115   -en ʲim′i imi ε
116   -en ʲov′e iowie ε
117   -en ′e ie m
118   -en ′i i ε
119   -en i i ε
120   -en x ch ε
121   -en m′i mi ε
122   -en óv ów ε
123   -en ov′i owi ε
124   -en ov′e owie ε
125   -en am′i ami ε
126   -en ax ach ε
127   -
128   -en oł oe ’
129   -en b by ’
130   -en k′ ky ’
131   -en r ry ’
132   -en t thy ’
133   -en d dy ’
134   -en m my ’
135   -en s cy ’
136   -en l ly ’
137   -en d dy ’
138   -en s ce ’
139   -en d de ’
140   -en f fe ’
141   -en ǯ ge ’
142   -en k ke ’
143   -en l le ’
144   -en m me ’
145   -en n ne ’
146   -en r re ’
147   -en s se ’
148   -en t te ’
149   -en t the ’
150   -en v ve ’
151   -en ł we ’
152   -en ’ ρ
153   -
154   -en s ce ε
155   -en d de ε
156   -en f fe ε
157   -en ǯ ge ε
158   -en k ke ε
159   -en l le ε
160   -en le le ε
161   -en m me ε
162   -en me me ε
163   -en n ne ε
164   -en r re ε
165   -en re re ε
166   -en s se ε
167   -en t te ε
168   -en v ve ε
169   -en ł we ε
170   -
171   -
172   -#en os′t′ ość ε
173   -#en os′t′ą ością ε
174   -#en os′t′om ościom ε
175   -#en os′t′am′i ościami ε
176   -#en os′t′ax ościach ε
177   -#en os′t′i ości ε
178   -#en ovą ową ε
179   -#en ovym′i owymi ε
180   -#en ovym owym ε
181   -#en ovyx owych ε
182   -#en ovy owy ε
183   -#en ovo owo ε
184   -#en ov′i owi ε
185   -#en ovemu owemu ε
186   -#en ovej owej ε
187   -#en ovego owego ε
188   -#en ove owe ε
189   -#en ova owa ε
190   -#en oły owy ε
191   -#en oła owa ε
192   -#en k′ix kich ε
193   -#en k′e kie ε
194   -#en k′ej kiej ε
195   -#en k′im kim ε
196   -#en k′im′i kimi ε
197   -#en ka ka ε
198   -#en ką ką ε
199   -#en ko ko ε
200   -#en ku ku ε
201   -#en če cze ε
202   -#en n′ja nia ε
203   -#en n′ją nią ε
204   -#en n′je nie ε
205   -#en n′ję nię ε
206   -#en n′ji nii ε
207   -#en n′ij nij ε
208   -#en n′jom niom ε
209   -#en n′jo nio ε
210   -#en n′jax niach ε
211   -#en n′jam′i niami ε
212   -
morphology/data/fonetics_fr.dic deleted
1   -@symbols
2   -ω a ą e ę o ó u
3   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
4   -γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
5   -ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
6   -μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
7   -λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε
8   -κ b c ć d f g h i j k l ł m n ń p r s ś t w z ź ż - ε
9   -σ a ą b c ć d e ę f g j h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
10   -ρ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε goε mε muε ε
11   -
12   -@rev_symbols
13   -ω a ą e ę o ó u
14   -δ a ą b c ć č d ʒ ǯ e ę f g h x i k l ł m n ń o ó p r ř s ś š t u v w y z ź ž - ε
15   -λ b c ć č d ʒ ǯ f g h x k l ł m n ń p r ř s ś š t v w z ź ž - ε
16   -κ b c ć č d ʒ ǯ f g h x i j ʲ k l ł m n ń p r ř s ś š t v w z ź ž - ε
17   -ρ aε axε am′iε ąε eε ęε iε oε omε onε umε óvε uε ov′iε omε emε ε
18   -
19   -@rev_rules
20   -fr ks x
21   -fr b bes ε
22   -fr d d ε
23   -fr d de ε
24   -fr f phe ε
25   -fr g gue ε
26   -fr g gues ε
27   -fr k c ε
28   -fr k que ε
29   -fr k q ε
30   -fr k cq ε
31   -fr k ques ε
32   -fr k cques ε
33   -fr m me ε
34   -fr n n ε
35   -fr n ne ε
36   -fr n nes ε
37   -fr n′ ng ε
38   -fr r r ε
39   -fr r re ε
40   -fr r res ε
41   -fr r rs ε
42   -fr s s ε
43   -fr s se ε
44   -fr s ce ε
45   -fr t t ε
46   -fr t tes ε
47   -fr t thes ε
48   -fr z se ε
49   -
50   -@rules
51   -fr k q
52   -fr n ng
53   -
54   -fr b′e bie ε
55   -fr d′e dzie ε
56   -fr f′e fie ε
57   -fr m′e mie ε
58   -fr n′e nie ε
59   -fr s′n′e śnie ε
60   -fr ře rze ε
61   -fr s′e sie ε
62   -fr ks′e ksie ε
63   -fr t′e cie ε
64   -fr s′t′e ście ε
65   -fr v′e vie ε
66   -fr z′e zie ε
67   -
68   -fr řy rzy ε
69   -fr t′i ci ε
70   -fr v′i vi ε
71   -
72   -fr g′em giem ε
73   -fr g′i gi ε
74   -fr k′em kiem ε
75   -fr k′i ki ε
76   -
77   -fr ʲi ieu ch
78   -fr ʲe ieu go
79   -fr ʲi ieu m
80   -fr ʲi ieu mi
81   -fr ʲe ieu mu
82   -fr llj lli ego
83   -fr llj lli emu
84   -fr llj lli e
85   -fr e ée go
86   -fr e ée m
87   -fr e ée mu
88   -fr x ch ε
89   -fr m′i mi ε
90   -
91   -fr óv ów ε
92   -fr ov′i owi ε
93   -fr ov′e owie ε
94   -fr am′i ami ε
95   -fr ax ach ε
96   -
97   -fr e ès ’
98   -fr e ais ’
99   -fr k que ’
100   -fr f phe ’
101   -fr sj sy ’
102   -fr fj phy ’
103   -fr rj ry ’
104   -fr š che ’
105   -fr d de ’
106   -fr r re ’
107   -fr z se ’
108   -fr ž ge ’
109   -fr # ine ’
110   -fr t te ’
111   -fr l le ’
112   -fr m me ’
113   -fr n′ gne ’
114   -fr n ne ’
115   -fr v ve ’
116   -fr g gue ’
117   -fr s ce ’
118   -fr gj guy ’
119   -fr ’ ρ
120   -
121   -
morphology/data/fonetics_pl.dic deleted
1   -@symbols
2   -ω a ą e ę o ó u
3   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε v x q
4   -#γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
5   -#ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
6   -#μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
7   -λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε v x q
8   -κ b c ć d f g h i j k l ł m n ń p r s ś t w z ź ż - ε v x q
9   -#σ a ą b c ć d e ę f g j h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
10   -ρ aε achε amiε ąε eε ęε iε oε omε onε umε
11   -α ε goε muε mε
12   -ά ε goε muε
13   -β ε chε miε mε
14   -γ aε achε amiε ąε eε ęε iε oε omε onε umε ówε uε owiε omε emε yε owieε emuε egoε goε mε muε ε
15   -
16   -@rev_symbols
17   -ω a ą e ę o ó u {eu}
18   -δ a ą b c ć č d ʒ ǯ e ę f g h x i k l ł m n ń o ó p r ř s ś š t u v w y z ź ž - ε {
19   -λ b c ć č d ʒ ǯ f g h x k l ł m n ń p r ř s ś š t v w z ź ž - ε { q
20   -κ b c ć č d ʒ ǯ f g h x i j ʲ k l ł m n ń p r ř s ś š t v w z ź ž - ε {
21   -ρ aε axε am′iε ąε eε ęε iε oε omε onε umε
22   -
23   -@rev_rules
24   -pl p′ pi ω
25   -pl p′ p i
26   -pl pj pi ρ
27   -pl b′ bi ω
28   -pl b′ b i
29   -pl bj bi ρ
30   -pl m′ mi ω
31   -pl m′ m i
32   -pl m′j mi ρ
33   -pl f′ fi ω
34   -pl f′ f i
35   -pl fj fi ρ
36   -pl v′ wi ω
37   -pl v′ w i
38   -pl v w δ
39   -pl vj wi ρ
40   -#pl v w j
41   -pl t′ ć λ
42   -pl t′ ci ω
43   -pl t′ c i
44   -pl d′ dź λ
45   -pl d′ dzi ω
46   -pl d′ dz i
47   -pl ʒ dz
48   -pl tʲ ti ω
49   -pl tʲ t i
50   -pl tj ti ρ
51   -pl dʲ di ω
52   -pl dʲ d i
53   -pl dj di ρ
54   -pl č cz δ
55   -pl čʲ czi ω
56   -pl čʲ cz i
57   -pl č cz j
58   -pl ǯ dż δ
59   -pl ǯʲ dżi ω
60   -pl ǯʲ dż i
61   -pl ǯj dżi ρ
62   -pl s′ ś λ
63   -pl s′ si ω
64   -pl s′ s i
65   -pl z′ ź λ
66   -pl z′ zi ω
67   -pl z′ z i
68   -pl š sz δ
69   -pl š sz j
70   -pl šʲ szi ω
71   -pl šʲ sz i
72   -pl ž ż δ
73   -pl žʲ żi ω
74   -pl žʲ ż i
75   -pl žj żi ρ
76   -pl lʲ li ω
77   -pl lj li ρ
78   -pl ř rz δ
79   -pl ř rz j
80   -pl rʲ ri ω
81   -pl rʲ r i
82   -pl rj ri ρ
83   -pl n′ ń λ
84   -pl n′ ni ω
85   -pl n′ n i
86   -pl n′j ni ρ
87   -pl k′ ki ω
88   -pl k′ k i
89   -pl k′j ki ρ
90   -pl g′ gi ω
91   -pl g′ g i
92   -pl g′j gi ρ
93   -pl x ch δ
94   -pl xʲ chi ω
95   -pl xʲ ch i
96   -pl xʲj chi ρ
97   -pl hʲ hi ω
98   -pl hʲ h i
99   -pl aʲ a i
100   -pl eʲ e i
101   -pl oʲ o i
102   -pl óʲ ó i
103   -pl uʲ u i
104   -pl iʲ i i
105   -pl yʲ y i
106   -
107   -fr {ch}š ch
108   -fr {q}k q
109   -fr {ng}n ng
110   -en {tch}č tch
111   -en {w}ł w
112   -en {leigh}l leigh
113   -de {au}ał au
114   -de {sch}š sch
115   -de {tsch}č tsch
116   -de {z}c z
117   -
118   -en {ay}aj ay ε
119   -en {ey}ej ey ε
120   -en {oy}oj oy ε
121   -en {ay}aj ay ω
122   -en {ey}ej ey ω
123   -en {oy}oj oy ω
124   -
125   -en {dh}dʲ dhi ω
126   -en {dh}dʲ dh iκ
127   -en {dh}d dh δ
128   -en {gh}g′ ghi ω
129   -en {gh}g′ gh iκ
130   -en {gh}g gh δ
131   -en {kh}k′ khi ω
132   -en {kh}k′ kh iκ
133   -en {kh}k kh δ
134   -en {th}tʲ thi ω
135   -en {th}tʲ th iκ
136   -en {th}t th δ
137   -en {v}v′ vi ω
138   -en {v}v′ v iκ
139   -en {v}v v δ
140   -en {v}vj vi ρ
141   -de-en-fr {x}ks′ xi ω
142   -de-en-fr {x}ks′ x iκ
143   -de-en-fr {x}ks x δ
144   -
145   -#lemma=e/y gender=m1
146   -fr {dieu}dʲe dieu ε
147   -fr {dieu}dʲi dieu ε
148   -fr {quieu}k′e quieu ε
149   -fr {quieu}k′i quieu ε
150   -fr {lieu}lʲe lieu ε
151   -fr {lieu}lʲi lieu ε
152   -en {rie}rʲe rie ε
153   -en {rie}rʲi rie ε
154   -en {gie}ǯʲe gie ε
155   -en {gie}ǯʲi gie ε
156   -en {kie}k′e kie ε
157   -en {kie}k′i kie ε
158   -en {tie}tʲe tie ε
159   -en {tie}tʲi tie ε
160   -en {pie}p′e pie ε
161   -en {pie}p′i pie ε
162   -en {die}dʲe die ε
163   -en {die}dʲi die ε
164   -en {bee}b′e bee ε
165   -en {bee}b′i bee ε
166   -
167   -#lemma=e gender=m1
168   -fr {mée}me mée ε
169   -de {ge}g′e ge ε
170   -de {ke}k′e ke ε
171   -
172   -#lemma=y gender=m1
173   -en {by}b′i by ε
174   -en {dy}dʲi dy ε
175   -es {dí}dʲi dí ε
176   -fr {phy}f′i phy ε
177   -fr {guy}g′i guy ε
178   -de-en {ky}k′i ky ε
179   -en {my}m′i my ε
180   -fr {li}li li ε
181   -en {ly}li ly ε
182   -en-fr {ry}rʲi ry ε
183   -fr {sy}sʲi sy ε
184   -en {cy}sʲi cy ε
185   -en {thy}tʲi thy ε
186   -
187   -#lemma=e/ndm gender=m1
188   -fr {chais}še chais ε
189   -fr {lais}le lais ε
190   -fr {nais}ne nais ε
191   -fr {rès}re rès ε
192   -
193   -#lemma=ε
194   -en-fr {de}d de ε
195   -en {fe}f fe ε
196   -fr {phe}f phe ε
197   -en {ge}ǯ ge ε
198   -fr {gue}g gue ε
199   -en {ke}k ke ε
200   -fr {que}k que ε
201   -en-fr {le}l le ε
202   -en-fr {me}m me ε
203   -en-fr {ne}n ne ε
204   -fr {gne}n′ gne ε
205   -en-fr {re}r re ε
206   -en {se}s se ε
207   -en-fr {ce}s ce ε
208   -fr {che}š che ε
209   -en-fr {te}t te ε
210   -en {the}t the ε
211   -en-fr {ve}v ve ε
212   -en {we}ł we ε
213   -fr {se}z se ε
214   -fr {ge}ž ge ε
215   -en {oe}oł oe ε
216   -
217   -
218   -de g′el gel ε
219   -
220   -de g′e ge ε
221   -de k′e ke ε
222   -de k′i ky ε
223   -de-en-fr ks x ε
224   -
225   - r r a
226   -de r rh a
227   - t t a
228   -de t th a
229   - k k
230   -en k kh a
231   -de-en-fr ks x a
232   -en k c a
233   -
234   -en k c o
235   -
236   - b b ε
237   -fr b bes ε
238   - d d ε
239   -en-fr d de ε
240   - f f ε
241   -fr f phe ε
242   -en f ph ε
243   - g g ε
244   -fr g gue ε
245   -fr g gues ε
246   - k k ε
247   -fr k c ε
248   -fr k que ε
249   -fr k q ε
250   -fr k cq ε
251   -fr k ques ε
252   -fr k cques ε
253   -en kt ct ε
254   - m m ε
255   -en-fr m me ε
256   - n n ε
257   -en-fr n ne ε
258   -fr n nes ε
259   -fr n ng ε
260   - r r ε
261   -en-fr r re ε
262   -fr r res ε
263   -fr r rs ε
264   -en r rh ε
265   - s s ε
266   -en-fr s se ε
267   -en-fr s ce ε
268   -en s th ε
269   - t t ε
270   -fr t te ε
271   -fr t tes ε
272   -fr t thes ε
273   -en t th ε
274   -en t the ε
275   -
276   - e e j
277   -en ej ey ε
278   -
279   - a a ε
280   -en a ah ε
281   -en aja ayah ε
282   -
283   -acro {A}a A
284   -acro {B}b B
285   -acro {C}c C
286   -acro {C}k C
287   -acro {Ć}t′ Ć
288   -acro {D}d D
289   -acro {E}e E
290   -acro {F}f F
291   -acro {G}g G
292   -acro {H}h H
293   -acro {I}j I
294   -acro {J}j J
295   -acro {K}k K
296   -acro {L}l L
297   -acro {Ł}ł Ł
298   -acro {M}m M
299   -acro {N}n N
300   -acro {O}o O
301   -acro {P}p P
302   -acro {R}r R
303   -acro {S}s S
304   -acro {Ś}s′ Ś
305   -acro {T}t T
306   -acro {U}u U
307   -acro {V}v V
308   -acro {W}v W
309   -acro {X}ks X
310   -acro {Y}y Y
311   -acro {Z}z Z
312   -acro {Ż}ž Ż
313   -acro {J}jot J
314   -acro {Z}zet Z
315   -acro {Ż}žet Ż
316   -acro {v}v V
317   -acro {x}ks X
318   -acro {j}jot J
319   -acro {z}zet z
320   -acro {ż}žet Ż
321   -
322   -acro a A ε
323   -
324   -@rules
325   -pl p′ pi ω
326   -pl p′ p iκ
327   -#pl p p δ
328   -#pl p p j
329   -pl pj pi ρ
330   -pl b′ bi ω
331   -pl b′ b iκ
332   -#pl b b δ
333   -pl bj bi ρ
334   -#zbitka
335   -#pl b b j
336   -pl m′ mi ω
337   -pl m′ m iκ
338   -#pl m m δ
339   -pl m′j mi ρ
340   -pl f′ fi ω
341   -pl f′ f iκ
342   -#pl f f δ
343   -pl fj fi ρ
344   -pl v′ wi ω
345   -pl v′ w iκ
346   -pl v w δ
347   -pl vj wi ρ
348   -#zbitka
349   -#pl v w j
350   -pl t′ ć λ
351   -#zbitki
352   -#pl t′ ć u
353   -#pl t′ ć a
354   -#pl t′ ć i
355   -pl t′ ci ω
356   -#pl c c j
357   -pl t′ c iκ
358   -#pl c c μ
359   -pl d′ dź λ
360   -pl d′ dzi ω
361   -pl d′ dz iκ
362   -pl ʒ dz δ
363   -#zbitka
364   -#pl ʒ dz j
365   -#pl t t δ
366   -#pl t t j
367   -pl tʲ ti ω
368   -pl tʲ t iκ
369   -pl tj ti ρ
370   -#pl d d ξ
371   -pl dʲ di ω
372   -pl dʲ d iκ
373   -#pl d d j
374   -pl dj di ρ
375   -pl č cz δ
376   -pl čʲ czi ω
377   -pl čʲ cz iκ
378   -#pl čʲ cz j
379   -pl ǯ dż δ
380   -pl ǯʲ dżi ω
381   -pl ǯʲ dż iκ
382   -pl ǯj dżi ρ
383   -pl s′ ś λ
384   -pl s′ si ω
385   -#pl s s j
386   -pl s′ s iκ
387   -#pl s s γ
388   -pl z′ ź λ
389   -pl z′ zi ω
390   -#pl z z j
391   -pl z′ z iκ
392   -#pl z z δ
393   -pl š sz δ
394   -#pl šʲ sz j
395   -pl šʲ szi ω
396   -pl šʲ sz iκ
397   -pl ž ż δ
398   -pl žʲ żi ω
399   -pl žʲ ż iκ
400   -pl žj żi ρ
401   -#pl l l δ
402   -pl lʲ li ω
403   -pl l l iκ
404   -#pl l l j
405   -#pl ł ł δ
406   -#zbitka
407   -#pl ł ł i
408   -#zbitka
409   -#pl ł ł j
410   -pl lj li ρ
411   -pl ř rz δ
412   -#zbitka
413   -#pl ř rz j
414   -pl r r zi
415   -#pl r r γ
416   -#pl r r j
417   -pl rʲ ri ω
418   -pl rʲ r iκ
419   -pl rj ri ρ
420   -pl n′ ń λ
421   -pl n′ ni ω
422   -pl n′ n iκ
423   -#pl n n δ
424   -#pl n n j
425   -pl n′j ni ρ
426   -pl k′ ki ω
427   -pl k′ k iκ
428   -#pl k k δ
429   -#pl k k j
430   -pl k′j ki ρ
431   -pl g′ gi ω
432   -pl g′ g iκ
433   -#pl g g δ
434   -pl g′j gi ρ
435   -pl x ch δ
436   -pl xʲ chi ω
437   -pl xʲ ch iκ
438   -pl xʲj chi ρ
439   -#pl h h δ
440   -pl hʲ hi ω
441   -pl hʲ h iκ
442   -pl mar mar z
443   -pl m′er mier z
444   -pl n′e nie i
445   -#pl a a σ
446   -pl aʲ a i
447   -#pl a a i
448   -#pl e e σ
449   -pl eʲ e i
450   -#pl e e i
451   -#pl o o σ
452   -pl oʲ o i
453   -#pl o o i
454   -#pl ó ó σ
455   -pl óʲ ó i
456   -#pl ó ó i
457   -#pl u u σ
458   -pl uʲ u i
459   -#pl u u i
460   -#pl i i σ
461   -pl iʲ i i
462   -#pl i i i
463   -#pl y y σ
464   -pl yʲ y i
465   -#pl y y i
466   -#pl ą ą σ
467   -#pl ę ę σ
468   -#pl j j
469   -#pl A A
470   -#pl B B
471   -#pl C C
472   -#pl Ć Ć
473   -#pl D D
474   -#pl E E
475   -#pl F F
476   -#pl G G
477   -#pl H H
478   -#pl I I
479   -#pl J J
480   -#pl K K
481   -#pl L L
482   -#pl Ł Ł
483   -#pl M M
484   -#pl N N
485   -#pl O O
486   -#pl P P
487   -#pl R R
488   -#pl S S
489   -#pl Ś Ś
490   -#pl T T
491   -#pl U U
492   -#pl W W
493   -#pl Y Y
494   -#pl Z Z
495   -#pl Ż Ż
496   -#pl - -
497   -#pl χ́ chi
498   -#pl h́ hi
499   -
500   -fr {ch}š ch γ
501   -fr {q}k q γ
502   -fr {ng}n ng γ
503   -en {tch}č tch γ
504   -en {w}ł w
505   -en {leigh}l leigh γ
506   -de {au}ał au γ
507   -de {sch}š sch γ
508   -de {tsch}č tsch γ
509   -de {z}c z γ
510   -
511   -en {ay}aj ay γ
512   -en {ey}ej ey γ
513   -en {oy}oj oy γ
514   -
515   -en {dh}dʲ dhi ω
516   -en {dh}dʲ dh iκ
517   -en {dh}d dh δ
518   -en {gh}g′ ghi ω
519   -en {gh}g′ gh iκ
520   -en {gh}g gh δ
521   -en {kh}k′ khi ω
522   -en {kh}k′ kh iκ
523   -en {kh}k kh δ
524   -en {th}tʲ thi ω
525   -en {th}tʲ th iκ
526   -en {th}t th δ
527   -en {v}v′ vi ω
528   -en {v}v′ v iκ
529   -en {v}v v δ
530   -en {v}vj vi ρ
531   -de-en-fr {x}ks′ xi ω
532   -de-en-fr {x}ks′ x iκ
533   -de-en-fr {x}ks x δ
534   -
535   -#lemma=e/y gender=m1
536   -fr {dieu}dʲe dieu α
537   -fr {dieu}dʲi dieu β
538   -fr {quieu}k′e quieu α
539   -fr {quieu}k′i quieu β
540   -fr {lieu}lʲe lieu α
541   -fr {lieu}lʲi lieu β
542   -en {rie}rʲe rie α
543   -en {rie}rʲi rie β
544   -en {gie}ǯʲe gie α
545   -en {gie}ǯʲi gie β
546   -en {kie}k′e kie α
547   -en {kie}k′i kie β
548   -en {tie}tʲe tie α
549   -en {tie}tʲi tie β
550   -en {pie}p′e pie α
551   -en {pie}p′i pie β
552   -en {die}dʲe die α
553   -en {die}dʲi die β
554   -en {bee}b′e bee α
555   -en {bee}b′i bee β
556   -
557   -#lemma=e gender=m1
558   -fr {mée}me mée α
559   -de {ge}g′e ge α
560   -de {ke}k′e ke α
561   -
562   -#lemma=y gender=m1
563   -en {by}b′ by ’eά
564   -en {by}b′i by β
565   -en {dy}dʲ dy ’eά
566   -en {dy}dʲi dy β
567   -es {dí}dʲ dí eά
568   -es {dí}dʲi dí β
569   -fr {phy}f′ phy ’eά
570   -fr {phy}f′i phy β
571   -fr {guy}g′ guy ’eά
572   -fr {guy}g′i guy β
573   -de-en {ky}k′ ky ’eά
574   -de-en {ky}k′i ky β
575   -en {my}m′ my ’eά
576   -en {my}m′i my β
577   -fr {li}l li eά
578   -fr {li}l l iβ
579   -en {ly}l ly ’eά
580   -en {ly}li ly β
581   -en-fr {ry}rʲ ry ’eά
582   -en-fr {ry}rʲi ry β
583   -fr {sy}sʲ sy ’eά
584   -fr {sy}sʲi sy β
585   -en {cy}sʲ cy ’eά
586   -en {cy}sʲi cy β
587   -en {thy}tʲ thy ’eά
588   -en {thy}tʲi thy β
589   -
590   -#lemma=e/ndm gender=m1
591   -fr {chais}še chais ’
592   -fr {lais}le lais ’
593   -fr {nais}ne nais ’
594   -fr {rès}re rès ’
595   -
596   -#lemma=ε
597   -en-fr {de}d de ’
598   -en-fr {de}d de ε
599   -en {fe}f fe ’
600   -en {fe}f fe ε
601   -fr {phe}f phe ’
602   -fr {phe}f phe ε
603   -en {ge}ǯ ge ’
604   -en {ge}ǯ ge ε
605   -fr {gue}g gue ’
606   -fr {gue}g gue ε
607   -en {ke}k ke ’
608   -en {ke}k ke ε
609   -fr {que}k que ’
610   -fr {que}k que ε
611   -en-fr {le}l le ’
612   -en-fr {le}l le ε
613   -en-fr {me}m me ’
614   -en-fr {me}m me ε
615   -en-fr {ne}n ne ’
616   -en-fr {ne}n ne ε
617   -fr {gne}n′ gne ’
618   -fr {gne}n′ gne ε
619   -en-fr {re}r re ’
620   -en-fr {re}r re ε
621   -en {se}s se ’
622   -en {se}s se ε
623   -en-fr {ce}s ce ’
624   -en-fr {ce}s ce ε
625   -fr {che}š che ’
626   -fr {che}š che ε
627   -en-fr {te}t te ’
628   -en-fr {te}t te ε
629   -en {the}t the ’
630   -en {the}t the ε
631   -en-fr {ve}v ve ’
632   -en-fr {ve}v ve ε
633   -en {we}ł we ’
634   -en {we}ł we ε
635   -fr {se}z se ’
636   -fr {se}z se ε
637   -fr {ge}ž ge ’
638   -fr {ge}ž ge ε
639   -#z wyjątkiem sg:loc.voc
640   -en {oe}oł oe ’
641   -en {oe}oł oe ε
642   -
643   -de-en-fr ’ γ
644   -
645   - n n g
646   - z z γ
647   - b b e
648   - b b y
649   - d d y
650   - m m y
651   - s s y
652   - c c y
653   - r r y
654   - k k y
655   - l l y
656   - l l a
657   - n n a
658   - r r è
659   - d d e
660   - f f e
661   - p p h
662   - g g e
663   - g g u
664   - k k e
665   - q q u
666   - l l e
667   - m m e
668   - n n e
669   - g g n
670   - r r e
671   - s s e
672   - c c e
673   - c c h
674   - t t e
675   - t t h
676   - v v e
677   - w w e
678   - s s e
679   - o o e
680   - m m é
681   - a a y
682   - e e y
683   - o o y
684   -
685   -acro a A ε
686   -
687   -acro {A}a A
688   -acro {B}b B
689   -acro {C}c C
690   -acro {C}k C
691   -acro {Ć}t′ Ć
692   -acro {D}d D
693   -acro {E}e E
694   -acro {F}f F
695   -acro {G}g G
696   -acro {H}h H
697   -acro {I}j I
698   -acro {J}j J
699   -acro {K}k K
700   -acro {L}l L
701   -acro {Ł}ł Ł
702   -acro {M}m M
703   -acro {N}n N
704   -acro {O}o O
705   -acro {P}p P
706   -acro {R}r R
707   -acro {S}s S
708   -acro {Ś}s′ Ś
709   -acro {T}t T
710   -acro {U}u U
711   -acro {V}v V
712   -acro {W}v W
713   -acro {X}ks X
714   -acro {Y}y Y
715   -acro {Z}z Z
716   -acro {Ż}ž Ż
717   -acro {J}jot J-ot δ
718   -acro {Z}zet Z-et δ
719   -acro {Ż}žet Ż-et δ
720   -acro {z}zet z-et δ
721   -
722   -acro {B}b′e B-ie ε
723   -acro {D}d′e D-zie ε
724   -acro {F}f′e F-ie ε
725   -acro {M}m′e M-ie ε
726   -acro {N}n′e N-ie ε
727   -acro {P}p′e P-ie ε
728   -acro {R}ře R-ze ε
729   -acro {S}s′e S-ie ε
730   -acro {T}t′e -cie ε
731   -acro {V}v′e V-ie ε
732   -acro {W}v W-ie ε
733   -acro {X}ks′e X-ie ε
734   -acro {Z}z Z-ie ε
735   -acro {J}jot′e J-ocie ε
736   -acro {Z}zet′e Z-ecie ε
737   -acro {Ż}žet′e Ż-ecie ε
738   -
739   -acro {B}b′e Bie ε
740   -acro {D}d′e Dzie ε
741   -acro {F}f′e Fie ε
742   -acro {M}m′e Mie ε
743   -acro {N}n′e Nie ε
744   -acro {P}p′e Pie ε
745   -acro {R}ře Rze ε
746   -acro {S}s′e Sie ε
747   -acro {T}t′e cie ε
748   -acro {V}v′e Vie ε
749   -acro {W}v Wie ε
750   -acro {X}ks′e Xie ε
751   -acro {Z}z Zie ε
752   -acro {J}jot′e Jocie ε
753   -acro {Z}zet′e Zecie ε
754   -acro {Ż}žet′e Żecie ε
755   -
756   -acro b′e b-ie ε
757   -acro d′e d-zie ε
758   -acro f′e f-ie ε
759   -acro m′e m-ie ε
760   -acro n′e n-ie ε
761   -acro p′e p-ie ε
762   -acro ře r-ze ε
763   -acro s′e s-ie ε
764   -acro t′e -cie ε
765   -acro {v}v′e v-ie ε
766   -acro v w-ie ε
767   -acro {x}ks′e x-ie ε
768   -acro z z-ie ε
769   -acro {j}jot′e j-ocie ε
770   -acro {z}zet′e z-ecie ε
771   -acro {ż}žet′e ż-ecie ε
772   -
773   -acro {T}t′e CIE ε
774   -acro {A}a{T}t′e acie ε
775   -acro {E}e{T}t′e ecie ε
776   -acro {I}j{T}t′e icie ε
777   -acro {O}o{T}t′e ocie ε
778   -acro {U}u{T}t′e ucie ε
779   -
780   -acro {C}k′i C-i ε
781   -acro {C}k′em C-iem ε
782   -acro {G}g′i G-i ε
783   -acro {G}g′em G-iem ε
784   -acro {J}ji J-i ε
785   -acro {K}k′i K-i ε
786   -acro {K}k′em K-iem ε
787   -acro {L}li L-i ε
788   -acro - γ
789   -
790   -
morphology/data/fonetics_pl_old.dic deleted
1   -@symbols
2   -ω a ą e ę o ó u
3   -δ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
4   -γ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y ź ż - ε
5   -ξ a ą b c ć d e ę f g h k l ł m n ń o ó p r s ś t u w y - ε
6   -μ a ą b c ć d e ę f g k l ł m n ń o ó p r s ś t u w y ź ż - ε
7   -λ b c ć d f g h k l ł m n ń p r s ś t w z ź ż - ε
8   -κ b c ć d f g h j k l ł m n ń p r s ś t w z ź ż - ε
9   -σ a ą b c ć d e ę f g i h k l ł m n ń o ó p r s ś t u w y z ź ż - ε
10   -
11   -@rules
12   -ṕ pi ω
13   -ṕ p iκ
14   -p p δ
15   -b́ bi ω
16   -b′ bj ω
17   -b́ b iκ
18   -b b δ
19   -f́ fi ω
20   -f́ f iκ
21   -f f δ
22   -v́ wi ω
23   -v́ w iκ
24   -v w δ
25   -ć ć λ
26   -ć ci ω
27   -c′ cj ω
28   -ć c iκ
29   -c c μ
30   -ʒ́ dź λ
31   -ʒ́ dzi ω
32   -ʒ́ dz iκ
33   -ʒ dz δ
34   -t t δ
35   -t′ ti ω
36   -t′ t iκ
37   -d d ξ
38   -d′ di ω
39   -d′ d iκ
40   -č cz δ
41   -ǯ dż δ
42   -ś ś λ
43   -ś si ω
44   -s′ sj ω
45   -ś s iκ
46   -s s γ
47   -ź ź λ
48   -ź zi ω
49   -z′ zj ω
50   -ź z iκ
51   -z z δ
52   -š sz δ
53   -ž ż δ
54   -l l δ
55   -l′ li ω
56   -l′ l iκ
57   -ł ł δ
58   -ř rz δ
59   -r r γ
60   -r′ ri ω
61   -r′ r iκ
62   -ḿ mi ω
63   -ḿ m iκ
64   -m m δ
65   -ń ń λ
66   -ń ni ω
67   -ń n iκ
68   -n n δ
69   -ḱ ki ω
70   -ḱ k iκ
71   -k k δ
72   -ǵ gi ω
73   -ǵ g iκ
74   -g g δ
75   -χ ch δ
76   -x′ chi ω
77   -x′ ch iκ
78   -h h δ
79   -h′ hi ω
80   -h′ h iκ
81   -a a σ
82   -a′ aj
83   -e e σ
84   -e′ ej
85   -o o σ
86   -o′ oj
87   -ó ó σ
88   -ó′ ój
89   -u u σ
90   -u′ uj
91   -i i σ
92   -i′ ij
93   -y y σ
94   -y′ yj
95   -ą ą σ
96   -ę ę σ
97   -j j
98   -A A
99   -B B
100   -C C
101   -D D
102   -E E
103   -F F
104   -G G
105   -H H
106   -I I
107   -J J
108   -K K
109   -L L
110   -Ł Ł
111   -M M
112   -N N
113   -O O
114   -P P
115   -R R
116   -S S
117   -Ś Ś
118   -T T
119   -U U
120   -W W
121   -Y Y
122   -Z Z
123   -Ż Ż
124   -- -
125   -#χ́ chi
126   -#h́ hi
127   -
morphology/data/interp_rules.dic
... ... @@ -334,8 +334,10 @@
334 334 * cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:n:ncol # 836 Aachen Age Aires:s Angeles Argos:s1 Arkansas:s1 Arkansas:s3 Arnhem Auschwitz Austerlitz Baku Betlejem Birkenau Bizancjum Bonn Borneo Borodino Buffalo:s1 Burgas CB-radio
335 335 * cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m3 # 147 Aachen Arkansas:s1 Arkansas:s2 Bator Kansas:s2 Kara-Kum Kent Kyzył-Kum Michigan Missisipi:s1 Mississippi:s2 Missouri:s1 Montgomery:s3 Szoa Tet Ułan Westminster Windows Wisconsin Woodstock
336 336 * cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m2 # 36 aguti aksis argali bankiwa boa:s1 czau-czau dingo dodo emu ferrari galago grizli kagu karibu kiwi:s2 koati koendu kuandu maki mehari
337   -#* cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1 # 90 Allende Ante Bambo Bantu Bartoszcze Belmondo Brando Buffalo:s2 Capone Caruso Castro Crusoe Curie Defoe Diego Domingo Fo Gard Giuseppe Hugo:s2
  337 +* cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1 # 90 Allende Ante Bambo Bantu Bartoszcze Belmondo Brando Buffalo:s2 Capone Caruso Castro Crusoe Curie Defoe Diego Domingo Fo Gard Giuseppe Hugo:s2
  338 +* cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1|depr:pl:nom.acc.voc:m2 #
338 339 * cat=ndm subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:f # 150 Abisag Abiszag Akropolis Ananke Arachne Arkansas:s2 Ata:s Babel Beatrycze Berenike Carmen Colorado:s2 Dafne Demeter Dolores Doris Dudziak:s2 Edith Ferdydurke Gabi
  340 +* cat=ndm subst:pl:nom.gen.dat.acc.inst.loc.voc:n:pt #
339 341  
340 342 * cat=noun flex=ego lemma=a subst:sg:gen.acc:m1 # 9 burgrabia gograbia grabia hrabia margrabia murgrabia sędzia:s1 wicehrabia współsędzia
341 343 * cat=noun flex=ego lemma=a subst:sg:gen:m1 # 9 burgrabia gograbia grabia hrabia margrabia murgrabia sędzia:s1 wicehrabia współsędzia
... ... @@ -424,8 +426,6 @@
424 426 * cat=adj flex=i lemma=ε adj:pl:nom:m1:pos # 4 kontent:a niekontent:a nierad:a rad:a
425 427 * cat=adj flex=ych lemma=ε adj:pl:gen.loc:m1.m2.m3.f.n:pos|adj:pl:acc:m1:pos # 22 czyj jeden:a mój:a nasz niczyj niejeden:a1 niejeden:a2 niesamoswój nieswój niewart oboj obój:a pewien sam:a samojeden samoswój swój twój:a wart:a wasz
426 428 * cat=adj flex=ymi lemma=ε adj:pl:inst:m1.m2.m3.f.n:pos # 23 czyj jeden:a mój:a nasz niczyj niejeden:a1 niejeden:a2 niesamoswój nieswój niewart oboj obój:a pewien sam:a samojeden samoswój swój twój:a wart:a wasz
427   -* cat=adj flex=ε lemma=ε adj:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1.m2.m3.f.n:pos|adja # 1 pop:a
428   -* cat=adj flex=ε lemma=ε adj:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1.m2.m3.f.n:pos # 26 a-z a-ż beż:a blond:a ciemnoblond:a ck cool:a dum-dum fest:a frysz ful:a git:a instant jasnoblond lilaróż:a maksi nonajron:a okej:a open perfekt:a
429 429  
430 430 cat=adj:grad pref=ε flex=ą lemma=y adj:sg:acc.inst:f:com # 1076 absurdalny adekwatny agresywny aktualny aktywny akuratny ambitny apetyczny arystokratyczny atrakcyjny autentyczny baczny bajeczny banalny barwny bezbożny:a bezbronny bezczelny bezecny bezpieczny
431 431 cat=adj:grad pref=ε flex=ymi lemma=y adj:pl:inst:m1.m2.m3.f.n:com # 1076 absurdalny adekwatny agresywny aktualny aktywny akuratny ambitny apetyczny arystokratyczny atrakcyjny autentyczny baczny bajeczny banalny barwny bezbożny:a bezbronny bezczelny bezecny bezpieczny
... ...
morphology/dict.ml
... ... @@ -172,6 +172,7 @@ let split_language lang_filename in_path filename out_path =
172 172 let dict_map = Xlist.fold dict StringMap.empty (fun dict_map e ->
173 173 try
174 174 let lang = StringMap.find map e.lemma in
  175 + (* let lang = "all" in *)
175 176 StringMap.add_inc dict_map lang [e] (fun l -> e :: l)
176 177 with Not_found -> dict_map) in
177 178 StringMap.iter dict_map (fun lang dict ->
... ... @@ -214,10 +215,43 @@ let rec get_aspect lemma = function
214 215 | _ -> get_aspect lemma l)
215 216 | [] -> failwith ("get_aspect: " ^ lemma)
216 217  
  218 +let epsilon_lemmata = StringSet.of_list [
  219 + "Berkeley"; "Blake"; "Bourdelle"; "Boyle"; "Boy"; "Braille"; "Braque"; "Brooke"; "Halley";
  220 + "Constable"; "Corneille"; "Delavigne"; "Doyle"; "Drake"; "Dunaway"; "Faraday"; "Gable"; "Gay";
  221 + "George"; "Heaney"; "Google"; "Desargues"; "Disney"; "Doumergue"; "Gaulle"; "Hemingway"; "Hubble";
  222 + "Huxley"; "Jokai"; "Joule"; "Jókai"; "Lisle"; "Locke"; "Losey"; "Macaulay"; "May";
  223 + "McCartney"; "Remarque"; "Searle"; "Shelley"; "Sisley"; "Stanley"; "Thackeray"; "Updike"; "Winfrey";
  224 + "assemblage"; "boutique"; "branle"; "cartridge"; "chippendale"; "collage"; "collége"; "decoupage"; "dodge";
  225 + "entourage"; "freestyle"; "grisaille"; "grunge"; "joule"; "quiche"; "remake"; "rocaille"; "scrabble";
  226 + "siècle"; "playboy"; "oldboy"; "jockey"; "image"; "college"; "cockney"; "Montaigne"; "";
  227 + "allemande"; "anglaise"; "beguine"; "breakdance"; "courante"; "ensemble"; "high-life"; "iPhone"; "iphone";
  228 + "rolls-royce"; "Redgrave"; "cowboy"; "drive"; "Nightingale"; "Presley"; ""; ""; "";
  229 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  230 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  231 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  232 + ]
  233 +
  234 +let e_lemmata = StringSet.of_list [
  235 + "Barrès"; "Beaumarchais"; "Marchais"; "Montesquieu"; "Rabelais"; "Resnais"; "Richelieu"; ""; "";
  236 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  237 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  238 + ]
  239 +
  240 +let y_lemmata = StringSet.of_list [
  241 + "Bogorodckij"; "Gaudí"; "Szeptyćkyj"; "Toynbee"; "Trubieckoj"; "Wołżskij"; ""; ""; "";
  242 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  243 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  244 + ""; ""; ""; ""; ""; ""; ""; ""; "";
  245 + ]
  246 +
217 247 let get_lemma_suf lemma =
  248 + let lemma = Stem.simplify_lemma lemma in
  249 + if StringSet.mem epsilon_lemmata lemma then "ε" else
  250 + if StringSet.mem e_lemmata lemma then "e" else
  251 + if StringSet.mem y_lemmata lemma then "y" else
218 252 let lemma_suf =
219 253 if lemma = "" then "" else
220   - List.hd (List.rev (Xunicode.utf8_chars_of_utf8_string (Stem.simplify_lemma lemma))) in
  254 + List.hd (List.rev (Xunicode.utf8_chars_of_utf8_string lemma)) in
221 255 match lemma_suf with
222 256 "a" -> "a"
223 257 | "e" -> "e"
... ... @@ -366,7 +400,7 @@ let merge_interps lemma forms =
366 400 | _,["depr:pl:nom.acc.voc:m2";"subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1"] -> {empty_form with orth=orth; interp="subst:sg.pl:nom.gen.dat.acc.inst.loc.voc:m1|depr:pl:nom.acc.voc:m2"} :: forms
367 401 | _,[interp] -> {empty_form with orth=orth; interp=interp} :: forms
368 402 | _,interps ->
369   - (* print_endline ("merge_interps: " (*^ lemma_suf*) ^ " [\"" ^ String.concat "\";\"" interps ^ "\"]"); *)
  403 + (* print_endline ("merge_interps: " ^ lemma_suf ^ " " ^ orth ^ " [\"" ^ String.concat "\";\"" interps ^ "\"]"); *)
370 404 Xlist.fold interps forms (fun forms interp ->
371 405 {empty_form with orth=orth; interp=interp} :: forms))
372 406  
... ... @@ -460,7 +494,7 @@ let find_kolwiek_suffixes dict =
460 494  
461 495 let exceptional_lemmata = StringSet.of_list ([
462 496 (* wiele stemów *)
463   - "Apollo"; "Aujeszky"; "Białystok"; "Gózd"; "Krasnystaw"; "Różanystok"; "Wielkanoc"; "białagłowa";
  497 +(* "Apollo"; "Aujeszky"; "Białystok"; "Gózd"; "Krasnystaw"; "Różanystok"; "Wielkanoc"; "białagłowa";
464 498 "deszcz"; "imćpan"; "iściec"; "otrząs"; "rzeczpospolita"; "wilczełyko"; "woleoczko";
465 499  
466 500 "prapraojciec"; "praojciec"; "ojciec"; "współbrat"; "spółbrat"; "półbrat"; "brat";
... ... @@ -569,9 +603,12 @@ let exceptional_lemmata = StringSet.of_list ([
569 603 "nieunixowość"; "niesurvivalowy"; "niesurvivalowość"; "niesoftware’owy"; "niesoftware’owość"; "nierock’n’rollowy"; "nierock’n’rollowość"; "nierock’n’rollowo"; "niequmrańskość";
570 604 "niequmrański"; "niequizowy"; "niequizowość"; "niequeerowość"; "niequeerowo"; "niequadowy"; "nieoxfordzkość"; "nieoxfordzki"; "nienovellowskość"; "nienovellowski"; "nienewage'owy"; "nieliverpoolskość";
571 605 "nieliverpoolski"; "niekickboxingowy"; "niekickboxingowość"; "nieheavymetalowy"; "nieheavymetalowość"; "nieheavymetalowo"; "nieharvardzkość"; "nieharvardzki"; "niedeveloperskość";
572   - "niedeveloperski"; "niedaviscupowy"; "niedaviscupowość"; "niebrexitowość"; "nieampexowy"; "nieampexowość"; "newage'owy"; "newage'owość"; "newage'owo"; "liverpoolskość"; "liverpoolski";
  606 + "niedeveloperski"; "niedaviscupowy"; "niedaviscupowość"; "niebrexitowość"; "nieampexowy"; "nieampexowość"; "newage'owy"; "newage'owość"; "newage'owo"; "liverpoolskość"; "liverpoolski";*)
  607 + "Akademgorodok"; "berceuse"; "colloquium"; "cornflakes"; "dacia"; "Dziubanii"; "epeisodion"; "facsimile"; "felicia"; "Garcia"; "Giedroyc"; "glediczia";
  608 + "głasnost"; "hippie"; "Kodaly"; "KRRiT"; "lancia"; "Murii"; "Nagy"; "PAGART"; "paparazzo"; "Praha"; "pudźa"; "Selye";
  609 + "welwiczia"; "yuppi"; "yuppie"; "Zápolya"; "Zrínyi"; ""; ""; ""; ""; ""; ""; "";
573 610 ] (*@ File.load_lines "../morphology/data/obce.tab" @ File.load_lines "../morphology/data/akronimy.tab" @*)
574   - @ File.fold_tab "../morphology/data/obce_langs.tab" [] (fun l x -> List.hd x :: l) @
  611 + (*@ File.fold_tab "../morphology/data/obce_langs.tab" [] (fun l x -> List.hd x :: l)*) @
575 612 (*File.load_lines "../morphology/data/nieregularne.tab" @ File.load_lines "results/interp_validated_verb.tab" @ *)
576 613 (*File.load_lines "results/interp_validated_noun.tab" @ File.load_lines "results/interp_validated_adj.tab" @
577 614 File.load_lines "../morphology/data/validated_adj.tab" @ File.load_lines "../morphology/data/validated_noun.tab" @
... ... @@ -619,21 +656,57 @@ let lowercase_lu dict =
619 656 lemma2=Xunicode.lowercase_utf8_string entry.lemma2})
620 657  
621 658  
622   -let fonetic_translation dict =
623   - Xlist.fold dict [] (fun dict e ->
624   - try
  659 +let fonetic_translation_entry e =
625 660 (* let lemma = Stem.simplify_lemma e.lemma in *)
626 661 (* let phon_lemma = Fonetics.translate_and_check true Fonetics.rules Fonetics.rev_rules lemma in *)
627   - let phon_stem = Fonetics.translate(*_and_check*) true Fonetics.rules (*Fonetics.rev_rules*) e.stem in
  662 + let rules = match e.cat with
  663 + "noun" -> Fonetics.rules
  664 + | "" -> failwith "fonetic_translation"
  665 + | _ -> Fonetics.core_rules in
  666 + let phon_stem = Fonetics.translate true rules e.stem in
628 667 {e with (*phon_lemma = phon_lemma;*) phon_stem=Xlist.map phon_stem (fun s -> s.phon);
629 668 forms = Xlist.map e.forms (fun f ->
630   - let phon_orth = Fonetics.translate(*_and_check*) true Fonetics.rules (*Fonetics.rev_rules*) f.orth in
631   - {f with phon_orth = phon_orth})} :: dict
  669 + let phon_orth = Fonetics.translate true rules f.orth in
  670 + {f with phon_orth = phon_orth})}
  671 +
  672 +(* let fonetic_translation dict =
  673 + Xlist.fold dict [] (fun dict e ->
  674 + try (fonetic_translation_entry e) :: dict
632 675 with
633 676 Fonetics.NotFound(x,s) -> printf "NF %s %s %s\n%!" e.lemma x s; dict
634 677 | Fonetics.NotEqual(x,s,t) -> printf "NE %s %s %s %s\n%!" e.lemma x s t; dict
635 678 | Fonetics.MulipleSolutions(x,s,l) -> printf "MS %s %s %s: %s\n%!" e.lemma x s (String.concat " " l); dict
636   - | _ -> dict)
  679 + | _ -> dict) *)
  680 +
  681 +let select_rev_rules e =
  682 + match e.cat with
  683 + "noun" -> Fonetics.rev_rules
  684 + | "" -> failwith "select_rev_rules"
  685 + | _ -> Fonetics.core_rev_rules
  686 +
  687 +let create_candidates interp_flag rules e =
  688 + let e = try fonetic_translation_entry e with _ -> print_endline ("fonetic_translation_entry: " ^ e.lemma); {e with forms=[]} in
  689 + let simple_lemma = Stem.simplify_lemma e.lemma in
  690 + let phon_rev_rules = select_rev_rules e in
  691 + let forms = Xlist.rev_map e.forms (fun f ->
  692 + (* if f.orth = "poljom" then printf "phon_orths: \n %s\n%!" (String.concat "\n " (Xlist.map f.phon_orth Fonetics.string_of_phon)); *)
  693 + let candidates = Xlist.fold f.phon_orth [] (fun candidates s ->
  694 + Xlist.fold (Rules.CharTrees.find rules s.phon) candidates (fun candidates (stem,rule) ->
  695 + let candidate_lemmas = Fonetics.translate_simple true phon_rev_rules (stem ^ rule.set) in
  696 + let b = Xlist.fold candidate_lemmas false (fun b candidate_lemma ->
  697 + (* if f.orth = "poljom" then (if candidate_lemma = simple_lemma then printf "E" else printf " ");
  698 + if f.orth = "poljom" then printf " %s %s %s %s\n%!" s.phon stem (string_of_rule rule) candidate_lemma; *)
  699 + candidate_lemma = simple_lemma || b) in
  700 + if b && ((not interp_flag) || f.interp = rule.interp) then (stem,rule,s) :: candidates else candidates)) in
  701 + {f with candidates=candidates}) in
  702 + {e with forms=forms}
  703 +
  704 +let phon_validate rules dict =
  705 + Xlist.rev_map dict (fun entry ->
  706 + let entry = create_candidates false rules entry in
  707 + let forms = Xlist.rev_map entry.forms (fun form ->
  708 + if form.candidates = [] then {form with validated=false} else {form with validated=true}) in
  709 + {entry with forms=forms})
637 710  
638 711 (*let validate rules dict =
639 712 Xlist.rev_map dict (fun entry ->
... ... @@ -645,18 +718,6 @@ let fonetic_translation dict =
645 718 if candidates = [] then {form with validated=false} else {form with validated=true}) in
646 719 {entry with forms=forms})*)
647 720  
648   -let phon_validate rules dict =
649   - Xlist.rev_map dict (fun entry ->
650   - let simple_lemma = Stem.simplify_lemma entry.lemma in
651   - let forms = Xlist.rev_map entry.forms (fun form ->
652   - let candidates = Xlist.fold form.phon_orth [] (fun candidates s ->
653   - Xlist.fold (Rules.CharTrees.find rules s.phon) candidates (fun candidates (stem,rule) ->
654   - let candidate_lemmas = Fonetics.rev_translate2 true Fonetics.rev_rules (stem ^ rule.set) s.mapping in
655   - let b = Xlist.fold candidate_lemmas false (fun b candidate_lemma -> candidate_lemma = simple_lemma || b) in
656   - if b then (stem,rule) :: candidates else candidates)) in
657   - if candidates = [] then {form with validated=false} else {form with validated=true}) in
658   - {entry with forms=forms})
659   -
660 721 let validate_lu rules dict =
661 722 Xlist.rev_map dict (fun entry ->
662 723 let candidates1 = Rules.CharTrees.find rules entry.lemma1 in
... ... @@ -674,20 +735,19 @@ let validate_interp rules dict =
674 735 Xlist.rev_map dict (fun entry ->
675 736 let simple_lemma = Stem.simplify_lemma entry.lemma in
676 737 let forms = Xlist.rev_map entry.forms (fun form ->
677   - let candidates = Xlist.fold form.phon_orth [] (fun candidates s ->
678   - Xlist.fold (Rules.CharTrees.find rules s.phon) candidates (fun candidates (stem,rule) ->
679   - (* if rule.star = Ndm && not entry.ndm then candidates else
680   - if rule.star <> Ndm && entry.ndm then candidates else *)
681   - (* let candidate_lemma = Fonetics.rev_translate true Fonetics.rev_rules (stem ^ rule.set) s.mapping in
682   - if candidate_lemma = simple_lemma && form.interp = rule.interp then
683   - (stem,rule) :: candidates else candidates)) in *)
684   - let candidate_lemmas = Fonetics.rev_translate2 true Fonetics.rev_rules (stem ^ rule.set) s.mapping in
685   - let b = Xlist.fold candidate_lemmas false (fun b candidate_lemma -> candidate_lemma = simple_lemma || b) in
686   - if b && form.interp = rule.interp then
687   - (stem,rule) :: candidates else candidates)) in
  738 + let candidates = Xlist.fold (Rules.CharTrees.find rules form.orth) [] (fun candidates (stem,rule) ->
  739 + if stem ^ rule.set = simple_lemma && form.interp = rule.interp then
  740 + (stem,rule) :: candidates else candidates) in
688 741 if candidates = [] then ((*printf "validate_interp: %s\t%s\t%s\n" form.orth entry.lemma form.interp;*) {form with validated=false}) else {form with validated=true}) in
689 742 {entry with forms=forms})
690 743  
  744 +let phon_validate_interp rules dict =
  745 + Xlist.rev_map dict (fun entry ->
  746 + let entry = create_candidates true rules entry in
  747 + let forms = Xlist.rev_map entry.forms (fun form ->
  748 + if form.candidates = [] then {form with validated=false} else {form with validated=true}) in
  749 + {entry with forms=forms})
  750 +
691 751 let remove_validated_forms dict =
692 752 Xlist.fold dict [] (fun dict entry ->
693 753 let forms = Xlist.fold entry.forms [] (fun forms form ->
... ... @@ -791,11 +851,11 @@ let generate_rules rules path filename rules_filename =
791 851 let dict = remove_exceptional_lemmata dict in
792 852 let dict = find_kolwiek_suffixes dict in (* FIXME: lematy z kolwiek_suffixes nie są walidowane *)
793 853 let dict = generate_stem dict in
794   - let dict = fonetic_translation dict in
795 854 let dict = phon_validate rules dict in
796 855 let dict = remove_validated_forms dict in
797 856 let dict = remove_sup_neg_forms dict in (* FIXME *)
798 857 let rules = Xlist.fold dict StringMap.empty (fun rules entry ->
  858 + let entry = fonetic_translation_entry entry in
799 859 Xlist.fold (RuleGenerator.phon_generate_rules_entry entry) rules (fun rules (key,rule) ->
800 860 let rules2 = try StringMap.find rules key with Not_found -> StringMap.empty in
801 861 let rules2 = StringMap.add_inc rules2 rule (1,[entry.lemma]) (fun (q,l) -> q+1, if q < 20 then entry.lemma :: l else l) in
... ... @@ -837,13 +897,13 @@ let generate_interp_rules rules interp_rules selected_tags path filename rules_f
837 897 let dict = remove_exceptional_lemmata dict in
838 898 (* let dict = find_kolwiek_suffixes dict in *)
839 899 (* let dict = generate_stem dict in *)
840   - let dict = fonetic_translation dict in
841   - let dict = validate_interp interp_rules dict in
  900 + let dict = phon_validate_interp interp_rules dict in
842 901 let dict = remove_validated_forms dict in
843 902 let interp_rules = Xlist.fold dict StringMap.empty (fun interp_rules entry ->
844   - let simple_lemma = Stem.simplify_lemma entry.lemma in
  903 + (* let simple_lemma = Stem.simplify_lemma entry.lemma in *)
  904 + let entry = create_candidates false rules entry in
845 905 Xlist.fold entry.forms interp_rules (fun interp_rules form ->
846   - let candidates = RuleGenerator.phon_generate_interp_rules rules selected_tags simple_lemma form in
  906 + let candidates = RuleGenerator.phon_generate_interp_rules (*rules*) selected_tags (*simple_lemma*) form in
847 907 Xlist.fold candidates interp_rules (fun interp_rules (v,cand) ->
848 908 (* StringMap.add_inc interp_rules cand (1,[entry.lemma]) (fun (q,l) -> q+1, if q < 20 then entry.lemma :: l else l)))) in *)
849 909 StringMap.add_inc interp_rules cand (v,StringSet.singleton entry.lemma) (fun (v,set) -> v,StringSet.add set entry.lemma)))) in
... ... @@ -862,6 +922,12 @@ let generate_interp_rules rules interp_rules selected_tags path filename rules_f
862 922 fst (Rules.RuleQMap.fold freq_rules (Rules.RuleQMap.empty,1) (fun (freq_rules,i) rule freq ->
863 923 Rules.RuleQMap.add_val freq_rules {rule with id = "N" ^ string_of_int i} freq, i+1)) *)
864 924  
  925 +let manage_x_lemma stem suffix lemma =
  926 + match suffix with
  927 + "s" -> if Xstring.check_sufix "x" lemma && Xstring.check_sufix "k" stem then Xstring.cut_sufix "k" stem else stem
  928 + | "sa" -> if Xstring.check_sufix "xa" lemma && Xstring.check_sufix "k" stem then Xstring.cut_sufix "k" stem else stem
  929 + | _ -> stem
  930 +
865 931 let generate_rule_frequencies rules path filename rules_filename =
866 932 let dict = load_tab (path ^ filename) in
867 933 let dict = merge_entries dict in
... ... @@ -871,16 +937,81 @@ let generate_rule_frequencies rules path filename rules_filename =
871 937 let freq_rules = generate_ndm_rules (remove_not_ndm dict) in
872 938 let dict = remove_ndm dict in *)
873 939 let dict = remove_exceptional_lemmata dict in
874   - let dict = generate_stem dict in
875   - let dict = fonetic_translation dict in
  940 + (* let dict = generate_stem dict in *)
876 941 let freq_rules = Xlist.fold dict Rules.RuleQMap.empty(*freq_rules*) (fun freq_rules entry ->
  942 + let entry = create_candidates true rules entry in
877 943 let simple_lemma = Stem.simplify_lemma entry.lemma in
  944 + (* print_endline simple_lemma; *)
878 945 Xlist.fold entry.forms freq_rules (fun freq_rules form ->
879   - let candidates = Rules.CharTrees.find rules form.orth in
  946 + let candidates = Xlist.fold form.candidates [] (fun candidates (stem,rule,s) ->
  947 + let x_stem = manage_x_lemma stem rule.set simple_lemma in
  948 + let rule,pref_stem,short_stem = match rule.pref with
  949 + "naj" ->
  950 + let pref_stem = Fonetics.get_short_stem "" ("naj" ^ x_stem) s.mapping in
  951 + rule, pref_stem, Xstring.cut_prefix "naj" pref_stem
  952 + | "n′e" ->
  953 + let pref_stem = Fonetics.get_short_stem "" ("nie" ^ x_stem) s.mapping in
  954 + {rule with pref="nie"}, pref_stem, Xstring.cut_prefix "nie" pref_stem
  955 + | "" ->
  956 + let pref_stem = Fonetics.get_short_stem "" x_stem s.mapping in
  957 + rule, pref_stem, pref_stem
  958 + | _ -> failwith "generate_rule_frequencies" in
  959 + (* printf "%s %s %s\n%!" simple_lemma stem pref_stem; *)
  960 + let rule = {rule with
  961 + find = Xstring.cut_prefix pref_stem form.orth;
  962 + set = Xstring.cut_prefix short_stem simple_lemma} in
  963 + (stem,rule) :: candidates) in
  964 + (* printf "%s %s %d\n%!" simple_lemma form.orth (Xlist.size candidates); *)
  965 + (* let candidates = Rules.CharTrees.find rules form.orth in
880 966 let candidates = Xlist.fold candidates [] (fun candidates (stem,rule) ->
881 967 if stem ^ rule.set = simple_lemma && form.interp = rule.interp then
882   - (stem,rule) :: candidates else candidates) in
883   - if candidates = [] then freq_rules else Rules.RuleQMap.add freq_rules (snd (List.hd candidates)))) in
  968 + (stem,rule) :: candidates else candidates) in *)
  969 + let candidates2 =
  970 + Xlist.fold candidates [] (fun candidates2 (stem,rule) ->
  971 + if rule.star = Star then candidates2 else (stem,rule) :: candidates2) in
  972 + let candidates = if candidates2 = [] then candidates else candidates2 in
  973 + let _,candidates = Xlist.fold candidates (max_int,[]) (fun (min_n,min_l) (stem,rule) ->
  974 + let n = Xstring.size rule.find in
  975 + if n < min_n then n,[stem,rule] else
  976 + if n > min_n then min_n,min_l else
  977 + min_n, (stem,rule) :: min_l) in
  978 + let map = Xlist.fold candidates StringMap.empty (fun map (_,r) -> StringMap.add map (string_of_rule r) r) in
  979 + match StringMap.fold map [] (fun l s r -> (s,Rules.get_tag r.tags "con",Rules.get_tag r.tags "group",Rules.get_tag r.tags "lemma",r) :: l) with
  980 + (* match Rules.RuleSet.to_list (Xlist.fold candidates Rules.RuleSet.empty (fun set (_,r) -> Rules.RuleSet.add set r)) with *)
  981 + [] -> freq_rules
  982 + | [_,_,_,_,r] -> Rules.RuleQMap.add freq_rules r
  983 + | [_,"ʲ",_,_,_;_,"j",_,_,r] -> Rules.RuleQMap.add freq_rules r
  984 + | [_,"ʲ",_,_,_;_,"r",_,_,r] -> Rules.RuleQMap.add freq_rules r
  985 + | [_,"ʲ",_,_,_;_,"c",_,_,r] -> Rules.RuleQMap.add freq_rules r
  986 + | [_,"ʲ",_,_,_;_,"d",_,_,r] -> Rules.RuleQMap.add freq_rules r
  987 + | [_,"ʲ",_,_,_;_,"s",_,_,r] -> Rules.RuleQMap.add freq_rules r
  988 + | [_,"ʲ",_,_,_;_,"a",_,_,r] -> Rules.RuleQMap.add freq_rules r
  989 + | [_,"m′",_,_,_;_,"m",_,_,r] -> Rules.RuleQMap.add freq_rules r
  990 + | [_,"b′",_,_,_;_,"b",_,_,r] -> Rules.RuleQMap.add freq_rules r
  991 + | [_,"f′",_,_,_;_,"f",_,_,r] -> Rules.RuleQMap.add freq_rules r
  992 + | [_,"v′",_,_,_;_,"j",_,_,r] -> Rules.RuleQMap.add freq_rules r
  993 + | [_,"z",_,_,_;_,"s",_,_,r] -> Rules.RuleQMap.add freq_rules r
  994 + | [_,"c",_,_,_;_,"z",_,_,r] -> Rules.RuleQMap.add freq_rules r
  995 + | [_,"p′",_,_,_;_,"p",_,_,r] -> Rules.RuleQMap.add freq_rules r
  996 + | [_,"ǯ",_,_,_;_,"ž",_,_,r] -> Rules.RuleQMap.add freq_rules r
  997 + | [_,"v′",_,_,_;_,"v",_,_,r] -> Rules.RuleQMap.add freq_rules r
  998 + | [_,"g′",_,_,_;_,"g",_,_,r] -> Rules.RuleQMap.add freq_rules r
  999 + | [_,"š",_,_,_;_,"x",_,_,r] -> Rules.RuleQMap.add freq_rules r
  1000 + | [_,"j",_,_,r;_,"b′",_,_,_] -> Rules.RuleQMap.add freq_rules r
  1001 + | [_,"j",_,_,r;_,"g′",_,_,_] -> Rules.RuleQMap.add freq_rules r
  1002 + | [_,"j",_,_,r;_,"k",_,_,_] -> Rules.RuleQMap.add freq_rules r
  1003 + | [_,"n′",_,_,_;_,"j",_,_,r] -> Rules.RuleQMap.add freq_rules r
  1004 + | [_,"ł",_,_,_;_,"v",_,_,r] -> Rules.RuleQMap.add freq_rules r
  1005 + | [_,"k′",_,_,_;_,"k",_,_,r] -> Rules.RuleQMap.add freq_rules r
  1006 + | [_,"c",_,_,r;_,"k",_,_,_] -> Rules.RuleQMap.add freq_rules r
  1007 + | [_,_,_,"ε",_;_,_,_,"e",r] -> Rules.RuleQMap.add freq_rules r
  1008 + | [_,_,_,"y",_;_,_,_,"e",r] -> Rules.RuleQMap.add freq_rules r
  1009 + (* | [_;"\t\t\tcat=ndm",r] -> Rules.RuleQMap.add freq_rules r
  1010 + | [_;_;"\t\t\tcat=ndm",r] -> Rules.RuleQMap.add freq_rules r *)
  1011 + | l ->
  1012 + printf "%s %s\n %s\n" form.orth entry.lemma (String.concat "\n " (Xlist.map l (fun (s,_,_,_,_) -> s)));
  1013 + let _,_,_,_,r = List.hd l in
  1014 + Rules.RuleQMap.add freq_rules r)) in
884 1015 File.file_out rules_filename (fun file ->
885 1016 Rules.RuleQMap.iter freq_rules (fun rule freq ->
886 1017 fprintf file "%s\n" (Rules.string_of_freq_rule {rule with freq=freq})))
... ... @@ -892,9 +1023,9 @@ let generate_stem_dict rules_filename path filename out_filename =
892 1023 let dict = merge_entries dict in
893 1024 let dict = process_interps dict in
894 1025 let dict = remove_cat "cond" dict in
895   - let dict = fonetic_translation dict in
896 1026 (* let dict = mark_ndm dict in *)
897 1027 let stems = Xlist.fold dict StringMap.empty (fun stems entry ->
  1028 + let entry = fonetic_translation_entry entry in
898 1029 let simple_lemma,lemma_suf = Stem.simplify_lemma_full entry.lemma in
899 1030 Xlist.fold entry.forms stems (fun stems form ->
900 1031 let candidates = Rules.CharTrees.find rules form.orth in
... ...
morphology/fonetics.ml
... ... @@ -4,6 +4,9 @@ open Printf
4 4 type status = Idle | Symbols | Rules | RevSymbols | RevRules
5 5 type rule = {set: string; find: string; suf: string; lang: string}
6 6  
  7 +let string_of_phon p =
  8 + Printf.sprintf "%s %s" p.Types.phon (String.concat " " (Xlist.map p.Types.mapping (fun (a,b) -> a ^ "->" ^ b)))
  9 +
7 10 module CharTree = struct
8 11  
9 12 type t = M of t CharMap.t * rule list
... ... @@ -64,14 +67,18 @@ let prepare_rules symbol_defs rules =
64 67 {r with suf=String.concat "" l}))) in
65 68 CharTree.create rules
66 69  
67   -let rules, rev_rules =
68   - (* let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics_acro.dic" in *)
69   - let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics_pl.dic" in
70   - (* let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics_en.dic" in *)
71   - (* let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics_fr.dic" in *)
72   - (* let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics_de.dic" in *)
  70 +let select_rules lang rules =
  71 + Xlist.fold rules [] (fun rules r ->
  72 + if r.lang = lang then r :: rules else rules)
  73 +
  74 +let rules, rev_rules, core_rules, core_rev_rules =
  75 + let symbol_defs,rev_symbol_defs,rules,rev_rules = load_rules "data/fonetics.dic" in
  76 + let core_rules = select_rules "core" rules in
  77 + let core_rev_rules = select_rules "core" rev_rules in
73 78 prepare_rules symbol_defs rules,
74   - prepare_rules rev_symbol_defs rev_rules
  79 + prepare_rules rev_symbol_defs rev_rules,
  80 + prepare_rules symbol_defs core_rules,
  81 + prepare_rules rev_symbol_defs core_rev_rules
75 82  
76 83 let sufs = ["ω"; "iκ"; "ρ"; "δ"; "λ"; "i"(*; "zi"*)]
77 84  
... ... @@ -132,22 +139,22 @@ let rec translate_rec closure found found_maping rules s =
132 139 let l = if l = [] && closure then
133 140 let c,s = Xunicode.first_utf8_char_of_utf8_string s in
134 141 [s,{find=c; set=c; suf=""; lang=""}] else l in
135   - (* let n = String.length s in
136   - let c = String.sub s 0 1 in
137   - [String.sub s 1 (n-1),{find=c; set=c; suf=""}] else l in *)
138 142 List.flatten (Xlist.rev_map l (fun (t,r) ->
139 143 translate_rec closure (r.set :: found) ((r.find,r.set) :: found_maping) rules (r.suf ^ t)))
140 144  
141 145 let translate closure rules s =
142 146 (* printf "translate 1: %s\n%!" s; *)
143 147 let ll = translate_rec closure [] [] rules (s ^ "ε") in
144   - Xlist.rev_map ll (fun (phon,mapping) -> {Types.phon=String.concat "" phon; Types.mapping=[](*mapping*)})
145   -(* let s = String.concat "" l in
146   - (* printf "translate 2: %s\n%!" s; *)
147   - s*)
  148 + Xlist.rev_map ll (fun (phon,mapping) -> {Types.phon=String.concat "" phon; Types.mapping=mapping})
148 149  
149   -let string_of_phon p =
150   - Printf.sprintf "%s %s" p.Types.phon (String.concat " " (Xlist.map p.Types.mapping (fun (a,b) -> a ^ "->" ^ b)))
  150 +exception NotFound of string * string
  151 +exception NotEqual of string * string * string
  152 +exception MulipleSolutions of string * string * string list
  153 +
  154 +let translate_simple closure rules s =
  155 + let ll = translate_rec closure [] [] rules (s ^ "ε") in
  156 + if ll = [] then raise (NotFound(s,"")) else
  157 + Xlist.rev_map ll (fun (phon,mapping) -> String.concat "" phon)
151 158  
152 159 let print_phon p = print_endline (string_of_phon p)
153 160  
... ... @@ -161,22 +168,18 @@ let _ = Xlist.iter (translate true rules &quot;łódź&quot;) print_phon
161 168 let _ = Xlist.iter (translate true rules "Łódź") print_phon *)
162 169 (* let _ = translate true rules "izolował" *)
163 170  
164   -exception NotFound of string * string
165   -exception NotEqual of string * string * string
166   -exception MulipleSolutions of string * string * string list
167   -
168   -let translate_and_check closure rules rev_rules x =
169   - let l = translate closure rules x in
  171 +let translate_and_check closure rules rev_rules orth =
  172 + let l = translate closure rules orth in
170 173 Xlist.iter l (fun s ->
171 174 let y = translate closure rev_rules s.Types.phon in
172 175 let y = Xlist.map y (fun s -> s.Types.phon) in
173 176 match StringSet.to_list (StringSet.of_list y) with
174   - [] -> raise (NotFound(x,s.Types.phon))
175   - | [t] -> if t <> x then raise (NotEqual(x,s.Types.phon,t))
176   - | l -> raise (MulipleSolutions(x,s.Types.phon,l)));
177   - l
  177 + [] -> raise (NotFound(orth,s.Types.phon))
  178 + | [t] -> if t <> orth then raise (NotEqual(orth,s.Types.phon,t))
  179 + | l -> raise (MulipleSolutions(orth,s.Types.phon,l)))
  180 +
178 181  
179   -let translate_single closure rules x =
  182 +(*let translate_single closure rules x =
180 183 let y = translate closure rev_rules x in
181 184 let y = Xlist.map y (fun s -> s.Types.phon) in
182 185 match StringSet.to_list (StringSet.of_list y) with
... ... @@ -196,11 +199,17 @@ let rec rev_translate_rec x s = function
196 199 let rev_translate closure rev_rules s m =
197 200 let x,s,_ = rev_translate_rec "" s m in
198 201 if s = "" then x else
199   - x ^ (translate_single closure rev_rules s)
  202 + x ^ (translate_single closure rev_rules s)*)
200 203  
201   -let rev_translate2 closure rev_rules s m =
  204 +(*let rev_translate2 closure rev_rules s m =
202 205 let x,s,_ = rev_translate_rec "" s m in
203 206 if s = "" then [x] else
204 207 let l = translate closure rev_rules s in
205 208 if l = [] then raise (NotFound(s,"")) else
206   - Xlist.rev_map l (fun y -> x ^ y.Types.phon)
  209 + Xlist.rev_map l (fun y -> x ^ y.Types.phon)*)
  210 +
  211 +let rec get_short_stem x s = function
  212 + [] -> if s = "" then x else failwith "get_short_stem"
  213 + | (a,b) :: m ->
  214 + if Xstring.check_prefix b s then get_short_stem (x^a) (Xstring.cut_prefix b s) m
  215 + else x
... ...
morphology/generate.ml
... ... @@ -156,6 +156,7 @@ let _ =
156 156 (* test_process_interps results_path adj_sgjp_filename; *)
157 157 (* test_process_interps results_path verb_sgjp_filename; *)
158 158 (* test_process_interps results_path noun_sgjp_filename; *)
  159 + (* test_process_interps results_path "interp_not_validated_lang_all.tab"; *)
159 160 ()
160 161  
161 162  
... ... @@ -180,9 +181,15 @@ let _ =
180 181  
181 182 let test_fonetics path filename =
182 183 let dict = Dict.load_tab_full (path ^ filename) in
183   - let dict = Dict.remove_exceptional_lemmata_gen obce dict in
184   - let _ = Dict.fonetic_translation dict in
185   - ()
  184 + (* let dict = Dict.remove_exceptional_lemmata_gen obce dict in *)
  185 + Xlist.iter dict (fun e ->
  186 + Xlist.iter e.forms (fun f ->
  187 + try
  188 + Fonetics.translate_and_check true Fonetics.core_rules Fonetics.core_rev_rules f.orth
  189 + with
  190 + Fonetics.NotFound(orth,phon) -> printf "NF lemma=%s orth=%s phon=%s\n%!" e.lemma orth phon
  191 + | Fonetics.NotEqual(orth,phon,t) -> printf "NE lemma=%s orth=%s phon=%s: %s\n%!" e.lemma orth phon t
  192 + | Fonetics.MulipleSolutions(orth,phon,l) -> printf "MS lemma=%s orth=%s phon=%s: %s\n%!" e.lemma orth phon (String.concat " " l)))
186 193  
187 194 (* Test translacji fonetycznej *)
188 195 let _ =
... ... @@ -215,7 +222,6 @@ let check_stem_generation path filename =
215 222 (* let dict = Dict.mark_ndm dict in *)
216 223 let dict = Dict.remove_exceptional_lemmata dict in
217 224 let dict = Dict.find_kolwiek_suffixes dict in
218   - (* let dict = Dict.fonetic_translation dict in *)
219 225 let _ = Dict.generate_stem dict in
220 226 ()
221 227  
... ... @@ -239,7 +245,7 @@ let interp_compound_rule_trees = Rules.make_interp_compound_rule_trees compound_
239 245  
240 246 let find_not_validated_forms rules path filename out_filename =
241 247 let dict = Dict.load_tab (path ^ filename) in
242   - let dict = Dict.fonetic_translation dict in
  248 + let dict = Dict.assign_entry_cat dict in
243 249 let dict = Dict.phon_validate rules dict in
244 250 let dict = Dict.remove_validated_forms dict in
245 251 Dict.print out_filename dict
... ... @@ -250,8 +256,7 @@ let find_not_validated_entries rules path filename out_filename =
250 256 let dict = Dict.process_interps dict in
251 257 (* let dict = Dict.mark_ndm dict in
252 258 let dict = Dict.remove_ndm dict in *)
253   - let dict = Dict.remove_exceptional_lemmata dict in
254   - let dict = Dict.fonetic_translation dict in
  259 + (* let dict = Dict.remove_exceptional_lemmata dict in *)
255 260 let dict = Dict.phon_validate rules dict in
256 261 let dict = Dict.remove_validated_entries dict in
257 262 Dict.print out_filename dict
... ... @@ -281,6 +286,10 @@ let _ =
281 286 (* find_not_validated_forms compound_rule_trees results_path "lang_acro_sgjp-20170730.tab" "results/lang_acro.tab"; *)
282 287 (* find_not_validated_forms compound_rule_trees results_path "lang_la_sgjp-20170730.tab" "results/lang_la.tab"; *)
283 288 (* find_not_validated_forms compound_rule_trees results_path "lang_es_sgjp-20170730.tab" "results/lang_es.tab"; *)
  289 + (* find_not_validated_forms compound_rule_trees results_path "lang_all_sgjp-20170730.tab" "results/lang_all.tab"; *)
  290 + (* find_not_validated_entries compound_rule_trees results_path "lang_all_sgjp-20170730.tab" "results/lang_all.tab"; *)
  291 + (* find_not_validated_entries compound_rule_trees results_path noun_polimorf_filename "results/not_validated_p_noun.tab"; *)
  292 + (* find_not_validated_forms compound_rule_trees results_path "not_validated_p_noun.tab" "results/not_validated_p_noun2.tab"; *)
284 293 ()
285 294  
286 295 let find_not_validated_lemmata rules path filename out_filename =
... ... @@ -288,7 +297,6 @@ let find_not_validated_lemmata rules path filename out_filename =
288 297 let dict = Dict.merge_entries dict in
289 298 let dict = Dict.process_interps dict in
290 299 let dict = Dict.remove_exceptional_lemmata dict in
291   - let dict = Dict.fonetic_translation dict in
292 300 let dict = Dict.phon_validate rules dict in
293 301 let dict = Dict.remove_validated_entries dict in
294 302 Dict.print_lemmata out_filename dict
... ... @@ -304,7 +312,6 @@ let find_validated_lemmata rules path filename out_filename =
304 312 let dict = Dict.load_tab (path ^ filename) in
305 313 let dict = Dict.merge_entries dict in
306 314 let dict = Dict.process_interps dict in
307   - let dict = Dict.fonetic_translation dict in
308 315 let dict = Dict.phon_validate rules dict in
309 316 let dict = Dict.remove_not_validated_entries dict in
310 317 Dict.print_lemmata out_filename dict
... ... @@ -319,11 +326,11 @@ let _ =
319 326 let test_lemmatize lemma orth =
320 327 printf "test_lemmatize: %s %s\n%!" lemma orth;
321 328 let simple_lemma = Stem.simplify_lemma lemma in
322   - let phon_orths = Fonetics.translate(*_and_check*) true Fonetics.rules (*Fonetics.rev_rules*) orth in
  329 + let phon_orths = Fonetics.translate true Fonetics.core_rules orth in
323 330 printf "phon_orths: \n %s\n%!" (String.concat "\n " (Xlist.map phon_orths Fonetics.string_of_phon));
324 331 Xlist.iter phon_orths (fun phon_orth ->
325 332 Xlist.iter (Rules.CharTrees.find compound_rule_trees phon_orth.phon) (fun (stem,rule) ->
326   - let candidate_lemmas = Fonetics.rev_translate2 true Fonetics.rev_rules (stem ^ rule.set) (phon_orth.mapping) in
  333 + let candidate_lemmas = Fonetics.translate_simple true Fonetics.core_rev_rules (stem ^ rule.set) in
327 334 Xlist.iter candidate_lemmas (fun candidate_lemma ->
328 335 if candidate_lemma = simple_lemma then printf "E" else printf " ";
329 336 printf " %s %s %s %s\n%!" phon_orth.phon stem (string_of_rule rule) candidate_lemma)))
... ... @@ -430,6 +437,20 @@ let _ =
430 437 (* test_lemmatize "Lefebvre" "Lefebvre’a"; *)
431 438 (* test_lemmatize "Kayah" "Kayom"; *)
432 439 (* test_lemmatize "Dixa" "Diksie"; *)
  440 + (* test_lemmatize "White" "Whicie";
  441 + test_lemmatize "Voit" "Voicie";
  442 + test_lemmatize "Violeta" "Violecie";
  443 + test_lemmatize "veto" "vecie"; *)
  444 + (* test_lemmatize "Andrássy" "Andrássyowie"; *)
  445 + (* test_lemmatize "Cezanne" "Cezanne’ami";
  446 + test_lemmatize "Connery" "Connery’ego"; *)
  447 + (* test_lemmatize "Barrés" "Barrés’go"; *)
  448 + (* test_lemmatize "IKEA" "IKE-i"; *)
  449 + (* test_lemmatize "mix" "miksowi";
  450 + test_lemmatize "Laxa" "Laksie"; *)
  451 + (* test_lemmatize "münsterski" "münstersku"; *)
  452 + (* test_lemmatize "würzburski" "würzburskiemu"; *)
  453 + (* test_lemmatize "polje" "poljom"; *)
433 454 (* test_lemmatize "" "";
434 455 test_lemmatize "" "";
435 456 test_lemmatize "" ""; *)
... ... @@ -461,8 +482,7 @@ let find_interp_validated_lemmata interp_rules path filename out_filename =
461 482 (* let dict = Dict.remove_exceptional_lemmata dict in *)
462 483 (* let dict = find_kolwiek_suffixes dict in *)
463 484 (* let dict = generate_stem dict in *)
464   - let dict = Dict.fonetic_translation dict in
465   - let dict = Dict.validate_interp interp_rules dict in
  485 + let dict = Dict.phon_validate_interp interp_rules dict in
466 486 let dict = Dict.remove_not_validated_entries dict in
467 487 Dict.print_lemmata out_filename dict
468 488  
... ... @@ -474,8 +494,7 @@ let find_not_interp_validated_lemmata interp_rules path filename out_filename =
474 494 (* let dict = Dict.remove_exceptional_lemmata dict in *)
475 495 (* let dict = find_kolwiek_suffixes dict in *)
476 496 (* let dict = generate_stem dict in *)
477   - let dict = Dict.fonetic_translation dict in
478   - let dict = Dict.validate_interp interp_rules dict in
  497 + let dict = Dict.phon_validate_interp interp_rules dict in
479 498 let dict = Dict.remove_validated_entries dict in
480 499 Dict.print_lemmata out_filename dict
481 500  
... ... @@ -485,8 +504,7 @@ let find_not_interp_validated_entries interp_rules path filename out_filename =
485 504 let dict = Dict.process_interps dict in
486 505 (* let dict = Dict.mark_ndm dict in
487 506 let dict = Dict.remove_ndm dict in *)
488   - let dict = Dict.fonetic_translation dict in
489   - let dict = Dict.validate_interp interp_rules dict in
  507 + let dict = Dict.phon_validate_interp interp_rules dict in
490 508 let dict = Dict.remove_validated_entries dict in
491 509 Dict.print out_filename dict
492 510  
... ... @@ -494,8 +512,8 @@ let find_not_interp_validated_forms interp_rules path filename out_filename =
494 512 let dict = Dict.load_tab (path ^ filename) in
495 513 let dict = Dict.merge_entries dict in
496 514 let dict = Dict.process_interps dict in
497   - let dict = Dict.fonetic_translation dict in
498   - let dict = Dict.validate_interp interp_rules dict in
  515 + let dict = Dict.remove_exceptional_lemmata dict in
  516 + let dict = Dict.phon_validate_interp interp_rules dict in
499 517 let dict = Dict.remove_validated_forms dict in
500 518 Dict.print out_filename dict
501 519  
... ... @@ -506,8 +524,8 @@ let _ =
506 524 find_interp_validated_lemmata interp_compound_rule_trees results_path adj_sgjp_filename "results/interp_validated_adj.tab";
507 525 find_not_interp_validated_lemmata interp_compound_rule_trees results_path adj_sgjp_filename "results/interp_not_validated_adj.tab";
508 526 find_interp_validated_lemmata interp_compound_rule_trees results_path adv_sgjp_filename "results/interp_validated_adv.tab";
509   - find_not_interp_validated_lemmata interp_compound_rule_trees results_path adv_sgjp_filename "results/interp_not_validated_adv.tab"; *)
510   - (* find_interp_validated_lemmata interp_compound_rule_trees results_path verb_sgjp_filename "results/interp_validated_verb.tab";
  527 + find_not_interp_validated_lemmata interp_compound_rule_trees results_path adv_sgjp_filename "results/interp_not_validated_adv.tab";
  528 + find_interp_validated_lemmata interp_compound_rule_trees results_path verb_sgjp_filename "results/interp_validated_verb.tab";
511 529 find_not_interp_validated_lemmata interp_compound_rule_trees results_path verb_sgjp_filename "results/interp_not_validated_verb.tab";
512 530 find_interp_validated_lemmata interp_compound_rule_trees results_path "verb_sgjp_no_pref.tab" "results/interp_validated_no_pref_verb.tab";
513 531 find_not_interp_validated_lemmata interp_compound_rule_trees results_path "verb_sgjp_no_pref.tab" "results/interp_not_validated_no_pref_verb.tab"; *)
... ... @@ -519,19 +537,18 @@ let _ =
519 537 (* find_not_interp_validated_forms interp_compound_rule_trees results_path "lang_fr_sgjp-20170730.tab" "results/lang_fr.tab"; *)
520 538 (* find_not_interp_validated_forms interp_compound_rule_trees results_path "lang_de_sgjp-20170730.tab" "results/lang_de.tab"; *)
521 539 (* find_not_interp_validated_forms interp_compound_rule_trees results_path "lang_acro_sgjp-20170730.tab" "results/lang_acro.tab"; *)
  540 + (* find_not_interp_validated_forms interp_compound_rule_trees results_path "lang_all_sgjp-20170730.tab" "results/lang_all.tab"; *)
  541 + (* find_not_interp_validated_entries interp_compound_rule_trees results_path "lang_all_sgjp-20170730.tab" "results/interp_not_validated_lang_all.tab"; *)
522 542 ()
523 543  
524 544 let test_interp_lemmatize lemma orth =
525 545 printf "test_interp_lemmatize: %s %s\n%!" lemma orth;
526   - let simple_lemma = Stem.simplify_lemma lemma in
527   - let phon_orths = Fonetics.translate(*_and_check*) true Fonetics.rules (*Fonetics.rev_rules*) orth in
528   - printf "phon_orths: \n %s\n%!" (String.concat "\n " (Xlist.map phon_orths Fonetics.string_of_phon));
529   - Xlist.iter phon_orths (fun phon_orth ->
530   - Xlist.iter (Rules.CharTrees.find interp_compound_rule_trees phon_orth.phon) (fun (stem,rule) ->
531   - let candidate_lemmas = Fonetics.rev_translate2 true Fonetics.rev_rules (stem ^ rule.set) (phon_orth.mapping) in
532   - Xlist.iter candidate_lemmas (fun candidate_lemma ->
533   - if candidate_lemma = simple_lemma then (*printf "E" else printf " ";*)
534   - printf " %s %s %s %s %s\n%!" phon_orth.phon stem (string_of_rule rule) candidate_lemma rule.interp)))
  546 + let entry = {empty_entry with lemma=lemma; cat="noun"; forms=[{empty_form with orth=orth}]} in
  547 + let entry = Dict.create_candidates false interp_compound_rule_trees entry in
  548 + Xlist.iter entry.forms (fun f ->
  549 + printf "phon_orths: \n %s\n%!" (String.concat "\n " (Xlist.map f.phon_orth Fonetics.string_of_phon));
  550 + Xlist.iter f.candidates (fun (stem,rule,s) ->
  551 + printf "%s %s %s %s\n%!" s.phon stem (string_of_rule rule) rule.interp))
535 552  
536 553 let _ =
537 554 (* test_interp_lemmatize "Benveniste" "Benveniście"; *)
... ... @@ -539,6 +556,19 @@ let _ =
539 556 (* test_interp_lemmatize "Depardieu" "Depardieuch"; *)
540 557 (* test_interp_lemmatize "Braille" "Braille’u"; *)
541 558 (* test_interp_lemmatize "FAMA" "FAMA"; *)
  559 + (* test_interp_lemmatize "lichy" "lichego"; *)
  560 + (* test_interp_lemmatize "niekaraluszy" "niekaraluszych"; *)
  561 + (* test_interp_lemmatize "ninja" "ninjami"; *)
  562 + (* test_interp_lemmatize "ninja" "ninji"; *)
  563 + (* test_interp_lemmatize "mix" "miksowi"; *)
  564 + (* test_interp_lemmatize "münsterski" "münstersku"; *)
  565 + (* test_interp_lemmatize "Trubieckoj" "Trubieckich"; *)
  566 + (* test_interp_lemmatize "Balazs" "Balazsu"; *)
  567 + (* test_interp_lemmatize "Blake" "Blakiem";
  568 + test_interp_lemmatize "Bogorodckij" "Bogorodckiego";
  569 + test_interp_lemmatize "BUW" "BUW-ie";
  570 + test_interp_lemmatize "Bush" "Bushe"; *)
  571 + (* test_interp_lemmatize "ensemble" "ensemblowi"; *)
542 572 (*test_interp_lemmatize "" "";
543 573 test_interp_lemmatize "" "";
544 574 test_interp_lemmatize "" "";*)
... ... @@ -569,7 +599,11 @@ let _ =
569 599 (* Generowanie złożonych reguł zaopatrzonych we frekwencje *)
570 600 let _ =
571 601 (* Dict.generate_rule_frequencies interp_compound_rule_trees results_path adj_sgjp_filename "results/freq_rules-adj.tab"; *)
  602 + (* Dict.generate_rule_frequencies interp_compound_rule_trees results_path "verb_sgjp_no_pref.tab" "results/freq_rules-verb.tab"; *)
  603 + (* Dict.generate_rule_frequencies interp_compound_rule_trees results_path verb_sgjp_filename "results/freq_rules-verb.tab"; *)
  604 + (* Dict.generate_rule_frequencies interp_compound_rule_trees results_path "lang_all_sgjp-20170730.tab" "results/freq_rules-lang.tab"; *)
572 605 (* Dict.generate_rule_frequencies interp_compound_rule_trees sgjp_path sgjp_filename "results/freq_rules.tab"; *)
  606 + (* ignore (Sys.command "totem ~/Dokumenty/Inne/gong/gong_05m_00s.ogg"); *)
573 607 ()
574 608  
575 609 let generate_alt rules_filename path filename out_filename =
... ... @@ -588,6 +622,7 @@ let generate_alt rules_filename path filename out_filename =
588 622 let _ =
589 623 (* generate_alt "results/freq_rules-adj.tab" results_path adj_sgjp_filename "results/alt-adj.tab"; *)
590 624 (* generate_alt "results/freq_rules.tab" sgjp_path sgjp_filename "results/alt.tab"; *)
  625 + (* generate_alt "results/freq_rules-lang.tab" results_path "lang_all_sgjp-20170730.tab" "results/alt-lang.tab"; *)
591 626 ()
592 627  
593 628 (* Generowanie stemów z regułami *)
... ...
morphology/ruleGenerator.ml
... ... @@ -306,9 +306,9 @@ let calculate_person_value = function
306 306  
307 307 let calculate_rule_value tags interp =
308 308 if interp = "" then failwith "calculate_rule_value: empty interp" else
309   - let cat = try Xlist.assoc tags "cat" with Not_found -> "" in
310   - let lemma = try Xlist.assoc tags "lemma" with Not_found -> "" in
311   - let group = try Xlist.assoc tags "group" with Not_found -> "" in
  309 + let cat = Rules.get_tag tags "cat" in
  310 + let lemma = Rules.get_tag tags "lemma" in
  311 + let group = Rules.get_tag tags "group" in
312 312 if cat = "noun" || cat = "adj" then
313 313 let lemma_val = match lemma with
314 314 "a" -> 20
... ... @@ -405,7 +405,15 @@ let calculate_rule_value tags interp =
405 405 10000000 * lemma_val + 10000 * group_val + interp_val
406 406 else 0
407 407  
408   -let phon_generate_interp_rules rules selected_tags simple_lemma form =
  408 +let phon_generate_interp_rules selected_tags form =
  409 + Xlist.rev_map form.candidates (fun (_,rule,_) ->
  410 + let tags = Xlist.fold rule.tags [] (fun tags (k,v) ->
  411 + if StringSet.mem selected_tags k then (k,v) :: tags else tags) in
  412 + let tags = Xlist.sort tags Rules.compare_tag in
  413 + calculate_rule_value rule.tags form.interp,
  414 + String.concat " " (Xlist.map tags (fun (k,v) -> k ^ "=" ^ v)) ^ "\t" ^ form.interp)
  415 +
  416 +(* let phon_generate_interp_rules rules selected_tags simple_lemma form =
409 417 Xlist.fold form.phon_orth [] (fun found orth ->
410 418 let candidates = Rules.CharTrees.find rules orth.phon in
411 419 (* printf "S %d\n" (Xlist.size forms); *)
... ... @@ -418,4 +426,4 @@ let phon_generate_interp_rules rules selected_tags simple_lemma form =
418 426 if StringSet.mem selected_tags k then (k,v) :: tags else tags) in
419 427 let tags = Xlist.sort tags Rules.compare_tag in
420 428 calculate_rule_value rule.tags form.interp,
421   - String.concat " " (Xlist.map tags (fun (k,v) -> k ^ "=" ^ v)) ^ "\t" ^ form.interp) @ found)
  429 + String.concat " " (Xlist.map tags (fun (k,v) -> k ^ "=" ^ v)) ^ "\t" ^ form.interp) @ found) *)
... ...
morphology/rules.ml
... ... @@ -139,6 +139,9 @@ let rec extract_tag s rev = function
139 139 [] -> "", List.rev rev
140 140 | (k,v) :: l -> if s = k then v, List.rev rev @ l else extract_tag s ((k,v) :: rev) l
141 141  
  142 +let get_tag l tag =
  143 + try Xlist.assoc l tag with Not_found -> ""
  144 +
142 145 let create_compound_rules schemata rule_map =
143 146 let found = Xlist.fold schemata [] (fun found schema ->
144 147 let compounds = Xlist.fold schema [{star=Productive;pref="";find="";set="";tags=[];interp=""; id=""; freq=0}] (fun compounds rule_set_name ->
... ... @@ -667,9 +670,9 @@ let latex_of_schemata () =
667 670 print_endline "\\]\\end{scriptsize}\n")
668 671  
669 672 let make_rule_key r =
670   - let cat = try Xlist.assoc r.tags "cat" with Not_found -> "" in
671   - let lemma = try Xlist.assoc r.tags "lemma" with Not_found -> "" in
672   - let group = try Xlist.assoc r.tags "group" with Not_found -> "" in
  673 + let cat = get_tag r.tags "cat" in
  674 + let lemma = get_tag r.tags "lemma" in
  675 + let group = get_tag r.tags "group" in
673 676 let gender =
674 677 match Xstring.split ":" (List.hd (Xstring.split "|" r.interp)) with
675 678 "subst" :: n :: c :: g -> (String.concat ":" g)
... ... @@ -708,8 +711,8 @@ let rec get_gender = function
708 711 | [] -> failwith "get_gender"
709 712  
710 713 let latex_of_noun_interp_rules l =
711   - let cat = Xlist.assoc (List.hd l).tags "cat" in
712   - let lemma = Xlist.assoc (List.hd l).tags "lemma" in
  714 + let cat = get_tag (List.hd l).tags "cat" in
  715 + let lemma = get_tag (List.hd l).tags "lemma" in
713 716 let gender = get_gender (Xlist.map l (fun r -> r.interp)) in
714 717 let l = Xlist.map l (fun r -> {r with tags = snd (extract_tag "cat" [] r.tags)}) in
715 718 let l = Xlist.map l (fun r -> {r with tags = snd (extract_tag "lemma" [] r.tags)}) in
... ... @@ -750,12 +753,12 @@ let latex_of_noun_interp_rules l =
750 753 let latex_of_interp_rules_table l tags =
751 754 print_endline ("\\begin{longtable}{p{7cm}|" ^ String.concat "|" (Xlist.map tags (fun _ -> "l")) ^ "}");
752 755 print_endline ("interpretation & " ^ String.concat " & " tags ^ "\\\\\n\\hline");
753   - Xlist.iter (List.rev l) (fun r ->
  756 + Xlist.iter (List.rev l) (fun (r: rule) ->
754 757 let interp = String.concat "" (Xstring.split ":imperf\\.perf" r.interp) in
755 758 let interp = String.concat " " (Xstring.split "|" interp) in
756 759 print_endline ((if r.star = Star then "$\\star$" else "") ^ interp ^ " & " ^
757 760 String.concat " & " (Xlist.map tags (fun tag ->
758   - latex_escape_string (Xlist.assoc r.tags tag))) ^ "\\\\"));
  761 + latex_escape_string (get_tag r.tags tag))) ^ "\\\\"));
759 762 print_endline "\\end{longtable}"
760 763  
761 764  
... ...
morphology/types.ml
  1 +type star = Productive | Star | Ndm | Dial
  2 +
  3 +type rule = {star: star; pref: string; find: string; set: string; tags: (string * string) list;
  4 + interp: string; id: string; freq: int}
  5 +
1 6 type phon_orth = {phon: string; mapping: (string * string) list}
2   -type form = {orth: string; phon_orth: phon_orth list; interp: string; freq: int; genre: string; validated: bool}
  7 +type form = {orth: string; phon_orth: phon_orth list; interp: string; freq: int; genre: string; validated: bool; candidates: (string * rule * phon_orth) list}
3 8 type entry = {lemma: string; (*phon_lemma: string list;*) cat: string; forms: form list;
4 9 proper_type: string; (*ndm: bool;*) stem: string; phon_stem: string list; aspect: string}
5 10  
6   -let empty_form = {orth=""; phon_orth=[]; interp=""; freq=1; genre=""; validated=false}
  11 +let empty_form = {orth=""; phon_orth=[]; interp=""; freq=1; genre=""; validated=false; candidates=[]}
7 12 let empty_entry = {lemma=""; (*phon_lemma=[];*) cat=""; forms=[]; proper_type=""; (*ndm=false;*)
8 13 stem=""; phon_stem=[]; aspect=""}
9 14  
10   -type star = Productive | Star | Ndm | Dial
11   -
12   -type rule = {star: star; pref: string; find: string; set: string; tags: (string * string) list;
13   - interp: string; id: string; freq: int}
14   -
15 15 let empty_rule = {star=Productive; pref=""; find=""; set=""; tags=[]; interp=""; id=""; freq=0}
16 16  
17 17 let string_of_rule r =
... ...