Analyse des documents parus au JO¶
On installe une extension
!python -m spacy download fr_core_news_sm
Collecting fr_core_news_sm==2.2.5 from https://github.com/explosion/spacy-models/releases/download/fr_core_news_sm-2.2.5/fr_core_news_sm-2.2.5.tar.gz#egg=fr_core_news_sm==2.2.5 Downloading https://github.com/explosion/spacy-models/releases/download/fr_core_news_sm-2.2.5/fr_core_news_sm-2.2.5.tar.gz (14.7MB) |████████████████████████████████| 14.7MB 37.0MB/s Requirement already satisfied: spacy>=2.2.2 in /usr/local/lib/python3.7/site-packages (from fr_core_news_sm==2.2.5) (2.2.3) Requirement already satisfied: plac<1.2.0,>=0.9.6 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.1.3) Requirement already satisfied: murmurhash<1.1.0,>=0.28.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.0.2) Requirement already satisfied: wasabi<1.1.0,>=0.4.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (0.6.0) Requirement already satisfied: numpy>=1.15.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.17.4) Requirement already satisfied: requests<3.0.0,>=2.13.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (2.22.0) Requirement already satisfied: thinc<7.4.0,>=7.3.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (7.3.1) Requirement already satisfied: preshed<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (3.0.2) Requirement already satisfied: blis<0.5.0,>=0.4.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (0.4.1) Requirement already satisfied: srsly<1.1.0,>=0.1.0 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.0.1) Requirement already satisfied: catalogue<1.1.0,>=0.0.7 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.0.0) Requirement already satisfied: cymem<2.1.0,>=2.0.2 in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (2.0.3) Requirement already satisfied: setuptools in /usr/local/lib/python3.7/site-packages (from spacy>=2.2.2->fr_core_news_sm==2.2.5) (41.0.1) Requirement already satisfied: idna<2.9,>=2.5 in /usr/local/lib/python3.7/site-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.2->fr_core_news_sm==2.2.5) (2.8) Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.7/site-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.2->fr_core_news_sm==2.2.5) (2019.6.16) Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/site-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.2->fr_core_news_sm==2.2.5) (1.25.3) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.7/site-packages (from requests<3.0.0,>=2.13.0->spacy>=2.2.2->fr_core_news_sm==2.2.5) (3.0.4) Requirement already satisfied: tqdm<5.0.0,>=4.10.0 in /usr/local/lib/python3.7/site-packages (from thinc<7.4.0,>=7.3.0->spacy>=2.2.2->fr_core_news_sm==2.2.5) (4.42.0) Requirement already satisfied: importlib-metadata>=0.20; python_version < "3.8" in /usr/local/lib/python3.7/site-packages (from catalogue<1.1.0,>=0.0.7->spacy>=2.2.2->fr_core_news_sm==2.2.5) (0.23) Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/site-packages (from importlib-metadata>=0.20; python_version < "3.8"->catalogue<1.1.0,>=0.0.7->spacy>=2.2.2->fr_core_news_sm==2.2.5) (0.6.0) Requirement already satisfied: more-itertools in /usr/local/lib/python3.7/site-packages (from zipp>=0.5->importlib-metadata>=0.20; python_version < "3.8"->catalogue<1.1.0,>=0.0.7->spacy>=2.2.2->fr_core_news_sm==2.2.5) (7.2.0) Building wheels for collected packages: fr-core-news-sm Building wheel for fr-core-news-sm (setup.py) ... done Created wheel for fr-core-news-sm: filename=fr_core_news_sm-2.2.5-cp37-none-any.whl size=14727027 sha256=bc50fdd715a1d73e8fe02f12270a56355a2ab9d0de8816c23d56f1c3ef5812d1 Stored in directory: /tmp/pip-ephem-wheel-cache-97dbmhex/wheels/46/1b/e6/29b020e3f9420a24c3f463343afe5136aaaf955dbc9e46dfc5 Successfully built fr-core-news-sm Installing collected packages: fr-core-news-sm Successfully installed fr-core-news-sm-2.2.5 WARNING: You are using pip version 19.2.1, however version 20.0.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command. ✔ Download and installation successful You can now load the model via spacy.load('fr_core_news_sm')
On importe les librairies (boîtes à outils) importantes
import pandas as pa
import re
from stop_words import get_stop_words
from sklearn.feature_extraction.text import TfidfVectorizer
import spacy
import fr_core_news_sm
On importe nos données
df = pa.read_csv("https://docs.google.com/spreadsheets/d/e/2PACX-1vQFtPYDL9BirMtPHircgN9g6RKEIfaW8wCLyS_GLV-QN54rQmLA1ubP9udEBbuDXPxYHaxfDQz4Az3c/pub?gid=0&single=true&output=csv")
On affiche les premières lignes
df.head()
id | interest | content | |
---|---|---|---|
0 | 1 | no | Le 24 janvier 2020 JORF n°0020 du 24 janvier 2... |
1 | 2 | no | Le 24 janvier 2020 JORF n°0020 du 24 janvier 2... |
2 | 3 | yes | Le 24 janvier 2020 JORF n°0020 du 24 janvier 2... |
3 | 4 | no | Le 24 janvier 2020 JORF n°0020 du 24 janvier 2... |
4 | 5 | yes | Le 24 janvier 2020 JORF n°0020 du 24 janvier 2... |
Préparation des données¶
On retire les nombres, on ne garde que des mots
df.content = df.content.replace("\d+", "", regex=True)
On passe tout le text en minuscule
df.content = df.content.str.lower()
On garde la racine de chaque mot. Par exemple, "voudrais" et "veux" devienne "vouloir", et "animaux" devient "animal"
nlp = fr_core_news_sm.load()
def lemmanize(content):
doc = nlp(content)
return ' '.join([token.lemma_ for token in doc])
df.content = df.content.apply(lemmanize)
On va maintenant pondérer chaque mot pour mettre en valeur ceux qui sont réellement importants, grâce à la méthode tf-idf. On retire au passage les mots sans importance, comme "le", "la", "et" etc.
from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer(stop_words=get_stop_words("french"))
X = vectorizer.fit_transform(df.content)
y = df.interest
Un coup d'oeils aux mots toujours présents dans notre corpus
terms = vectorizer.get_feature_names()
", ".join(terms)
'abd, abdelkarim, abdol, abdollahi, abdolreza, abdorrezer, abdul, abdullahi, abou, abroger, absence, abu, académie, académique, accessible, accompagnement, accompagner, accomplissemer, accord, accorde, accorder, accueil, accueillir, accès, accéder, achat, acheminement, acide, acquis, acquittent, acquitter, acquérir, acte, acteur, action, activité, adaptation, adapter, adballah, adbul, ademe, adjoint, admettre, administratif, administration, admissibilité, admissible, admission, adopter, adresse, adressent, adresser, affaire, affectation, affecte, affecter, affection, affranchi, afin, agence, agent, agricole, agréer, agrément, agrémer, agréé, ahmed, aide, ain, ainsi, air, aix, ajoute, ajouter, ajouté, akıncılar, al, alain, alexandre, ali, alia, alias, alier, alinéa, alinéas, alinéer, allah, allouer, alpe, alpin, ambrois, amsterdam, aménagement, américain, an, analyse, analyser, analyses, andorre, anglais, anime, ann, annexe, annexer, annexé, annexée, anniversaire, annuel, annuellement, année, ano, anonyme, antarctique, antenne, anticancéreux, anticipation, anticiper, antérieur, août, apothicaire, appareil, appartenir, appel, applicable, application, applique, appliquer, apporter, approbation, approfondi, approuver, apprécier, appui, après, aps, apte, aptitud, aptitude, aqsa, ara, arabe, arabie, arbabsiar, arche, argumentation, argumenter, aristo, armement, armer, armée, arrete, arrondir, arrête, arrêtent, arrêter, arrêté, art, article, articulation, artistique, asadi, ashraf, assadollah, assiduité, assistance, associatif, associer, assume, assurance, assure, assurer, assuré, atlantique, atteindre, attendre, attendu, attente, attention, attest, attestation, atteste, attester, attrait, attribuer, attribution, audit, auditer, augustin, auprès, auquel, aurobindo, aurélie, austral, australie, australien, authentifié, autonome, autonomie, autorisation, autoriser, autorisé, autorité, autrui, auvergn, auxquel, avenir, avenue, aviation, avis, avranche, avril, azadiya, azur, babbar, baccalauréat, bachelier, bactériologie, bactériologique, baltimore, barthez, barthélemy, bas, base, baser, bcrm, beaumont, begin, belloubet, ben, berck, bercy, berthome, besançon, besoin, bfc, biais, bien, bienveillance, bilan, billancourt, bin, biochimist, biodiversité, biogéographique, biologie, biologist, biomédical, biomédicale, blum, blunacyr, boissy, bop, bord, bordeaux, bossoir, botanique, bouchara, bouches, boulevard, boulogne, bourse, boutière, bouyeri, bp, branche, brest, bret, bretagne, brevet, brigade, bruneal, bruno, budget, budgétaire, bureau, bvba, bénéfice, bénéficiaire, bénéficier, bérard, büyük, cachet, cadet, cadre, cahier, calai, calendrier, calmette, caluire, calédonie, canada, canadien, cancer, candidat, candidature, canot, capable, capaciter, capacité, caractéristique, carrière, carrègue, cas, cause, cedex, celui, central, centre, cephesi, certains, certificat, certification, certifier, cesse, cesser, chacun, chambray, champ, changement, chantal, chantourne, chapitre, charance, charge, charger, chargé, charles, chef, cheffe, chemin, chimi, chimie, chimist, chirurgical, chlorhydrate, choisie, choix, choru, chru, chu, chute, cinq, cinquième, cip, circonstance, cis, civil, clair, clarté, classement, classer, classification, classée, clermont, clinique, clôture, cm, code, colectomie, collaborer, collectif, collectiviter, collectivité, colonial, combattant, combemal, combler, comité, commandement, commentaire, commissaire, commission, commun, communautair, commune, communication, communiquer, communiste, compagnie, comparaison, comparer, complexe, complémentaire, compléter, comporte, comporter, composition, comprenant, comprendre, comprimé, compris, compréhension, comptable, compte, compter, compétence, compétent, compétente, concept, conception, concerne, concerner, concerné, conclure, concour, concourir, concours, condition, conduire, confirmant, confirmation, confirmer, conforme, conformité, conformément, confédération, congé, connaissance, connecter, connexe, conseil, conservatoire, conserver, considérer, considérée, consigne, consigner, consiste, consister, constitue, constituer, constructeur, construction, construire, consultable, consulter, consulté, contentieux, contenu, contester, contexte, continue, continuer, contraction, contre, contribue, contribuer, contrôle, contrôler, contrôleur, convention, conventionnel, convocation, coordination, coordonne, copie, coquil, corporel, correct, correspondre, cotisation, council, courdain, courriel, courrier, cours, couvrir, cpada, critique, critère, croc, croix, créatif, création, créativité, crédit, créer, cs, cuir, culture, cumuler, curiosité, curriculum, cursus, cvl, cycle, cyril, cyrill, cébazat, cécil, césur, césure, côte, dalokay, darmanin, daros, date, david, dci, deborde, decision, decoopman, decret, degré, delport, demande, demander, demandeur, deni, denis, dernier, desdite, dessous, dessus, destine, destiner, deuxième, dev, devant, developpement, devill, devrimci, dextérité, dhkp, dialogue, différence, différent, différents, diluer, din, diplomatique, diplôme, directement, directeur, direction, directrice, discernement, discipline, dispense, dispenser, disponibilité, disponible, disposer, dispositif, disposition, distinct, distriquimica, dit, divers, diversification, diversifier, diversité, division, dix, dixième, djihad, document, documentaire, documenter, domaine, dominique, donner, donné, donnée, dont, dossier, dotation, douane, douer, douzième, doğu, drh, droit, drome, dt, dubos, duclau, duloxetine, durable, durouchard, durée, dyschromatopsie, débute, débuter, décembre, décide, décimal, décision, déclaré, décret, décrète, défaut, défense, défini, définie, définir, définit, définitif, définition, dégagement, déjà, délai, délais, délibération, délimitation, délivre, délivrer, délégation, déléguer, démarche, dématérialiser, démonter, dénomination, départager, département, dépendre, dépense, déposer, dépôt, dérogation, déroule, dérouler, désandrouin, désignation, désigne, désigner, désigné, désir, désirer, désistement, détailler, détenir, détenu, détermine, déterminer, développement, développer, dévolu, eau, ec, echaubard, eco, ecoid, ecole, ecota, ecoud, ect, edouard, eds, eelam, effectif, effectuer, effet, eglis, ejército, el, eli, elodie, eloi, elsan, embarcation, empathie, emploi, employeur, empêchement, empêcher, enfant, engagement, engin, enjeu, enseignement, ensemble, entier, entité, entre, entreprise, entrer, entretien, entrée, enveloppe, environnement, envoi, epidyole, er, ergothérapeute, ergothérapie, ernestin, esomeprazole, espace, essai, esser, estaing, etablissement, etat, etats, etienne, etre, euro, eurodep, européen, evaluer, examen, examiner, exapro, exceptionnelle, excéder, exemplaire, exerce, exercer, exercice, exigence, exiger, existant, exonération, exonérer, expertise, expirer, explicatif, exploitant, exploitation, exploiter, expression, exprimer, expérience, expérimentateur, expérimentateurs, expérimentation, extra, extraire, extérieur, exécuter, exécution, fabricant, facilite, fahd, faible, falloir, famille, farah, fatah, faucon, façon, fenêtre, ferrand, ferroviaire, figurer, filiale, filière, fin, finales, finance, financement, finances, financier, finemer, fines, fiscal, fixant, fixe, fixer, fixé, fl, flacon, flexibilité, fliche, flot, flotte, foi, fonction, fonctionnement, fonctionnemer, fondation, fonds, formalité, format, formation, forme, formule, fort, fournir, fplp, fr, frais, france, franck, français, front, frédéric, frédérique, futuna, futuner, futur, future, février, gama, gap, garant, garantir, garbayer, garde, garonne, gastro, gauche, gaulle, ge, gel, gelé, genavir, general, gens, germain, gestion, gestionnaire, ghaleh, ghasem, gholam, gi, gie, gironde, gisèle, globulaire, gmbh, gourion, gouv, gouvernement, gracieux, grade, gramme, grand, granville, greffe, grenobl, groupe, grégoir, guadeloupe, guy, guyane, gé, gélule, général, généraliste, géographique, gérald, gérer, habilitation, habiliter, habilité, haji, hajj, hajji, halieutique, halk, hama, hamed, hamer, handicap, hasan, hashemi, hassan, haurie, haute, hautepierre, hautes, hauts, hc, hcs, hdf, henin, henri, heure, hezballah, hezbollah, hisbollah, hizb, hizballah, hizbollah, hizbu, hizbul, hizbullah, hiérarchique, hiérarchiser, hm, horaire, hospitalier, http, https, hubert, huitième, humain, hussein, hydrogéner, hygiène, hyères, hébergemer, hérault, hôpital, hôpitaux, ibder, ibrahim, icm, icweb, id, identifier, identité, idf, ier, ifpvs, ifremer, ihsa, ii, iii, ilam, ile, ill, image, imagerie, immunisation, implicite, important, impossibilité, imprimer, impérativement, impôt, incompatible, indemne, indemnité, index, indication, indique, indiquer, indirect, indispensable, individu, individuel, indre, industriel, infirmerie, influer, information, informatique, informer, infrastructure, inférieur, initial, innovation, inopiner, inscription, inscrire, insertion, installation, instance, instaurer, instituer, institut, institution, instruction, insérer, intellectuel, intention, interaction, intercommunal, interface, international, internet, interrégional, intervenir, intervention, intitulé, intitulée, intra, intranet, intégralement, intégralité, intégration, intégrer, intéresser, intérieure, intérêt, investissement, ipc, iran, iranien, irm, islamique, islamiyya, islamiyyer, isrp, issu, issue, istr, isère, iv, izz, janvier, jeudi, jeunesse, jihad, jip, jo, jorf, joseph, jour, jourdan, journal, jouy, jsp, judiciaire, juillet, juin, julienne, juradm, juridique, jury, jusba, juska, jusqu, justice, justificatif, justifient, justifier, jx, kadek, karkh, keraudren, kermanshah, kermoal, khalid, khalistan, khalsa, king, kinésithérapeute, kinésithérapie, kongra, kurdistan, kurtuluș, kzf, laborantin, laboratoir, laboratoire, labrune, ladite, laennec, lagier, lambillotte, lambret, langue, larde, largage, laurent, lauréat, leclercq, legifrance, leloup, lendemain, lequel, lettre, liaison, liban, libanais, libeller, liberación, liberté, libre, libère, libéral, libération, licence, lien, lier, lieu, lignot, lille, limite, limoges, lionel, liste, lister, littoral, livre, llah, local, logique, loi, loir, loire, long, lors, lorsqu, lorsque, losserand, louvière, ltte, lumineux, luminoso, lundi, luther, lutte, lutter, lycée, lydie, lyon, léger, légifrance, législatif, légitime, léon, lévothyroxine, magistrat, magistrature, magnétique, mai, maintenance, maintien, maire, maitrise, maitriser, maladie, mandé, manifestation, manipulateur, manière, mansour, manssor, marché, marge, marguerite, marin, marine, maritime, maritimer, marque, mars, marseill, marseille, martin, martiniqu, martyr, marzban, marécall, masse, masset, masseur, massif, masso, maternité, mathématique, matière, matériel, maximal, maximum, mayotte, maîtrise, maîtriser, maïeutique, medipha, mehran, meliad, membre, mener, mennerie, mensuel, mention, mentionn, mentionner, mer, mesure, mettre, meulan, mg, micba, microbiologie, microgramme, midi, militaire, military, milligramme, millilitre, minimal, minimum, ministre, ministère, ministériel, minocycline, minuit, minute, miquelon, mise, mission, mme, mobilisation, mobiliser, mobilité, modalité, modernisation, modification, modifier, modifié, modèle, moghadam, mohamed, mohammed, mois, molière, monasse, montalembert, montant, montpellier, montsouris, monétaire, moral, moselle, motif, motivation, moyen, msc, mujahedin, multiple, munoz, mureau, mureaux, musse, mustafa, mustapha, musulman, mutualiste, mutualité, mécanisme, médecin, médecine, médical, médicament, médico, médipôle, méthode, méthodologie, métier, métropole, métropolitain, na, nabith, nacional, nadège, naissance, nancy, nasser, nation, national, nationale, nationalement, nationalité, nature, navigation, navire, neuvième, never, nicole, nidal, niveau, nkouatchet, no, noir, nombre, nombreux, nomination, non, nor, nord, normal, normandie, nota, notamment, note, noter, notice, notification, notifier, nouvelle, novembre, npa, nsaga, numération, numérique, numéro, nécessaire, nécessite, nécessitent, objectif, objet, obligation, obligatoirement, observer, obtenir, obtention, occ, occitanie, occupation, octie, octobre, océanographique, odontologie, officiel, offre, offrir, oleron, omeprazole, onzième, option, opération, opérationnel, or, oral, ordre, organis, organisation, organisationnel, organiser, organisme, orient, orientation, original, origine, oscar, outil, outre, ouvert, ouverture, ouvrir, paca, page, paiement, pakistan, palestine, palestinien, paoli, papier, paragraphe, paramédical, paramédicau, parcours, parcoursup, paris, parmi, paroi, paroxetin, part, partenaire, parti, participer, particulier, particulièrement, partie, partir, partisi, party, parvenant, parvenir, paré, passager, passeport, passeports, patrice, payer, pays, pelliculé, pemetrexed, pendant, penthod, pere, perf, perfusion, permettre, permettront, perrot, personnel, persévérance, pertinent, pesc, peuple, pfht, pharma, pharmaceutique, pharmacie, phase, philippe, philippine, philippines, photocopie, phrase, physiologie, physique, pierre, pilotage, pilote, pièce, pkk, place, placer, plan, plateforme, plessis, pluridisciplinaire, pluriprofessionnel, plus, plusieurs, podologue, poids, point, poitier, politique, pollution, polycliniqu, polynésie, populaire, porte, porter, portée, position, possibilité, possible, posséder, postal, poste, posture, postérieur, poudre, pourcent, pourcentage, poursuivre, pouvoir, ppttc, pratique, premier, prendre, prescription, prestataire, preuve, principal, principauté, prioritairemer, prise, priver, prix, prmia, probant, problème, procéder, procédure, production, produir, produire, produit, profession, professionnel, programmation, programme, promotion, prononcer, proposer, proposition, propre, propriétaire, protection, protestant, prouve, provence, province, préalable, préalablement, précisant, précise, précisent, précéder, préférence, préinscription, préparateur, préparation, préparatoire, prépare, préparer, présent, présentation, présente, présenter, président, prévention, prévisionnel, prévoir, prévue, psychologique, psychomoteur, psychomotricien, psychomotricité, public, publication, publier, puis, pédagogique, pédicure, périmètre, période, périodicité, périodique, périé, pêche, pôl, pülümür, qasem, qasmi, qassem, qualité, quarante, quatorzième, quatre, quatrième, queneherve, question, questionner, quinquennal, quinquennaux, radeau, raep, raison, raisonnement, ramsay, rang, rapide, rapides, rapport, rattaché, raymond, re, recette, recevoir, recherche, rechercher, reconnaissance, recordati, recours, recouvrir, recrutement, rectificatif, reddy, refaat, refuser, regard, regroupement, regrouper, rejet, relatif, relation, relationnel, relationnelles, relever, relevé, remboursable, remboursement, remettre, remplacer, remplit, renne, renouveler, renouvellement, renseignement, renseigner, rentrée, renvoient, report, reprendre, reprise, représentant, représentation, représenter, requérir, respect, respecter, respectif, respectivement, responsabilité, responsable, ressource, reste, restent, restituer, retenir, retirer, retraire, retrait, revêtir, rezer, rh, rhin, rhône, riester, rigueur, rm, rouen, rouge, rubrique, rue, russier, ryp, règle, règlement, règlementer, réadaptation, réalisation, réaliser, récapitulatif, réception, réceptionner, rédaction, rédiger, réforme, référence, référé, régime, région, régional, régir, régis, réglementaire, réglementation, régulièrement, rémunération, réparation, répartition, répondre, réponse, république, réseau, réserve, résidence, résistante, résolution, résonance, résultat, résulter, réunion, réunir, réussite, réviser, révision, révolutionnaire, rééducation, saied, saint, sainte, saisie, saisir, salarial, sale, salem, salih, salimani, salomon, salwwan, samir, sanguin, sanitaire, sanli, sant, santé, saoudienne, saoudite, sarl, sarthe, sas, satisfair, satisfaire, satisfaisant, sauvegarde, sauvetage, savoie, savoir, scanvic, sceau, science, scientifique, scolaire, scolarité, scélo, seacross, second, secondaire, secours, secretariat, secrétaire, secrétariat, secteur, section, sein, seine, selon, semestre, sen, sendero, sens, sentier, sept, septembre, septième, sertraline, service, seul, seyne, sg, sgpi, shahla, shahlaee, shahlai, shaikh, shakuri, shala, shalai, sidon, signature, signer, simplifier, simplifiée, sinan, sinclair, site, situation, situer, six, sixième, siéger, sl, slami, sobiar, social, socialiste, société, sodique, soin, sol, sola, solaimani, soleimani, solemani, soleymani, solidaire, solidarité, sollicite, solliciter, solution, sort, sortir, souhaitant, souhaite, souhaiter, soumettre, soumission, sport, sportif, spécialement, spécialité, spécifique, ssaha, ssapa, ssas, ssasa, ssass, stage, station, statut, statutaire, strasbourg, stratégie, structure, stupéfiant, stéphanie, subordonner, substance, substantiel, substituer, sud, suffisamment, suisse, suit, suite, suivant, suivi, suivre, sulaimani, sulayman, sulemani, supplémentaire, suppose, supprimer, supérieur, survenance, susceptible, susmentionner, susmentionnée, suspension, susviser, susvisé, sydney, synthèse, synthétiser, système, séance, sécable, sécurité, sélection, sélectionner, sûreté, tak, tamoul, tant, tard, tarif, tarout, technicien, technique, technologie, technologique, tel, temps, tenir, terre, territoire, territorial, terrorisme, texte, teyrbazen, thibault, thierry, thyrofix, théophile, thérapeutique, tiers, tigre, tilleroye, tirer, titre, titulaire, tossavi, total, totalité, toulon, tour, tourisme, traducteur, traduction, traitement, traiter, transfert, transformation, transition, transitoire, transmission, transports, travail, travailler, travailleur, travers, treizième, treka, trela, trente, treta, tribunal, trice, trois, troisième, tronche, troupe, trousseau, trémaudan, tspdd, turquie, type, tâche, téhéran, télécopie, télédoc, téléphone, téléprocédure, téléverser, tôt, ucd, ue, ultérieur, union, unique, unir, unis, unité, universitaire, universiter, université, uo, urgence, usage, utilisation, utiliser, vacance, vaccination, valable, valaciclovir, valencien, valenciennes, validation, valider, valideur, valoir, valérie, varois, veille, veiller, vendredi, vent, vente, verdier, verrier, vers, versement, vertu, vi, via, vice, vichy, vidal, vide, vie, vigueur, vilain, villeurbanne, vincent, vingt, vis, viser, visite, vitae, vivant, vivien, voie, voir, volonté, vue, véhicule, vénéneux, vérification, vérifier, vœu, wadood, walli, wallis, wing, www, xix, yacoub, yasir, yelnac, yusef, yusif, yusuf, zaghdraiya, zindabad, zoledronique, zoubair, zubair, âgé, échanger, échoir, échéant, école, écologique, économie, économique, écoute, écran, écrire, écrite, éducation, égal, également, égalité, égard, élabore, électronique, électroradiologie, éliminatoire, élément, élémentaire, émaner, émergence, émettre, émotion, énumérer, épisode, épreuv, épreuve, équilibre, équipage, équipe, équipement, équivalence, équivalent, établir, établissement, étonnement, étranger, étude, étudiant, évaluation, évaluer, éventuel, éventuellement, évolue, évoluer, évolution, événement, île, œuvre'
Et maintenant, voyons pour chaque document quels sont les documents considérés comme importants.
for i in range(X.shape[0]):
l = X[i].toarray()[0].tolist()
l = [tuple((i,x)) for i,x in enumerate(l)]
l = sorted(l, key=lambda tup: tup[1], reverse=True)
l = l[:10]
words = [terms[t[0]] for t in l]
print("doc n°", i, ": ", ", ".join(words))
doc n° 0 : botanique, conservatoire, alpin, alpe, biodiversité, tant, agrémer, eau, national, massif doc n° 1 : canot, secours, prestataire, dispositif, sauvetage, embarcation, révision, eau, largage, service doc n° 2 : formation, médical, candidat, institut, diplôme, laboratoir, épreuve, aptitude, technicien, capacité doc n° 3 : désigner, naissance, ec, décision, lieu, ue, règlement, alias, iran, nationalité doc n° 4 : antenne, mme, social, sécurité, chef, mission, délégation, attribution, donner, direction doc n° 5 : substance, santé, vénéneux, février, réglementation, stupéfiant, article, directeur, liste, exonération doc n° 6 : durable, inscription, vendredi, concours, candidat, examen, demande, dossier, professionnel, concourir doc n° 7 : eurodep, lévothyroxine, microgramme, sodique, thyrofix, comprimé, laboratoire, pharma, assuré, remboursable doc n° 8 : eurodep, lévothyroxine, microgramme, sodique, thyrofix, comprimé, laboratoire, pharma, public, collectivité doc n° 9 : hôpital, avenue, cancer, hospitalier, centre, rue, ara, chirurgical, colectomie, paiement doc n° 10 : laboratoire, milligramme, gélule, distriquimica, gastro, résistante, bouchara, recordati, omeprazole, comité doc n° 11 : ecoid, station, tourisme, commune, rouen, seine, maritime, janvier, classée, décret doc n° 12 : genavir, simplifier, contrôle, société, action, financier, économique, etat, recherche, ministre doc n° 13 : directeur, magistrat, septembre, déléguer, stage, indemnité, centre, formation, judiciaire, versement doc n° 14 : douane, indirect, droit, inscription, ile, candidat, france, téléprocédure, concours, direction doc n° 15 : degré, supprimer, alinéer, article, alinéas, politique, huitième, ministère, emploi, direction doc n° 16 : pemetrexed, reddy, santé, milligramme, pharma, code, diluer, fl, perf, poudre doc n° 17 : formation, étudiant, article, année, premier, kinésithérapeute, masseur, diplôme, institut, enseignement doc n° 18 : investissement, secrétaire, ademe, cahier, général, décembre, avenir, ferroviaire, futur, hydrogéner doc n° 19 : entreprise, expérimentation, justice, intérêt, mission, société, travail, économie, solidaire, juska
Prédiction !¶
On importe le programme qui va pouvoir apprendre
from sklearn.ensemble import GradientBoostingClassifier
model = GradientBoostingClassifier()
On va apprendre sur les 9 premières lignes
N = 13
X_train = X[:N,:].toarray()
y_train = y.head(N)
y_train
0 no 1 no 2 yes 3 no 4 yes 5 yes 6 no 7 yes 8 yes 9 yes 10 yes 11 no 12 no Name: interest, dtype: object
On entraîne le modèle !¶
model.fit(X_train, y_train)
GradientBoostingClassifier(criterion='friedman_mse', init=None, learning_rate=0.1, loss='deviance', max_depth=3, max_features=None, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=100, n_iter_no_change=None, presort='auto', random_state=None, subsample=1.0, tol=0.0001, validation_fraction=0.1, verbose=0, warm_start=False)
On va tester notre modèle sur les lignes restantes
X_test = X[N:X.shape[0],:].toarray()
y_test = y.tail(X.shape[0] - (N))
X_test.shape
(7, 2017)
C'est le grand moment, on fait notre prédiction !¶
model.predict(X_test)
array(['no', 'no', 'no', 'yes', 'yes', 'no', 'no'], dtype=object)
~Fin