#!/usr/bin/env python # coding: utf-8 # # Table of Contents #
# # Trouver la racine commune pour des mots simples # ## Exemples de mots et leurs formes pluriel, féminin, féminin pluriel # # 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 | Ami*s* | # | Féminin | Ami*e* | Ami*es* | # # 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. # In[4]: def femininregulier(singuliermasculin): return singuliermasculin + "e" # In[5]: def plurielregulier(singuliermasculin): return singuliermasculin + "s" # In[6]: def femininplurielregulier(singuliermasculin): return plurielregulier(femininregulier(singuliermasculin)) # In[7]: def formeinclusive(singuliermasculin, sep="-"): return singuliermasculin + sep + "e" + sep + "s" # In[10]: liste_de_mots_singuliermasculin = ["ami", "docteur", "compétent", "joli"] # In[11]: for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]: for mot in liste_de_mots_singuliermasculin: print(f"{mot} -> {func(mot)} à la forme {func.__name__}.") # In[13]: from IPython.display import Markdown, display # In[41]: def voirTable(mot): text = f""" | | Singulier | Pluriel | |---|---|----| | Masculin | {mot} | {plurielregulier(mot)} | | Féminin | {femininregulier(mot)} | {femininplurielregulier(mot)} | """ display(Markdown(text)) return text # In[42]: for mot in liste_de_mots_singuliermasculin: _ = voirTable(mot) # Ce genre de méthode naïve atteint vite ses limites ! # In[ ]: # In[43]: liste_erreurs = ["chien", "chat", "gentil", "cheval", "auteur", "beau"] # In[44]: for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]: print("\n") for mot in liste_erreurs: print(f"{mot} -> {func(mot)} à la forme {func.__name__}.") # In[ ]: