Index: gc_lang/fr/dictionnaire/metagraphe.py ================================================================== --- gc_lang/fr/dictionnaire/metagraphe.py +++ gc_lang/fr/dictionnaire/metagraphe.py @@ -3,29 +3,31 @@ # Metagraphe # # By Olivier R. - 2013 import re -import unicodedata + -# Dictionnaire des caractères pour la phonétique +# Dictionnaire des caractères pour la phonétique PHMAP = str.maketrans({ 'à': 'a', 'â': 'a', 'ä': 'a', 'å': 'a', 'ā': 'a', 'ç': 'S', 'é': 'é', 'è': 'é', 'ê': 'é', 'ë': 'é', 'ē': 'é', - 'î': 'i', 'ï': 'i', 'ī': 'i', + 'î': 'i', 'ï': 'i', 'ī': 'i', 'ñ': 'ni', 'ô': 'o', 'ö': 'o', 'ō': 'o', 'ù': 'u', 'û': 'u', 'ü': 'u', 'ū': 'u', 'ÿ': 'i', 'æ': 'é' }) def getPhonex (s, sMorph): "returns a simplified phonetic string" - s = s.lower().translate(PHMAP) - if re.match("[A-Z0-9]+$", s) or len(s) == 1: + if re.match("[A-Z0-9]{2,}$", s): return s + elif len(s) == 1: + return s.lower().translate(PHMAP) else: + s = s.lower().translate(PHMAP) s = re.sub("sc(?=[eéiy])", "S", s) s = re.sub("x[cs](?=[eéiy])", "kS", s) s = re.sub("c(?=[eéiy])", "S", s) s = re.sub("c(?=[auoœ])", "k", s) s = re.sub("ge(?=[ao])", "j", s) @@ -105,9 +107,5 @@ return '' def getMetagraphe (s, sMorph): return (getPhonex(s, sMorph), getGraphix(s)) - -if __name__ == '__main__': - import doctest - doctest.testmod() Index: gc_lang/fr/dictionnaire/orthographe/FRANCAIS.dic ================================================================== --- gc_lang/fr/dictionnaire/orthographe/FRANCAIS.dic +++ gc_lang/fr/dictionnaire/orthographe/FRANCAIS.dic @@ -1,6 +1,6 @@ -83581 +83583 Ω/U.||-- po:nom is:mas is:inv lx:symb se:élec di:* fq:0 id:201049 _ po:div di:* fq:0 id:231410 & po:mg po:cjco se:@ di:* fq:5 id:220668 ℓ/U.||-- po:nom is:mas is:inv lx:symb di:* fq:4 id:223155 1ʳᵉ/-- po:adj is:fem is:sg lx:ord se:@ di:* fq:0 id:225847 @@ -26248,11 +26248,11 @@ économètre/S*() po:nom is:epi di:* fq:5 id:203036 économétricienne/F*() po:nom di:* fq:3 id:180919 économétrie/S*() po:nom is:fem di:* fq:5 id:180920 économétrique/S*() po:adj is:epi di:* fq:6 id:180921 économicisme/S*() po:nom is:mas se:philo se:écono di:* fq:4 id:229238 -économiciste/S*() po:nom po:adj is:adj se:philo se:écono di:* fq:4 id:229239 +économiciste/S*() po:nom po:adj is:epi se:philo se:écono di:* fq:4 id:229239 économicité/S*() po:nom is:fem se:écono di:* fq:4 id:223943 économicopolitique/S*() po:adj is:epi se:écono se:polit di:R fq:4 id:230206 économico-politique/S*() po:adj is:epi se:écono se:polit di:M fq:2 id:230205 économico-sociale/W*() po:adj se:polit se:écono di:* fq:2 id:224400 économie/S*() po:nom is:fem se:écono di:* fq:8 id:180911 @@ -69261,11 +69261,11 @@ rythmique/S.() po:adj is:epi di:* fq:6 id:170260 rythmiquement po:adv di:* fq:5 id:170261 Ryxeo po:patr is:epi is:inv di:X fq:1 id:227309 s po:nom is:mas is:inv di:* fq:8 id:171110 s/U.||-- po:nom is:fem is:inv lx:symb di:* fq:8 id:201100 -s’ po:mg po:properobj po:preverb po:3pe is:epi is:sg is:pl st:se se:@ di:* fq:0 id:232450 +s’ po:mg po:properobj po:preverb po:3pe is:epi is:inv st:se se:@ di:* fq:0 id:232450 S/U.||-- po:nom is:mas is:inv lx:symb di:* fq:8 id:201099 sa po:mg po:detpos is:fem is:sg se:@ di:* fq:9 id:171116 SA po:nom is:fem is:inv lx:sig di:* fq:6 id:201275 Saab po:npr is:epi is:inv se:soc se:auto di:* fq:5 id:229134 Saad po:prn is:mas is:inv di:* fq:5 id:230658 @@ -69278,10 +69278,11 @@ sabbatique/S.() po:adj is:epi di:* fq:5 id:171120 sabéenne/F.() po:nom po:adj di:* fq:5 id:171159 sabéisme/S.() po:nom is:mas di:* fq:4 id:171160 sabelle/S.() po:nom is:fem di:* fq:4 id:171121 sabellianisme/S.() po:nom is:mas di:* fq:4 id:171122 +Sabina po:prn is:fem is:inv di:* id:232923 sabine/F.() po:nom po:adj di:* fq:5 id:171123 Sabine po:prn is:fem is:inv di:* fq:6 id:125321 sabir/S.() po:nom is:mas di:* fq:5 id:171124 sablage/S.() po:nom is:mas di:* fq:5 id:171125 sable po:adj is:epi is:inv lx:col di:* fq:7 id:212757 @@ -70832,11 +70833,11 @@ scythe/S.() po:nom po:adj is:epi di:* fq:5 id:172121 scythique/S.() po:adj is:epi di:* fq:5 id:172122 sdcard/S.() po:nom is:fem lx:sig se:info di:X fq:2 id:227695 SDF po:nom is:epi is:inv lx:sig di:* fq:5 id:205926 SDTAN po:nom is:mas is:inv lx:sig di:X fq:1 id:227431 -se po:mg po:properobj po:preverb po:3pe is:epi is:sg is:pl se:@ di:* fq:9 id:172133 +se po:mg po:properobj po:preverb po:3pe is:epi is:inv se:@ di:* fq:9 id:172133 seaborgium/S.() po:nom is:mas di:* fq:2 id:182487 Seagate po:npr is:epi is:inv se:soc se:info di:* fq:3 id:226844 sea-line/S.() po:nom is:mas se:indus se:techni et:angl di:* fq:1 id:223436 SeaMonkey po:npr is:mas is:inv se:prod se:info et:angl di:* fq:3 id:201677 Seamus po:prn is:mas is:inv di:* fq:4 id:225097 @@ -81895,10 +81896,11 @@ vinyle/S.() po:nom is:mas di:* fq:5 id:179584 vinylidénique/S.() po:adj is:epi se:chim di:* fq:0 id:226500 vinylique/S.() po:adj is:epi di:* fq:5 id:179585 vinylite/S.() po:nom is:fem di:* fq:3 id:179586 vioc/S.() po:nom is:epi di:* fq:3 id:179587 +viognier/S.() po:nom is:mas se:alcool di:* id:232922 viol/S.() po:nom is:mas se:crime di:* fq:6 id:179588 violable/S.() po:adj is:epi di:* fq:4 id:220639 violacer/a0p+() po:v1__t_q_zz di:* fq:6 id:179589 Violaine po:prn is:fem is:inv di:* fq:5 id:217294 violat/S.() po:nom is:mas se:pharma et:lat di:* fq:4 id:179591