From 3f5639ac4d4a3ae11e64eedf8224c984b756c579 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Math=C3=A9o=20GUILBERT?= Date: Tue, 28 Oct 2025 19:06:09 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20:=20Update=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 120 +- images/prediction-periode-50-ans.png | Bin 0 -> 124110 bytes ...epartition-exemples-par-periode-50-ans.png | Bin 40074 -> 0 bytes work.ipynb | 55 + work_old_version.ipynb | 1440 +++++++++++++++++ 5 files changed, 1573 insertions(+), 42 deletions(-) create mode 100644 images/prediction-periode-50-ans.png delete mode 100644 images/repartition-exemples-par-periode-50-ans.png create mode 100644 work_old_version.ipynb diff --git a/README.md b/README.md index 3b0018f..42f6e60 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ - [ ] Introduction du rapport - [ ] Toute la première partie d'essaies (*Méthodes de classification essayées* & *Observations initiales*) - [ ] Comparaison de perf entre 10 ans et 50 ans (dans *Recalibrage et optimisations*) -- [ ] Mettre le code de la méthode clean_text initiale -- [ ] Mentionner la réduction des données parce que prétraitément très long +- [x] Mettre le code de la méthode clean_text initiale +- [x] Mentionner la réduction des données parce que prétraitément très long *Mathéo GUILBERT* @@ -66,7 +66,51 @@ La suppression des numéros de pages est une étape délicate car leur mise en f Voici le code qui permet ce tratement : ```py -# CODE EN ATTENTE +def clean_text(example): + text = example["complete_text"] + date = example.get("date", None) + + # Si la date contient un "-", on essaie d'extraire l'année connue (format "1234-????" ou "????-1234") ou moyenne des deux années + if "-" in str(date) and date is not None: + parts = str(date).split("-") + if (parts[1].isdigit() and len(parts[1]) == 4) and parts[0] == "????": + date = str(parts[1]) + else: + date = str(parts[0]) + + # 1. Retirer les numéros de page + text = re.sub(r"[—\-–]\s*\d+\s*[—\-–]", " ", text) + + # 2. Corriger les apostrophes et guillemets échappés + text = text.replace("\\'", "'") + text = text.replace("\\\"", "\"") + text = text.replace("\\n", " ") + text = text.replace("\\r", " ") + text = text.replace("\\t", " ") + + # 3. Corriger les mots coupés (pattern plus précis) + text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\s+([a-zàâäæçéèêëïîôùûüœ]{2,})', + r'\1\2', text) + + # 4. Corriger les cas avec plusieurs espaces + text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\s{2,}([a-zàâäæçéèêëïîôùûüœ])', + r'\1\2', text) + + # 5. Normaliser les espaces multiples + text = re.sub(r"\s+", " ", text) + + # 6. Nettoyer les caractères spéciaux + text = re.sub(r"[^\w\s\.,;:\?!'\-\"«»À-ÖØ-öø-ÿœŒ]", " ", text) + + # 7. Re-normaliser après nettoyage + text = re.sub(r"\s+", " ", text) + + # 8. Corriger la ponctuation + text = re.sub(r"\s+([,.\?!;:])", r"\1", text) + text = re.sub(r"([,.\?!;:])\s*([,.\?!;:])", r"\1\2", text) + + text = text.strip() + return {"text": text, "date": str(date)} ``` Soit dit en passant, cette étape est très longue et pour réduire ce temps de traitement et aller plus vite sur la classification elle même, j'ai travaillé sur un echantillon du jeu de données. @@ -78,6 +122,31 @@ cleaned_ds = reduced_ds.map(clean_text, remove_columns=reduced_ds.column_names) ## Méthodes de classification essayées +J'ai essayé les méthodes par TF-IDF et par embeddings avec un modèle CamemBERT-base (environ 100M de paramètres). + +Mais d'abord il y a une étape de préparation des données. + +Pour grouper les données facilement, j'ai fais une méthode `create_period_label`. + +J'ai groupé les exemples par période pour faire l'entrainement dessus. + +```py +def create_period_label(example, period_length=50): + """ + Crée une étiquette de période basée sur l'année de publication. + """ + try: + year = int(example['date']) + start_year = (year // period_length) * period_length + end_year = start_year + period_length - 1 + + return {"period": f"{start_year}-{end_year}"} + except (ValueError, TypeError): + return {"period": None} + +dataset_with_labels = cleaned_ds.map(create_period_label) +``` + ### Observations initiales @@ -144,50 +213,13 @@ def clean_text(example): ### Impacte de la granularité temporelle -Pour grouper les données facilement, j'ai fais une méthode `create_period_label`. -```py -def create_period_label(example, period_length=50): - """ - Crée une étiquette de période basée sur l'année de publication. - """ - try: - year = int(example['date']) - start_year = (year // period_length) * period_length - end_year = start_year + period_length - 1 - return {"period": f"{start_year}-{end_year}"} - except (ValueError, TypeError): - return {"period": None} - -dataset_with_labels = cleaned_ds.map(create_period_label) -df = pd.DataFrame(dataset_with_labels) - -grouped_texts = df.groupby('period')['text'].apply(list) - -period_counts = grouped_texts.apply(len).sort_index() - -plt.figure(figsize=(10, 6)) -period_counts.plot(kind='bar', color='skyblue', edgecolor='black') - -plt.title('Nombre de textes par période', fontsize=16) -plt.xlabel('Période', fontsize=12) -plt.ylabel('Nombre de textes', fontsize=12) -plt.xticks(rotation=45, ha='right') -plt.grid(axis='y', linestyle='--', alpha=0.7) -plt.tight_layout() - -plt.show() -``` - -![Répartition des exemples par période de 50 ans](images/repartition-exemples-par-periode-50-ans.png) - -Ci-dessous le graphique d'évaluation des prédictions nous montres ### Visualisations des différences entre périodes -Pour comprendre quelles caractéristiques distinguent les périodes, j'ai généré des nuages de mots par période. Méthode : calcul de TF‑IDF par groupe temporel, puis génération d'un WordCloud à partir des mots les plus importants (somme des scores TF‑IDF sur la période). +Pour comprendre quelles caractéristiques distinguent les périodes, j'ai généré des nuages de mots par période. J'ai effectué un calcul de TF‑IDF par groupe temporel, puis une génération d'un nuage de mots à partir des mots les plus importants (somme des scores TF‑IDF sur la période). ```py # Paramètres pour TF-IDF et Word Cloud @@ -222,4 +254,8 @@ for period, texts in grouped_texts.items(): Voici le résultat par période de *50 ans*. -![Nuages de mots par période de 50 ans](images/nuages-mots-periode-50-ans.png) \ No newline at end of file +![Nuages de mots par période de 50 ans](images/nuages-mots-periode-50-ans.png) + + + +![Prédiction des période (50 ans)](images/prediction-periode-50-ans.png) \ No newline at end of file diff --git a/images/prediction-periode-50-ans.png b/images/prediction-periode-50-ans.png new file mode 100644 index 0000000000000000000000000000000000000000..59749fd2e8910236265a540f8128d3eed58e462e GIT binary patch literal 124110 zcmce-by$^aw?0aVbO_QZsia6V0RbsVMOwN;K%^#Jf`|x$G=c~cA|;?mBOyqG5{h(5 z!=&>J^jqIvYwz#3&$-UIuHzqT!DP<)zVGvlXN+;jh|pA5B*de^LqkI&R93oi8x8H; zJv20ocQ_dE3bVLF4EzuM!EHrZw4!dhUubAdXv#Na?s%au*W%v2sQZ4+MA>tkVQlG8 ze7Ekf>JYVBd#X`?Xnd7!f-Z;U5gFBeoIFvp=dAQmuN0n`(~EKVJFwFM)S4k`!Z9@K*lk zm;QcFCyOb;|KXypxTXv;yqC-6{&_EdeKmh{;MMA-$LwCB|9ry@2#nVM z@rZxEmMIZ!j&vqgR^mS{gAy7%DCVDcPCQ0CJ1&qX!kouD1Cx zHlq-YC-_GE!Z9@i>CDbG#6o3<(n}$-2867Glz1K?JV^#=US3{XM~8~Ky3;^TRHNym zhzRAIHx0^d`w9&|_~x`L(iiWa^eDdQSk(D|z;MHgxOm{Kr>8ew=cikASKq{hPi2)@ zp+L8o2nR>+qwDJ~>%+|MU#DzZj}{jfg&YPQf4uLq!>lIk>gqxwk%@dJIfhT^#NJtV zr4-knqzsn74>mxCzE(->pKd|bWMr7!xN+ly(@%EwG_Qr;%(*#hD+&K!{jcE-R~(j_ zbVyXpnGikav9Vj5o1ai!om%M2GQVdqLrQ+5ST9z}>X9TaTf5?m2Z^dK1M>@}e6XnH z*bpkVgo@}w5D>jpILkji^jHdPATpjm-|CiFBPS>COc5&ZTpL65&=Q12(Tcq1{V44t zBtB1?qneEIF&-Y_tzN15!Pc*pA0OtCQq0Vg?Qt9e(XEswzI}CmhXc799p#BLq?Ye5 zq#9MZ<;NFGkrX_9SA`6H{+wLYr9h|fOIH`Yn5(6p9#s#j)_eO34^PF~&wFYf9>P5+ zr!Iq3^yb(;+ibHMSQ7b2ir24SpTox9MAW-X%D&N$L}0j&rQnnJ;Ns$%-;CW1IZteW z;(aN67D$0PSp3m1FB`i(g|p>@C3U!bO7tiuLdTU#mtOPn55a&j`!YhfWFeQt`499V0y4ia0kH53l5u;X6xJgKXz zE2jqM9bMg?bjj5Dec^lGeNkN^v4u|3vQB-4$;AX|gbyCEm5n&^Eq||Yh>?}_+2MAy z5|1`5)f*kVYDtW4&lDY#kTBPYw)E`mWJo`Nt=LOGkG3jx_8YUNkulGZdjCsA0M3W+kJPy(Sc#=eRb@byk>rSe&5jr}$w3wI@_az-=2ANG#gh`d# zWgZ?LadB}`QBf%=DGrYCusBOe;kT_HGA`-p>hc*?2{JP`+6sn+hPo{csx60-yn_#? z&nNO4d7qvf-=A)k8Fu^CZ}shs_EhavDyffKed{n@16|L0h0CHAUANe@e4*Qba0$aF@8S4n02hjD)i=dqgApVi?H zAD%mR&VA*(`{bvGLPA2On4g;Otc}&;r+)eJ<=wk?Q&Up}*m7Q8UL6c8W3`6MBWC;S zlTC7A1a<>CYNn>9Zf;vIWkRHm*5&Mf#mIF`#yn9=pYO7MATQq%!z?E&D|>c6B_HAQ zZsLTJ=vm6>D+k}$BpsD4&&|&6H7+u#mx921N-se}5ccTNqvqyjtB!;|^aXxzxIHnu z{%j(8aVi4rvJr%3TTD|pu~v8}$)TA#&a;@HXfZJ{h!}Za-Cv_S@-!u*d99)^W|5?O%+7#SJaBB7_PUE#aG2^*@Q zpa8c}St%+*@};9AKT7h$d13}jYio%15mWvo)f}gvRb8nf(NDd
  • fZIy^W~67k7 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�>zUx+81xmEQ-?Z?o{sJ9~z5FNKm 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

    Ri=F_x^#~KrL};Ps^QUA#Meg*R0O>0pf{x zi)0ctvA777l}C>{?=;QasaEgCRJgnb6w`fytZ>$W_eOXAm+zaglPuF~GMuZu%iG-W zsIzKiOrgpD7uJ%+?+fDaJmFsJX^x5Ywump!LN=$$O>>_o0IpW)tD5Kd#u^&P{a%Je zk2!n5HnAPa?glxr)faT)9?c+*QMXvHW%-l1n8$Xq(!-Bzxo;WFt~U4o$wujZUiu+= z%oOrzv!1f--QMs@T3``sfeM{=m;VJ>kUdR90E*XBh97gFtG=DSf&F796W!~bo|?E~ zmGT8jX29CCC})c|?$1Ga*BkhM_1HcagqD;K<1gM1rGN!Q!MKs!-Ai;?nc(S8yL|Qw z3pJ<-YaxMy;h%<lyqVOWg?+!q3l74-;<_`z*EvWCPGDq6bgF6JvqA&Tq~P zW+19Z&}Q7A)z{0+Y$*^GeYbI|Y`Hg%lE3cV*cu370_nJy;NkD0W%W(GH}8TcsS*2e

    )%{F>&=z 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 dh!n{bVDO-F&ME;$8%^Tj- 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 literal 0 HcmV?d00001 diff --git a/images/repartition-exemples-par-periode-50-ans.png b/images/repartition-exemples-par-periode-50-ans.png deleted file mode 100644 index 66a7d6c915c786d261c7e8adecab65bb8c4c2610..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40074 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 NXV<=+1$uTD{vQD&7xMrB diff --git a/work.ipynb b/work.ipynb index c5c8504..02f558b 100644 --- a/work.ipynb +++ b/work.ipynb @@ -135,6 +135,61 @@ "])" ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "18b534c7", + "metadata": {}, + "outputs": [], + "source": [ + "# Ancienne version\n", + "def clean_text_old(example):\n", + " text = example[\"complete_text\"]\n", + " date = example.get(\"date\", None)\n", + "\n", + " # Si la date contient un \"-\", on essaie d'extraire l'année connue (format \"1234-????\" ou \"????-1234\") ou moyenne des deux années\n", + " if \"-\" in str(date) and date is not None:\n", + " parts = str(date).split(\"-\")\n", + " if (parts[1].isdigit() and len(parts[1]) == 4) and parts[0] == \"????\":\n", + " date = str(parts[1])\n", + " else:\n", + " date = str(parts[0])\n", + "\n", + " # 1. Retirer les numéros de page\n", + " text = re.sub(r\"[—\\-–]\\s*\\d+\\s*[—\\-–]\", \" \", text)\n", + " \n", + " # 2. Corriger les apostrophes et guillemets échappés\n", + " text = text.replace(\"\\\\'\", \"'\")\n", + " text = text.replace(\"\\\\\\\"\", \"\\\"\")\n", + " text = text.replace(\"\\\\n\", \" \")\n", + " text = text.replace(\"\\\\r\", \" \")\n", + " text = text.replace(\"\\\\t\", \" \")\n", + " \n", + " # 3. Corriger les mots coupés (pattern plus précis)\n", + " text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\\s+([a-zàâäæçéèêëïîôùûüœ]{2,})', \n", + " r'\\1\\2', text)\n", + " \n", + " # 4. Corriger les cas avec plusieurs espaces\n", + " text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\\s{2,}([a-zàâäæçéèêëïîôùûüœ])', \n", + " r'\\1\\2', text)\n", + " \n", + " # 5. Normaliser les espaces multiples\n", + " text = re.sub(r\"\\s+\", \" \", text)\n", + " \n", + " # 6. Nettoyer les caractères spéciaux\n", + " text = re.sub(r\"[^\\w\\s\\.,;:\\?!'\\-\\\"«»À-ÖØ-öø-ÿœŒ]\", \" \", text)\n", + " \n", + " # 7. Re-normaliser après nettoyage\n", + " text = re.sub(r\"\\s+\", \" \", text)\n", + " \n", + " # 8. Corriger la ponctuation\n", + " text = re.sub(r\"\\s+([,.\\?!;:])\", r\"\\1\", text)\n", + " text = re.sub(r\"([,.\\?!;:])\\s*([,.\\?!;:])\", r\"\\1\\2\", text)\n", + " \n", + " text = text.strip()\n", + " return {\"text\": text, \"date\": str(date)}" + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/work_old_version.ipynb b/work_old_version.ipynb new file mode 100644 index 0000000..e90438b --- /dev/null +++ b/work_old_version.ipynb @@ -0,0 +1,1440 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "9aeaf08b-26da-4300-b4d4-e20e9b835876", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: datasets in /opt/conda/lib/python3.13/site-packages (4.2.0)\n", + "Requirement already satisfied: filelock in /opt/conda/lib/python3.13/site-packages (from datasets) (3.13.1)\n", + "Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.13/site-packages (from datasets) (2.3.3)\n", + "Requirement already satisfied: pyarrow>=21.0.0 in /opt/conda/lib/python3.13/site-packages (from datasets) (21.0.0)\n", + "Requirement already satisfied: dill<0.4.1,>=0.3.0 in /opt/conda/lib/python3.13/site-packages (from datasets) (0.4.0)\n", + "Requirement already satisfied: pandas in /opt/conda/lib/python3.13/site-packages (from datasets) (2.3.3)\n", + "Requirement already satisfied: requests>=2.32.2 in /opt/conda/lib/python3.13/site-packages (from datasets) (2.32.5)\n", + "Requirement already satisfied: httpx<1.0.0 in /opt/conda/lib/python3.13/site-packages (from datasets) (0.28.1)\n", + "Requirement already satisfied: tqdm>=4.66.3 in /opt/conda/lib/python3.13/site-packages (from datasets) (4.67.1)\n", + "Requirement already satisfied: xxhash in /opt/conda/lib/python3.13/site-packages (from datasets) (3.6.0)\n", + "Requirement already satisfied: multiprocess<0.70.17 in /opt/conda/lib/python3.13/site-packages (from datasets) (0.70.16)\n", + "Requirement already satisfied: fsspec<=2025.9.0,>=2023.1.0 in /opt/conda/lib/python3.13/site-packages (from fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (2025.9.0)\n", + "Requirement already satisfied: huggingface-hub<2.0,>=0.25.0 in /opt/conda/lib/python3.13/site-packages (from datasets) (0.35.3)\n", + "Requirement already satisfied: packaging in /opt/conda/lib/python3.13/site-packages (from datasets) (25.0)\n", + "Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.13/site-packages (from datasets) (6.0.3)\n", + "Requirement already satisfied: aiohttp!=4.0.0a0,!=4.0.0a1 in /opt/conda/lib/python3.13/site-packages (from fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (3.13.0)\n", + "Requirement already satisfied: anyio in /opt/conda/lib/python3.13/site-packages (from httpx<1.0.0->datasets) (4.11.0)\n", + "Requirement already satisfied: certifi in /opt/conda/lib/python3.13/site-packages (from httpx<1.0.0->datasets) (2025.10.5)\n", + "Requirement already satisfied: httpcore==1.* in /opt/conda/lib/python3.13/site-packages (from httpx<1.0.0->datasets) (1.0.9)\n", + "Requirement already satisfied: idna in /opt/conda/lib/python3.13/site-packages (from httpx<1.0.0->datasets) (3.10)\n", + "Requirement already satisfied: h11>=0.16 in /opt/conda/lib/python3.13/site-packages (from httpcore==1.*->httpx<1.0.0->datasets) (0.16.0)\n", + "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.13/site-packages (from huggingface-hub<2.0,>=0.25.0->datasets) (4.15.0)\n", + "Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in /opt/conda/lib/python3.13/site-packages (from huggingface-hub<2.0,>=0.25.0->datasets) (1.1.10)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (2.6.1)\n", + "Requirement already satisfied: aiosignal>=1.4.0 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (1.4.0)\n", + "Requirement already satisfied: attrs>=17.3.0 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (25.3.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (1.8.0)\n", + "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (6.7.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (0.4.1)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /opt/conda/lib/python3.13/site-packages (from aiohttp!=4.0.0a0,!=4.0.0a1->fsspec[http]<=2025.9.0,>=2023.1.0->datasets) (1.22.0)\n", + "Requirement already satisfied: charset_normalizer<4,>=2 in /opt/conda/lib/python3.13/site-packages (from requests>=2.32.2->datasets) (3.4.3)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/conda/lib/python3.13/site-packages (from requests>=2.32.2->datasets) (2.5.0)\n", + "Requirement already satisfied: sniffio>=1.1 in /opt/conda/lib/python3.13/site-packages (from anyio->httpx<1.0.0->datasets) (1.3.1)\n", + "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/conda/lib/python3.13/site-packages (from pandas->datasets) (2.9.0.post0)\n", + "Requirement already satisfied: pytz>=2020.1 in /opt/conda/lib/python3.13/site-packages (from pandas->datasets) (2025.2)\n", + "Requirement already satisfied: tzdata>=2022.7 in /opt/conda/lib/python3.13/site-packages (from pandas->datasets) (2025.2)\n", + "Requirement already satisfied: six>=1.5 in /opt/conda/lib/python3.13/site-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.17.0)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "%pip install datasets" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "07d7e876-b3ba-40ed-b6d6-81683e7ee513", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7ec0afc0b89148f19b72ec8f82927298", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Resolving data files: 0%| | 0/145 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Extraire les années de publication\n", + "years = ds['train']['date']\n", + "\n", + "# Nettoyer et convertir en entiers (certaines dates peuvent être manquantes ou non numériques)\n", + "years_clean = [int(y) for y in years if str(y).isdigit()]\n", + "\n", + "# Créer l'histogramme\n", + "plt.figure(figsize=(10, 6))\n", + "plt.hist(years_clean, bins=50, color='skyblue', edgecolor='black')\n", + "plt.xlabel('Année de publication')\n", + "plt.ylabel('Nombre de textes')\n", + "plt.title('Répartition des textes dans le temps')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "91c483b8-ae5b-4f1d-9f8a-dffc8eea16c9", + "metadata": {}, + "outputs": [], + "source": [ + "import re\n", + "\n", + "def clean_text(example):\n", + " text = example[\"complete_text\"]\n", + " date = example.get(\"date\", None)\n", + "\n", + " # Si la date contient un \"-\", on essaie d'extraire l'année connue (format \"1234-????\" ou \"????-1234\") ou moyenne des deux années\n", + " if \"-\" in str(date) and date is not None:\n", + " parts = str(date).split(\"-\")\n", + " if (parts[1].isdigit() and len(parts[1]) == 4) and parts[0] == \"????\":\n", + " date = str(parts[1])\n", + " else:\n", + " date = str(parts[0])\n", + "\n", + " # 1. Retirer les numéros de page\n", + " text = re.sub(r\"[—\\-–]\\s*\\d+\\s*[—\\-–]\", \" \", text)\n", + " \n", + " # 2. Corriger les apostrophes et guillemets échappés\n", + " text = text.replace(\"\\\\'\", \"'\")\n", + " text = text.replace(\"\\\\\\\"\", \"\\\"\")\n", + " text = text.replace(\"\\\\n\", \" \")\n", + " text = text.replace(\"\\\\r\", \" \")\n", + " text = text.replace(\"\\\\t\", \" \")\n", + " \n", + " # 3. Corriger les mots coupés (pattern plus précis)\n", + " text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\\s+([a-zàâäæçéèêëïîôùûüœ]{2,})', \n", + " r'\\1\\2', text)\n", + " \n", + " # 4. Corriger les cas avec plusieurs espaces\n", + " text = re.sub(r'([a-zàâäæçéèêëïîôùûüœ])\\s{2,}([a-zàâäæçéèêëïîôùûüœ])', \n", + " r'\\1\\2', text)\n", + " \n", + " # 5. Normaliser les espaces multiples\n", + " text = re.sub(r\"\\s+\", \" \", text)\n", + " \n", + " # 6. Nettoyer les caractères spéciaux\n", + " text = re.sub(r\"[^\\w\\s\\.,;:\\?!'\\-\\\"«»À-ÖØ-öø-ÿœŒ]\", \" \", text)\n", + " \n", + " # 7. Re-normaliser après nettoyage\n", + " text = re.sub(r\"\\s+\", \" \", text)\n", + " \n", + " # 8. Corriger la ponctuation\n", + " text = re.sub(r\"\\s+([,.\\?!;:])\", r\"\\1\", text)\n", + " text = re.sub(r\"([,.\\?!;:])\\s*([,.\\?!;:])\", r\"\\1\\2\", text)\n", + " \n", + " text = text.strip()\n", + " return {\"text\": text, \"date\": str(date)}\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1d8bc092", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Le texte nettoyé semble correct.\n" + ] + }, + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "example = ds['train'][500]\n", + "\n", + "cleaned_example = clean_text(example)\n", + "\n", + "def verify_clean_text(original_example, cleaned_example):\n", + " # Vérifie que le texte nettoyé n'est pas vide\n", + " if not cleaned_example[\"text\"]:\n", + " print(\"Le texte nettoyé est vide.\")\n", + " return False\n", + "\n", + " # Vérifie que la date est bien une année à 4 chiffres\n", + " if not (cleaned_example[\"date\"].isdigit() and len(cleaned_example[\"date\"]) == 4):\n", + " print(f\"Date nettoyée incorrecte: {cleaned_example['date']}\")\n", + " return False\n", + "\n", + " # Vérifie que les caractères spéciaux indésirables ont été retirés\n", + " if re.search(r\"[^\\w\\s\\.,;:\\?!'\\-\\\"«»À-ÖØ-öø-ÿœŒ]\", cleaned_example[\"text\"]):\n", + " print(\"Caractères spéciaux indésirables présents dans le texte nettoyé.\")\n", + " return False\n", + "\n", + " # Vérifie qu'il n'y a pas de séquences d'espaces multiples\n", + " if re.search(r\"\\s{2,}\", cleaned_example[\"text\"]):\n", + " print(\"Espaces multiples détectés dans le texte nettoyé.\")\n", + " return False\n", + "\n", + " print(\"Le texte nettoyé semble correct.\")\n", + " return True\n", + "\n", + "# Exemple d'utilisation\n", + "verify_clean_text(example, cleaned_example)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "39e38bbf", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "a1dd55cc88a34a7fb447d36646c86c4d", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Map: 0%| | 0/50000 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\\n------ ÉVALUATION FINALE ------\n", + "🎯 Accuracy finale: 0.2550\\n\n", + "📄 Rapport de classification détaillé :\n", + " precision recall f1-score support\n", + "\n", + " 1560 0.00 0.00 0.00 1\n", + " 1570 0.00 0.00 0.00 2\n", + " 1580 0.00 0.00 0.00 2\n", + " 1590 0.00 0.00 0.00 1\n", + " 1600 0.00 0.00 0.00 12\n", + " 1610 0.00 0.00 0.00 27\n", + " 1620 0.00 0.00 0.00 24\n", + " 1630 0.20 0.04 0.07 23\n", + " 1640 0.00 0.00 0.00 27\n", + " 1650 0.00 0.00 0.00 27\n", + " 1660 0.00 0.00 0.00 12\n", + " 1670 0.00 0.00 0.00 7\n", + " 1680 0.00 0.00 0.00 10\n", + " 1690 0.00 0.00 0.00 25\n", + " 1700 0.00 0.00 0.00 21\n", + " 1710 0.00 0.00 0.00 31\n", + " 1720 0.00 0.00 0.00 45\n", + " 1730 0.00 0.00 0.00 52\n", + " 1740 0.49 0.30 0.37 101\n", + " 1750 0.33 0.01 0.02 123\n", + " 1760 0.32 0.15 0.20 122\n", + " 1770 0.07 0.06 0.07 119\n", + " 1780 0.22 0.18 0.19 176\n", + " 1790 0.35 0.39 0.37 213\n", + " 1800 0.08 0.01 0.01 167\n", + " 1810 0.25 0.07 0.11 308\n", + " 1820 0.28 0.26 0.27 447\n", + " 1830 0.27 0.17 0.21 534\n", + " 1840 0.29 0.22 0.25 687\n", + " 1850 0.20 0.22 0.21 783\n", + " 1860 0.21 0.35 0.26 1036\n", + " 1870 0.25 0.40 0.31 1063\n", + " 1880 0.23 0.36 0.28 1017\n", + " 1890 0.29 0.29 0.29 898\n", + " 1900 0.29 0.35 0.32 767\n", + " 1910 0.34 0.18 0.23 466\n", + " 1920 0.29 0.04 0.07 265\n", + " 1930 0.61 0.20 0.30 217\n", + " 1940 0.00 0.00 0.00 34\n", + " 1950 0.00 0.00 0.00 23\n", + " 1960 0.00 0.00 0.00 20\n", + " 1970 0.20 0.06 0.09 18\n", + " 1980 0.00 0.00 0.00 23\n", + " 1990 0.00 0.00 0.00 10\n", + " 2000 0.00 0.00 0.00 14\n", + "\n", + " accuracy 0.26 10000\n", + " macro avg 0.14 0.10 0.10 10000\n", + "weighted avg 0.26 0.26 0.24 10000\n", + "\n" + ] + } + ], + "source": [ + "# Entraîner et évaluer avec TF-IDF et suivi de la perte\n", + "#model_tfidf_sgd = train_with_loss_tracking(\n", + "# X_train_tfidf, X_test_tfidf, \n", + "# train_labels, test_labels,\n", + "# \"TF-IDF\",\n", + "# n_epochs=30\n", + "#)\n", + "\n", + "# Entraîner et évaluer avec Embeddings et suivi de la perte\n", + "model_embedding_sgd = train_with_loss_tracking(\n", + " X_train_embedding, X_test_embedding,\n", + " train_labels, test_labels,\n", + " \"Embeddings (CamemBERT)\",\n", + " n_epochs=50\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "02f2c811", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--- Interrogation d'un texte aléatoire ---\n", + "📚 Titre : Les conserves de fruits pour la consommation familiale et pour la vente : la conservation des matières alimentaires dans les ménages, à la ferme et dans les coopératives agricoles\n", + "🗓️ Date réelle : 1912\n", + "----------------------------------------\n", + "🤖 Prédiction (TF-IDF) : 1900s\n", + "Création des embeddings pour 1 textes...\n" + ] + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3b376ef8bc3a4497917ecb41ebbd114e", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Batches: 0%| | 0/1 [00:00" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import random\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "def test_and_plot_predictions(test_dataset, num_trials=15):\n", + " \"\"\"\n", + " Sélectionne plusieurs textes aléatoires, prédit leur date avec deux modèles,\n", + " et affiche un graphique comparatif des résultats.\n", + " \n", + " Args:\n", + " test_dataset (list): La liste d'exemples à tester.\n", + " num_trials (int): Le nombre d'essais à effectuer.\n", + " \"\"\"\n", + " real_dates = []\n", + " tfidf_predictions = []\n", + " embedding_predictions = []\n", + "\n", + " print(f\"--- Lancement de {num_trials} essais de prédiction ---\")\n", + "\n", + " for i in range(num_trials):\n", + " # 1. Sélectionner un exemple aléatoire\n", + " random_example = random.choice(test_dataset)\n", + " \n", + " # Extrait la date et la convertit en entier pour le graphique\n", + " # On suppose que la date est au format 'YYYYs' (ex: '1990s')\n", + " try:\n", + " true_date_str = random_example.get('date', '0s')\n", + " true_date_int = int(true_date_str[:4]) # Convertit '1990s' en 1990\n", + " except (ValueError, IndexError):\n", + " print(f\"Avertissement : impossible de parser la date '{true_date_str}'. Essai ignoré.\")\n", + " continue\n", + "\n", + " # 2. Nettoyer le texte\n", + " cleaned_text = clean_text(random_example)['text']\n", + " text_to_predict = [cleaned_text]\n", + "\n", + " # 3. Prédiction avec le modèle TF-IDF\n", + " #tfidf_features = tfidf_vectorizer.transform(text_to_predict)\n", + " #prediction_tfidf = model_tfidf_sgd.predict(tfidf_features)[0]\n", + "\n", + " # 4. Prédiction avec le modèle Embeddings\n", + " embedding_features = create_embeddings(text_to_predict, batch_size=1)\n", + " prediction_embedding = model_embedding_sgd.predict(embedding_features)[0]\n", + " \n", + " # 5. Stocker les résultats\n", + " real_dates.append(true_date_int)\n", + " #tfidf_predictions.append(prediction_tfidf)\n", + " embedding_predictions.append(prediction_embedding)\n", + " \n", + " #print(f\"Essai {i+1}/{num_trials} | Réel : {true_date_int} | TF-IDF : {prediction_tfidf} | Embeddings : {prediction_embedding}\")\n", + " print(f\"Essai {i+1}/{num_trials} | Réel : {true_date_int} | Embeddings : {prediction_embedding}\")\n", + "\n", + " # 6. Générer le graphique\n", + " if not real_dates:\n", + " print(\"Aucune donnée à afficher.\")\n", + " return\n", + "\n", + " trials = range(1, len(real_dates) + 1)\n", + " \n", + " plt.style.use('seaborn-v0_8-whitegrid') # Style visuel agréable\n", + " plt.figure(figsize=(14, 7)) # Taille de la figure\n", + "\n", + " # Tracer chaque série de données\n", + " plt.plot(trials, real_dates, 'o-', color='green', label='Date Réelle', markersize=8)\n", + " #plt.plot(trials, tfidf_predictions, 's--', color='blue', label='Prédiction (TF-IDF)')\n", + " plt.plot(trials, embedding_predictions, '^:', color='red', label='Prédiction (Embeddings)')\n", + "\n", + " # Ajouter les titres et les légendes\n", + " plt.title('Comparaison des Prédictions de Date sur Plusieurs Essais', fontsize=16)\n", + " plt.xlabel(\"Numéro de l'essai\", fontsize=12)\n", + " plt.ylabel(\"Date (Année)\", fontsize=12)\n", + " plt.xticks(trials) # Assure que chaque essai a une graduation sur l'axe X\n", + " plt.legend(fontsize=10)\n", + " plt.tight_layout() # Ajuste le graphique pour qu'il s'affiche bien\n", + "\n", + " # Afficher le graphique\n", + " plt.show()\n", + "\n", + "\n", + "# --- Lancer le test ---\n", + "# Utilisez ds['train'] et spécifiez le nombre d'essais souhaités (ex: 20)\n", + "test_and_plot_predictions(ds['train'], num_trials=20)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.13.7" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}