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__}.")
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)
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__}.")