En français, un mot régulier, comme "ami", va avoir une forme masculin, la plus courte et la plus simple, une forme pluriel masculin, une forme féminin, une forme pluriel féminin.
Exemple :
. | Singulier | Pluriel |
---|---|---|
Masculin | Ami | Amis |
Féminin | Amie | Amies |
On voit donc que la transformation masculin → féminin se fait avec un "e" en fin de mot, que le pluriel se fait avec un "s" en fin de mot. Donc la forme inclusive se fait avec "-e-s" en fin de mot, c'est très simple.
def femininregulier(singuliermasculin):
return singuliermasculin + "e"
def plurielregulier(singuliermasculin):
return singuliermasculin + "s"
def femininplurielregulier(singuliermasculin):
return plurielregulier(femininregulier(singuliermasculin))
def formeinclusive(singuliermasculin, sep="-"):
return singuliermasculin + sep + "e" + sep + "s"
liste_de_mots_singuliermasculin = ["ami", "docteur", "compétent", "joli"]
for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]:
for mot in liste_de_mots_singuliermasculin:
print(f"{mot} -> {func(mot)} à la forme {func.__name__}.")
ami -> amie à la forme femininregulier. docteur -> docteure à la forme femininregulier. compétent -> compétente à la forme femininregulier. joli -> jolie à la forme femininregulier. ami -> amis à la forme plurielregulier. docteur -> docteurs à la forme plurielregulier. compétent -> compétents à la forme plurielregulier. joli -> jolis à la forme plurielregulier. ami -> amies à la forme femininplurielregulier. docteur -> docteures à la forme femininplurielregulier. compétent -> compétentes à la forme femininplurielregulier. joli -> jolies à la forme femininplurielregulier. ami -> ami-e-s à la forme formeinclusive. docteur -> docteur-e-s à la forme formeinclusive. compétent -> compétent-e-s à la forme formeinclusive. joli -> joli-e-s à la forme formeinclusive.
from IPython.display import Markdown, display
def voirTable(mot):
text = f"""
| | Singulier | Pluriel |
|---|---|----|
| Masculin | {mot} | {plurielregulier(mot)} |
| Féminin | {femininregulier(mot)} | {femininplurielregulier(mot)} |
"""
display(Markdown(text))
return text
for mot in liste_de_mots_singuliermasculin:
_ = voirTable(mot)
Singulier | Pluriel | |
---|---|---|
Masculin | ami | amis |
Féminin | amie | amies |
Singulier | Pluriel | |
---|---|---|
Masculin | docteur | docteurs |
Féminin | docteure | docteures |
Singulier | Pluriel | |
---|---|---|
Masculin | compétent | compétents |
Féminin | compétente | compétentes |
Singulier | Pluriel | |
---|---|---|
Masculin | joli | jolis |
Féminin | jolie | jolies |
Ce genre de méthode naïve atteint vite ses limites !
liste_erreurs = ["chien", "chat", "gentil", "cheval", "auteur", "beau"]
for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]:
print("\n")
for mot in liste_erreurs:
print(f"{mot} -> {func(mot)} à la forme {func.__name__}.")
chien -> chiene à la forme femininregulier. chat -> chate à la forme femininregulier. gentil -> gentile à la forme femininregulier. cheval -> chevale à la forme femininregulier. auteur -> auteure à la forme femininregulier. beau -> beaue à la forme femininregulier. chien -> chiens à la forme plurielregulier. chat -> chats à la forme plurielregulier. gentil -> gentils à la forme plurielregulier. cheval -> chevals à la forme plurielregulier. auteur -> auteurs à la forme plurielregulier. beau -> beaus à la forme plurielregulier. chien -> chienes à la forme femininplurielregulier. chat -> chates à la forme femininplurielregulier. gentil -> gentiles à la forme femininplurielregulier. cheval -> chevales à la forme femininplurielregulier. auteur -> auteures à la forme femininplurielregulier. beau -> beaues à la forme femininplurielregulier. chien -> chien-e-s à la forme formeinclusive. chat -> chat-e-s à la forme formeinclusive. gentil -> gentil-e-s à la forme formeinclusive. cheval -> cheval-e-s à la forme formeinclusive. auteur -> auteur-e-s à la forme formeinclusive. beau -> beau-e-s à la forme formeinclusive.