[{"data":1,"prerenderedAt":1037},["ShallowReactive",2],{"navigation":3,"\u002F2026-04-semaine-langues-nlp":84,"\u002F2026-04-semaine-langues-nlp-surround":1031},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80],{"title":5,"path":6,"stem":7},"Découvrir le Markdown — la syntaxe qui vous suivra partout","\u002F2025-09-decouvrir-markdown","2025-09-decouvrir-markdown",{"title":9,"path":10,"stem":11},"Le logiciel libre, en quelques idées simples","\u002F2025-09-logiciel-libre-open-source","2025-09-logiciel-libre-open-source",{"title":13,"path":14,"stem":15},"Utiliser l'ENT et Capytale au quotidien","\u002F2025-09-utiliser-ent-capytale","2025-09-utiliser-ent-capytale",{"title":17,"path":18,"stem":19},"Excalidraw — dessiner des schémas qu'on ose montrer","\u002F2025-10-excalidraw-schemas","2025-10-excalidraw-schemas",{"title":21,"path":22,"stem":23},"Concours Castor — l'informatique en 45 minutes","\u002F2025-11-concours-castor","2025-11-concours-castor",{"title":25,"path":26,"stem":27},"Godot, un moteur de jeu libre pour démarrer sérieusement","\u002F2026-01-godot-moteur-jeu","2026-01-godot-moteur-jeu",{"title":29,"path":30,"stem":31},"Prologin — s'entraîner toute l'année à l'algorithmique","\u002F2026-01-prologin-entrainement","2026-01-prologin-entrainement",{"title":33,"path":34,"stem":35},"Le voyage d'un programme à travers le CPU","\u002F2026-02-voyage-programme-cpu","2026-02-voyage-programme-cpu",{"title":37,"path":38,"stem":39},"Coloration syntaxique côté serveur avec Shiki","\u002F2026-03-tuto-shiki","2026-03-tuto-shiki",{"title":41,"path":42,"stem":43},"Bun 1.2 — où en est-on ?","\u002F2026-03-veille-bun","2026-03-veille-bun",{"title":45,"path":46,"stem":47},"Club prologin — bilan de la session","\u002F2026-04-club-prologin","2026-04-club-prologin",{"title":49,"path":50,"stem":51},"L'IA dans nos cours, sans s'y noyer","\u002F2026-04-edito-ia-cours","2026-04-edito-ia-cours",{"title":53,"path":54,"stem":55},"Semaine des langues — quand Python lit nos textes","\u002F2026-04-semaine-langues-nlp","2026-04-semaine-langues-nlp",{"title":57,"path":58,"stem":59},"Sous le capot de nsi.rocks","\u002F2026-05-coulisses-nsi-rocks","2026-05-coulisses-nsi-rocks",{"title":61,"path":62,"stem":63},"Créer votre premier jeu vidéo — le guide pragmatique","\u002F2026-05-creer-jeu-video-debutant","2026-05-creer-jeu-video-debutant",{"title":65,"path":66,"stem":67},"Le tableau de bord élève — mode d'emploi","\u002F2026-05-dashboard-eleve-mode-emploi","2026-05-dashboard-eleve-mode-emploi",{"title":69,"path":70,"stem":71},"Évaluations notées, auto-évaluations — qui sert à quoi","\u002F2026-05-evaluations-et-auto-eval","2026-05-evaluations-et-auto-eval",{"title":73,"path":74,"stem":75},"La Nuit du Code 2026 — coder en équipe, manette en main","\u002F2026-05-nuit-du-code-2026","2026-05-nuit-du-code-2026",{"title":77,"path":78,"stem":79},"Pourquoi LLVM ?","\u002F2026-05-pourquoi-llvm","2026-05-pourquoi-llvm",{"title":81,"path":82,"stem":83},"git bisect : trouver un bug en log(n) étapes","\u002F2026-05-tuto-git-bisect","2026-05-tuto-git-bisect",{"id":85,"title":53,"authors":86,"body":87,"category":86,"date":86,"description":1018,"extension":1019,"featured":1020,"image":86,"meta":1021,"navigation":311,"path":54,"readingTime":153,"seo":1022,"stem":55,"__hash__":1030},"posts\u002F2026-04-semaine-langues-nlp.md",null,{"type":88,"value":89,"toc":1008},"minimark",[90,99,104,133,137,140,236,254,265,284,288,367,371,378,453,457,479,544,548,765,769,990,994,1004],[91,92,93,94,98],"p",{},"À l'occasion de la ",[95,96,97],"strong",{},"Semaine des langues",", nous avons exploré comment les\nordinateurs « lisent » le langage humain. Voici le déroulé de la séance,\npour celles et ceux qui veulent rejouer les expériences à la maison.",[100,101,103],"h2",{"id":102},"modules-python-utilisés","Modules Python utilisés",[105,106,107,115,121,127],"ul",{},[108,109,110,114],"li",{},[111,112,113],"code",{},"spacy"," — traitement du langage naturel (tokenisation, lemmatisation).",[108,116,117,120],{},[111,118,119],{},"deep-translator"," — traduction via plusieurs services en ligne.",[108,122,123,126],{},[111,124,125],{},"wordcloud"," — génération de nuages de mots.",[108,128,129,132],{},[111,130,131],{},"matplotlib"," — affichage du nuage.",[100,134,136],{"id":135},"comparer-des-chaînes-un-mot-de-passe-trop-simple","Comparer des chaînes : un mot de passe trop simple",[91,138,139],{},"L'opération la plus élémentaire sur des chaînes consiste à les comparer.",[141,142,147],"pre",{"className":143,"code":144,"language":145,"meta":146,"style":146},"language-py shiki shiki-themes github-light github-light github-dark","mot_passe = \"chateau\"\nreponse = input(\"Quel est le mot de passe ? \")\nif reponse == mot_passe:\n    print(\"Vous pouvez accéder aux documents secrets.\")\nelse:\n    print(\"Mot de passe incorrect.\")\n","py","",[111,148,149,166,187,202,215,224],{"__ignoreMap":146},[150,151,154,158,162],"span",{"class":152,"line":153},"line",1,[150,155,157],{"class":156},"sxrX7","mot_passe ",[150,159,161],{"class":160},"s8jYJ","=",[150,163,165],{"class":164},"sIIMD"," \"chateau\"\n",[150,167,169,172,174,178,181,184],{"class":152,"line":168},2,[150,170,171],{"class":156},"reponse ",[150,173,161],{"class":160},[150,175,177],{"class":176},"sBjJW"," input",[150,179,180],{"class":156},"(",[150,182,183],{"class":164},"\"Quel est le mot de passe ? \"",[150,185,186],{"class":156},")\n",[150,188,190,193,196,199],{"class":152,"line":189},3,[150,191,192],{"class":160},"if",[150,194,195],{"class":156}," reponse ",[150,197,198],{"class":160},"==",[150,200,201],{"class":156}," mot_passe:\n",[150,203,205,208,210,213],{"class":152,"line":204},4,[150,206,207],{"class":176},"    print",[150,209,180],{"class":156},[150,211,212],{"class":164},"\"Vous pouvez accéder aux documents secrets.\"",[150,214,186],{"class":156},[150,216,218,221],{"class":152,"line":217},5,[150,219,220],{"class":160},"else",[150,222,223],{"class":156},":\n",[150,225,227,229,231,234],{"class":152,"line":226},6,[150,228,207],{"class":176},[150,230,180],{"class":156},[150,232,233],{"class":164},"\"Mot de passe incorrect.\"",[150,235,186],{"class":156},[237,238,239],"warning",{},[91,240,241,242,245,246,249,250,253],{},"Quelles sont les limites de cette méthode ? Essayez ",[111,243,244],{},"\"Chateau\"",", ",[111,247,248],{},"\" chateau\"",",\n",[111,251,252],{},"\"chateau \"",". Discutez : faut-il être tolérant ? À quel prix ?",[91,255,256,257,264],{},"Pour aller plus loin, le projet ",[258,259,263],"a",{"href":260,"rel":261},"https:\u002F\u002Fgandalf.lakera.ai\u002F",[262],"nofollow","Gandalf"," propose\nun chatbot qu'il faut convaincre de révéler un mot de passe — une excellente\nintroduction aux failles des modèles de langage.",[91,266,267,268,273,274,277,278,283],{},"Le site ",[258,269,272],{"href":270,"rel":271},"https:\u002F\u002Fneal.fun\u002Fpassword-game\u002F",[262],"The Password Game"," ludifie le\nchoix d'un mot de passe en empilant des règles absurdes. Sous le capot, ces\nrègles s'appuient sur des ",[95,275,276],{},"expressions régulières"," (",[258,279,282],{"href":280,"rel":281},"https:\u002F\u002Fregex101.com",[262],"regex101.com","\npermet de les tester).",[100,285,287],{"id":286},"traduire-un-texte-en-quelques-lignes","Traduire un texte en quelques lignes",[141,289,291],{"className":143,"code":290,"language":145,"meta":146,"style":146},"from deep_translator import GoogleTranslator\n\ntexte = \"La Tour Eiffel, située sur le Champ de Mars à Paris, est l'une des structures les plus célèbres du monde.\"\n\ntraduction = GoogleTranslator(source='auto', target='en').translate(texte)\nprint(traduction)\n",[111,292,293,307,313,323,327,359],{"__ignoreMap":146},[150,294,295,298,301,304],{"class":152,"line":153},[150,296,297],{"class":160},"from",[150,299,300],{"class":156}," deep_translator ",[150,302,303],{"class":160},"import",[150,305,306],{"class":156}," GoogleTranslator\n",[150,308,309],{"class":152,"line":168},[150,310,312],{"emptyLinePlaceholder":311},true,"\n",[150,314,315,318,320],{"class":152,"line":189},[150,316,317],{"class":156},"texte ",[150,319,161],{"class":160},[150,321,322],{"class":164}," \"La Tour Eiffel, située sur le Champ de Mars à Paris, est l'une des structures les plus célèbres du monde.\"\n",[150,324,325],{"class":152,"line":204},[150,326,312],{"emptyLinePlaceholder":311},[150,328,329,332,334,337,341,343,346,348,351,353,356],{"class":152,"line":217},[150,330,331],{"class":156},"traduction ",[150,333,161],{"class":160},[150,335,336],{"class":156}," GoogleTranslator(",[150,338,340],{"class":339},"sP4rz","source",[150,342,161],{"class":160},[150,344,345],{"class":164},"'auto'",[150,347,245],{"class":156},[150,349,350],{"class":339},"target",[150,352,161],{"class":160},[150,354,355],{"class":164},"'en'",[150,357,358],{"class":156},").translate(texte)\n",[150,360,361,364],{"class":152,"line":226},[150,362,363],{"class":176},"print",[150,365,366],{"class":156},"(traduction)\n",[100,368,370],{"id":369},"découper-un-texte-la-tokenisation","Découper un texte : la tokenisation",[91,372,373,374,377],{},"Avant tout traitement, on découpe le texte en unités appelées ",[95,375,376],{},"tokens",".\nUn token est généralement un mot, parfois un signe de ponctuation, plus\nrarement une expression complète.",[141,379,381],{"className":143,"code":380,"language":145,"meta":146,"style":146},"import spacy\n\nnlp = spacy.load(\"fr_core_news_sm\")\ndoc = nlp(\"Apple a annoncé le nouvel iPhone à San Francisco.\")\ntokens = [token.text for token in doc]\nprint(tokens)\n",[111,382,383,390,394,409,424,446],{"__ignoreMap":146},[150,384,385,387],{"class":152,"line":153},[150,386,303],{"class":160},[150,388,389],{"class":156}," spacy\n",[150,391,392],{"class":152,"line":168},[150,393,312],{"emptyLinePlaceholder":311},[150,395,396,399,401,404,407],{"class":152,"line":189},[150,397,398],{"class":156},"nlp ",[150,400,161],{"class":160},[150,402,403],{"class":156}," spacy.load(",[150,405,406],{"class":164},"\"fr_core_news_sm\"",[150,408,186],{"class":156},[150,410,411,414,416,419,422],{"class":152,"line":204},[150,412,413],{"class":156},"doc ",[150,415,161],{"class":160},[150,417,418],{"class":156}," nlp(",[150,420,421],{"class":164},"\"Apple a annoncé le nouvel iPhone à San Francisco.\"",[150,423,186],{"class":156},[150,425,426,429,431,434,437,440,443],{"class":152,"line":217},[150,427,428],{"class":156},"tokens ",[150,430,161],{"class":160},[150,432,433],{"class":156}," [token.text ",[150,435,436],{"class":160},"for",[150,438,439],{"class":156}," token ",[150,441,442],{"class":160},"in",[150,444,445],{"class":156}," doc]\n",[150,447,448,450],{"class":152,"line":226},[150,449,363],{"class":176},[150,451,452],{"class":156},"(tokens)\n",[100,454,456],{"id":455},"réduire-un-mot-à-sa-forme-canonique-la-lemmatisation","Réduire un mot à sa forme canonique : la lemmatisation",[91,458,459,460,245,464,249,467,470,471,474,475,478],{},"En français, un même mot prend de nombreuses formes : ",[461,462,463],"em",{},"mange",[461,465,466],{},"mangeait",[461,468,469],{},"mangeront","… Le ",[95,472,473],{},"lemme"," est la forme « de référence » (ici : ",[461,476,477],{},"manger",").\nLes moteurs de recherche s'appuient sur les lemmes pour retrouver tous les\ndocuments pertinents quelle que soit la flexion.",[141,480,482],{"className":143,"code":481,"language":145,"meta":146,"style":146},"import spacy\n\nnlp = spacy.load(\"fr_core_news_sm\")\ndoc = nlp(\"Les enfants jouaient à la balle dans le parc.\")\nlemmes = [token.lemma_ for token in doc]\nprint(lemmes)\n",[111,483,484,490,494,506,519,537],{"__ignoreMap":146},[150,485,486,488],{"class":152,"line":153},[150,487,303],{"class":160},[150,489,389],{"class":156},[150,491,492],{"class":152,"line":168},[150,493,312],{"emptyLinePlaceholder":311},[150,495,496,498,500,502,504],{"class":152,"line":189},[150,497,398],{"class":156},[150,499,161],{"class":160},[150,501,403],{"class":156},[150,503,406],{"class":164},[150,505,186],{"class":156},[150,507,508,510,512,514,517],{"class":152,"line":204},[150,509,413],{"class":156},[150,511,161],{"class":160},[150,513,418],{"class":156},[150,515,516],{"class":164},"\"Les enfants jouaient à la balle dans le parc.\"",[150,518,186],{"class":156},[150,520,521,524,526,529,531,533,535],{"class":152,"line":217},[150,522,523],{"class":156},"lemmes ",[150,525,161],{"class":160},[150,527,528],{"class":156}," [token.lemma_ ",[150,530,436],{"class":160},[150,532,439],{"class":156},[150,534,442],{"class":160},[150,536,445],{"class":156},[150,538,539,541],{"class":152,"line":226},[150,540,363],{"class":176},[150,542,543],{"class":156},"(lemmes)\n",[100,545,547],{"id":546},"mini-moteur-de-recherche-par-lemmes","Mini moteur de recherche par lemmes",[141,549,551],{"className":143,"code":550,"language":145,"meta":146,"style":146},"import spacy\n\nnlp = spacy.load(\"fr_core_news_sm\")\n\ndocuments = [\n    \"La chatte mange des croquettes.\",\n    \"Elle aime marcher dans le parc.\",\n    \"Les enfants jouaient à la balle.\",\n    \"J'aime lire des livres sur la nature.\"\n]\n\ndef lemmatiser(texte: str) -> str:\n    return ' '.join(token.lemma_ for token in nlp(texte))\n\nlemm_docs = [lemmatiser(d) for d in documents]\nrequete = lemmatiser(input(\"Entrez votre terme de recherche : \"))\n\nfor original, lemm in zip(documents, lemm_docs):\n    if requete in lemm:\n        print(original)\n",[111,552,553,559,563,575,579,589,596,604,612,618,624,629,652,673,678,699,721,726,742,756],{"__ignoreMap":146},[150,554,555,557],{"class":152,"line":153},[150,556,303],{"class":160},[150,558,389],{"class":156},[150,560,561],{"class":152,"line":168},[150,562,312],{"emptyLinePlaceholder":311},[150,564,565,567,569,571,573],{"class":152,"line":189},[150,566,398],{"class":156},[150,568,161],{"class":160},[150,570,403],{"class":156},[150,572,406],{"class":164},[150,574,186],{"class":156},[150,576,577],{"class":152,"line":204},[150,578,312],{"emptyLinePlaceholder":311},[150,580,581,584,586],{"class":152,"line":217},[150,582,583],{"class":156},"documents ",[150,585,161],{"class":160},[150,587,588],{"class":156}," [\n",[150,590,591,594],{"class":152,"line":226},[150,592,593],{"class":164},"    \"La chatte mange des croquettes.\"",[150,595,249],{"class":156},[150,597,599,602],{"class":152,"line":598},7,[150,600,601],{"class":164},"    \"Elle aime marcher dans le parc.\"",[150,603,249],{"class":156},[150,605,607,610],{"class":152,"line":606},8,[150,608,609],{"class":164},"    \"Les enfants jouaient à la balle.\"",[150,611,249],{"class":156},[150,613,615],{"class":152,"line":614},9,[150,616,617],{"class":164},"    \"J'aime lire des livres sur la nature.\"\n",[150,619,621],{"class":152,"line":620},10,[150,622,623],{"class":156},"]\n",[150,625,627],{"class":152,"line":626},11,[150,628,312],{"emptyLinePlaceholder":311},[150,630,632,635,639,642,645,648,650],{"class":152,"line":631},12,[150,633,634],{"class":160},"def",[150,636,638],{"class":637},"snPdu"," lemmatiser",[150,640,641],{"class":156},"(texte: ",[150,643,644],{"class":176},"str",[150,646,647],{"class":156},") -> ",[150,649,644],{"class":176},[150,651,223],{"class":156},[150,653,655,658,661,664,666,668,670],{"class":152,"line":654},13,[150,656,657],{"class":160},"    return",[150,659,660],{"class":164}," ' '",[150,662,663],{"class":156},".join(token.lemma_ ",[150,665,436],{"class":160},[150,667,439],{"class":156},[150,669,442],{"class":160},[150,671,672],{"class":156}," nlp(texte))\n",[150,674,676],{"class":152,"line":675},14,[150,677,312],{"emptyLinePlaceholder":311},[150,679,681,684,686,689,691,694,696],{"class":152,"line":680},15,[150,682,683],{"class":156},"lemm_docs ",[150,685,161],{"class":160},[150,687,688],{"class":156}," [lemmatiser(d) ",[150,690,436],{"class":160},[150,692,693],{"class":156}," d ",[150,695,442],{"class":160},[150,697,698],{"class":156}," documents]\n",[150,700,702,705,707,710,713,715,718],{"class":152,"line":701},16,[150,703,704],{"class":156},"requete ",[150,706,161],{"class":160},[150,708,709],{"class":156}," lemmatiser(",[150,711,712],{"class":176},"input",[150,714,180],{"class":156},[150,716,717],{"class":164},"\"Entrez votre terme de recherche : \"",[150,719,720],{"class":156},"))\n",[150,722,724],{"class":152,"line":723},17,[150,725,312],{"emptyLinePlaceholder":311},[150,727,729,731,734,736,739],{"class":152,"line":728},18,[150,730,436],{"class":160},[150,732,733],{"class":156}," original, lemm ",[150,735,442],{"class":160},[150,737,738],{"class":176}," zip",[150,740,741],{"class":156},"(documents, lemm_docs):\n",[150,743,745,748,751,753],{"class":152,"line":744},19,[150,746,747],{"class":160},"    if",[150,749,750],{"class":156}," requete ",[150,752,442],{"class":160},[150,754,755],{"class":156}," lemm:\n",[150,757,759,762],{"class":152,"line":758},20,[150,760,761],{"class":176},"        print",[150,763,764],{"class":156},"(original)\n",[100,766,768],{"id":767},"nuage-de-mots-à-partir-des-lemmes","Nuage de mots à partir des lemmes",[141,770,772],{"className":143,"code":771,"language":145,"meta":146,"style":146},"import spacy\nfrom wordcloud import WordCloud\nimport matplotlib.pyplot as plt\n\nnlp = spacy.load(\"fr_core_news_sm\")\ntexte = \"...\"  # remplacez par un texte conséquent\ndoc = nlp(texte)\n\n# On retire les mots vides (le, la, et, etc.)\nlemmes = [token.lemma_ for token in doc if not token.is_stop and token.is_alpha]\n\nnuage = WordCloud(width=800, height=400, background_color='white').generate(' '.join(lemmes))\n\nplt.figure(figsize=(10, 5))\nplt.imshow(nuage, interpolation='bilinear')\nplt.axis('off')\nplt.show()\n",[111,773,774,780,792,805,809,821,834,843,847,852,883,887,934,938,960,975,985],{"__ignoreMap":146},[150,775,776,778],{"class":152,"line":153},[150,777,303],{"class":160},[150,779,389],{"class":156},[150,781,782,784,787,789],{"class":152,"line":168},[150,783,297],{"class":160},[150,785,786],{"class":156}," wordcloud ",[150,788,303],{"class":160},[150,790,791],{"class":156}," WordCloud\n",[150,793,794,796,799,802],{"class":152,"line":189},[150,795,303],{"class":160},[150,797,798],{"class":156}," matplotlib.pyplot ",[150,800,801],{"class":160},"as",[150,803,804],{"class":156}," plt\n",[150,806,807],{"class":152,"line":204},[150,808,312],{"emptyLinePlaceholder":311},[150,810,811,813,815,817,819],{"class":152,"line":217},[150,812,398],{"class":156},[150,814,161],{"class":160},[150,816,403],{"class":156},[150,818,406],{"class":164},[150,820,186],{"class":156},[150,822,823,825,827,830],{"class":152,"line":226},[150,824,317],{"class":156},[150,826,161],{"class":160},[150,828,829],{"class":164}," \"...\"",[150,831,833],{"class":832},"sCsY4","  # remplacez par un texte conséquent\n",[150,835,836,838,840],{"class":152,"line":598},[150,837,413],{"class":156},[150,839,161],{"class":160},[150,841,842],{"class":156}," nlp(texte)\n",[150,844,845],{"class":152,"line":606},[150,846,312],{"emptyLinePlaceholder":311},[150,848,849],{"class":152,"line":614},[150,850,851],{"class":832},"# On retire les mots vides (le, la, et, etc.)\n",[150,853,854,856,858,860,862,864,866,869,871,874,877,880],{"class":152,"line":620},[150,855,523],{"class":156},[150,857,161],{"class":160},[150,859,528],{"class":156},[150,861,436],{"class":160},[150,863,439],{"class":156},[150,865,442],{"class":160},[150,867,868],{"class":156}," doc ",[150,870,192],{"class":160},[150,872,873],{"class":160}," not",[150,875,876],{"class":156}," token.is_stop ",[150,878,879],{"class":160},"and",[150,881,882],{"class":156}," token.is_alpha]\n",[150,884,885],{"class":152,"line":626},[150,886,312],{"emptyLinePlaceholder":311},[150,888,889,892,894,897,900,902,905,907,910,912,915,917,920,922,925,928,931],{"class":152,"line":631},[150,890,891],{"class":156},"nuage ",[150,893,161],{"class":160},[150,895,896],{"class":156}," WordCloud(",[150,898,899],{"class":339},"width",[150,901,161],{"class":160},[150,903,904],{"class":176},"800",[150,906,245],{"class":156},[150,908,909],{"class":339},"height",[150,911,161],{"class":160},[150,913,914],{"class":176},"400",[150,916,245],{"class":156},[150,918,919],{"class":339},"background_color",[150,921,161],{"class":160},[150,923,924],{"class":164},"'white'",[150,926,927],{"class":156},").generate(",[150,929,930],{"class":164},"' '",[150,932,933],{"class":156},".join(lemmes))\n",[150,935,936],{"class":152,"line":654},[150,937,312],{"emptyLinePlaceholder":311},[150,939,940,943,946,948,950,953,955,958],{"class":152,"line":675},[150,941,942],{"class":156},"plt.figure(",[150,944,945],{"class":339},"figsize",[150,947,161],{"class":160},[150,949,180],{"class":156},[150,951,952],{"class":176},"10",[150,954,245],{"class":156},[150,956,957],{"class":176},"5",[150,959,720],{"class":156},[150,961,962,965,968,970,973],{"class":152,"line":680},[150,963,964],{"class":156},"plt.imshow(nuage, ",[150,966,967],{"class":339},"interpolation",[150,969,161],{"class":160},[150,971,972],{"class":164},"'bilinear'",[150,974,186],{"class":156},[150,976,977,980,983],{"class":152,"line":701},[150,978,979],{"class":156},"plt.axis(",[150,981,982],{"class":164},"'off'",[150,984,186],{"class":156},[150,986,987],{"class":152,"line":723},[150,988,989],{"class":156},"plt.show()\n",[100,991,993],{"id":992},"pour-aller-plus-loin","Pour aller plus loin",[91,995,996,997,277,1000,1003],{},"Ces techniques de ",[95,998,999],{},"NLP",[461,1001,1002],{},"Natural Language Processing",") sous-tendent une\ngrande partie des outils que vous utilisez au quotidien : moteurs de\nrecherche, correcteurs, assistants vocaux, traducteurs automatiques. Et\nelles forment l'ossature classique sur laquelle les grands modèles de\nlangage (LLM) sont venus se greffer plus récemment.",[1005,1006,1007],"style",{},"html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":146,"searchDepth":168,"depth":168,"links":1009},[1010,1011,1012,1013,1014,1015,1016,1017],{"id":102,"depth":168,"text":103},{"id":135,"depth":168,"text":136},{"id":286,"depth":168,"text":287},{"id":369,"depth":168,"text":370},{"id":455,"depth":168,"text":456},{"id":546,"depth":168,"text":547},{"id":767,"depth":168,"text":768},{"id":992,"depth":168,"text":993},"[object Object]","md",false,{},{"title":53,"description":1023},{"Mots de passe, traduction, tokens, lemmes, nuage de mots":1024,"date":1025,"category":1026,"authors":1027},"un parcours du traitement automatique du langage en Python.","2026-04-09","actus",[1028],{"name":1029},"Mathieu N.","1rX8-eviyHTuE_rGr4-_MHNHb2OD_FjL_F93dV2sE0E",[1032,1035],{"title":49,"path":50,"stem":51,"description":1033,"category":1034,"readingTime":153,"children":-1},"Cinq points de friction et cinq décisions que j'ai prises cette année.","edito",{"title":57,"path":58,"stem":59,"description":1036,"category":1034,"readingTime":153,"children":-1},"Pourquoi ce site existe, comment il est construit, et ce qu'il vous propose au-delà du simple cours en ligne.",1788015772815]