Jo-Ai

Last updated: January 27th, 20202020-01-27Project preview

Analyse des documents parus au JO

On installe une extension

In [1]:
!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

In [2]:
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

In [3]:
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

In [4]:
df.head()
Out[4]:
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

In [5]:
df.content = df.content.replace("\d+", "", regex=True)

On passe tout le text en minuscule

In [6]:
df.content = df.content.str.lower()

On garde la racine de chaque mot. Par exemple, "voudrais" et "veux" devienne "vouloir", et "animaux" devient "animal"

In [7]:
nlp = fr_core_news_sm.load()
In [8]:
def lemmanize(content):
    doc = nlp(content)
    return ' '.join([token.lemma_ for token in doc])
In [9]:
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.

In [10]:
from sklearn.feature_extraction.text import TfidfVectorizer
In [11]:
vectorizer = TfidfVectorizer(stop_words=get_stop_words("french"))
In [12]:
X = vectorizer.fit_transform(df.content)
y = df.interest

Un coup d'oeils aux mots toujours présents dans notre corpus

In [13]:
terms = vectorizer.get_feature_names()
", ".join(terms)
Out[13]:
'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.

In [14]:
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

In [15]:
from sklearn.ensemble import GradientBoostingClassifier
In [16]:
model = GradientBoostingClassifier()

On va apprendre sur les 9 premières lignes

In [17]:
N = 13
In [18]:
X_train = X[:N,:].toarray()
y_train = y.head(N)
In [19]:
y_train
Out[19]:
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 !

In [20]:
model.fit(X_train, y_train)
Out[20]:
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

In [21]:
X_test = X[N:X.shape[0],:].toarray()
y_test = y.tail(X.shape[0] - (N))
In [22]:
X_test.shape
Out[22]:
(7, 2017)

C'est le grand moment, on fait notre prédiction !

In [24]:
model.predict(X_test)
Out[24]:
array(['no', 'no', 'no', 'yes', 'yes', 'no', 'no'], dtype=object)

~Fin

Notebooks AI
Notebooks AI Profile20060