{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "

1  Trouver la racine commune pour des mots simples
1.1  Exemples de mots et leurs formes pluriel, féminin, féminin pluriel
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Trouver la racine commune pour des mots simples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exemples de mots et leurs formes pluriel, féminin, féminin pluriel\n", "\n", "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.\n", "\n", "Exemple :\n", "\n", "| . | Singulier | Pluriel |\n", "|---|---|---|\n", "| Masculin | Ami | Ami*s* |\n", "| Féminin | Ami*e* | Ami*es* |\n", "\n", "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.\n", "Donc la forme inclusive se fait avec \"-e-s\" en fin de mot, c'est très simple." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "def femininregulier(singuliermasculin):\n", " return singuliermasculin + \"e\"" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "def plurielregulier(singuliermasculin):\n", " return singuliermasculin + \"s\"" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def femininplurielregulier(singuliermasculin):\n", " return plurielregulier(femininregulier(singuliermasculin))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def formeinclusive(singuliermasculin, sep=\"-\"):\n", " return singuliermasculin + sep + \"e\" + sep + \"s\"" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "liste_de_mots_singuliermasculin = [\"ami\", \"docteur\", \"compétent\", \"joli\"]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "ami -> amie à la forme femininregulier.\n", "docteur -> docteure à la forme femininregulier.\n", "compétent -> compétente à la forme femininregulier.\n", "joli -> jolie à la forme femininregulier.\n", "ami -> amis à la forme plurielregulier.\n", "docteur -> docteurs à la forme plurielregulier.\n", "compétent -> compétents à la forme plurielregulier.\n", "joli -> jolis à la forme plurielregulier.\n", "ami -> amies à la forme femininplurielregulier.\n", "docteur -> docteures à la forme femininplurielregulier.\n", "compétent -> compétentes à la forme femininplurielregulier.\n", "joli -> jolies à la forme femininplurielregulier.\n", "ami -> ami-e-s à la forme formeinclusive.\n", "docteur -> docteur-e-s à la forme formeinclusive.\n", "compétent -> compétent-e-s à la forme formeinclusive.\n", "joli -> joli-e-s à la forme formeinclusive.\n" ] } ], "source": [ "for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]:\n", " for mot in liste_de_mots_singuliermasculin:\n", " print(f\"{mot} -> {func(mot)} à la forme {func.__name__}.\")" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "from IPython.display import Markdown, display" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "def voirTable(mot):\n", " text = f\"\"\"\n", "| | Singulier | Pluriel |\n", "|---|---|----|\n", "| Masculin | {mot} | {plurielregulier(mot)} |\n", "| Féminin | {femininregulier(mot)} | {femininplurielregulier(mot)} |\n", "\"\"\"\n", " display(Markdown(text))\n", " return text" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "\n", "| | Singulier | Pluriel |\n", "|---|---|----|\n", "| Masculin | ami | amis |\n", "| Féminin | amie | amies |\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "\n", "| | Singulier | Pluriel |\n", "|---|---|----|\n", "| Masculin | docteur | docteurs |\n", "| Féminin | docteure | docteures |\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "\n", "| | Singulier | Pluriel |\n", "|---|---|----|\n", "| Masculin | compétent | compétents |\n", "| Féminin | compétente | compétentes |\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "\n", "| | Singulier | Pluriel |\n", "|---|---|----|\n", "| Masculin | joli | jolis |\n", "| Féminin | jolie | jolies |\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for mot in liste_de_mots_singuliermasculin:\n", " _ = voirTable(mot)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ce genre de méthode naïve atteint vite ses limites !" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [], "source": [ "liste_erreurs = [\"chien\", \"chat\", \"gentil\", \"cheval\", \"auteur\", \"beau\"]" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "chien -> chiene à la forme femininregulier.\n", "chat -> chate à la forme femininregulier.\n", "gentil -> gentile à la forme femininregulier.\n", "cheval -> chevale à la forme femininregulier.\n", "auteur -> auteure à la forme femininregulier.\n", "beau -> beaue à la forme femininregulier.\n", "\n", "\n", "chien -> chiens à la forme plurielregulier.\n", "chat -> chats à la forme plurielregulier.\n", "gentil -> gentils à la forme plurielregulier.\n", "cheval -> chevals à la forme plurielregulier.\n", "auteur -> auteurs à la forme plurielregulier.\n", "beau -> beaus à la forme plurielregulier.\n", "\n", "\n", "chien -> chienes à la forme femininplurielregulier.\n", "chat -> chates à la forme femininplurielregulier.\n", "gentil -> gentiles à la forme femininplurielregulier.\n", "cheval -> chevales à la forme femininplurielregulier.\n", "auteur -> auteures à la forme femininplurielregulier.\n", "beau -> beaues à la forme femininplurielregulier.\n", "\n", "\n", "chien -> chien-e-s à la forme formeinclusive.\n", "chat -> chat-e-s à la forme formeinclusive.\n", "gentil -> gentil-e-s à la forme formeinclusive.\n", "cheval -> cheval-e-s à la forme formeinclusive.\n", "auteur -> auteur-e-s à la forme formeinclusive.\n", "beau -> beau-e-s à la forme formeinclusive.\n" ] } ], "source": [ "for func in [femininregulier, plurielregulier, femininplurielregulier, formeinclusive]:\n", " print(\"\\n\")\n", " for mot in liste_erreurs:\n", " print(f\"{mot} -> {func(mot)} à la forme {func.__name__}.\")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.7" }, "toc": { "colors": { "hover_highlight": "#DAA520", "running_highlight": "#FF0000", "selected_highlight": "#FFD700" }, "moveMenuLeft": true, "nav_menu": { "height": "60.8px", "width": "252px" }, "navigate_menu": true, "number_sections": true, "sideBar": false, "threshold": 4, "toc_cell": true, "toc_section_display": "block", "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }