Scraping de noms d'équipes et toutes leurs variantes dans DF
mamiemando Messages postés 33381 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 26 novembre 2024 - 11 avril 2024 à 20:44
- Scraping de noms d'équipes et toutes leurs variantes dans DF
- Les noms des animaux - Télécharger - Études & Formations
- Pour participer à un jeu, josé doit donner un nom de code à chacun des membres de son équipe. il veut utiliser le code binaire. il essaie avec seulement 3 bits. mais cela ne suffit pas. combien de membres n'auront pas de code ? ✓ - Forum Powerpoint
- Trouver une adresse avec un nom de famille gratuit ✓ - Forum Mobile
- Recherche de personne par nom et prénom - Forum Mail
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe. elle a commencé à la main, mais elle voudrait le faire calculer à l'aide d'une formule. proposez une formule comportant une seule fonction et à recopier vers le bas dans la colonne a du fichier à télécharger. quelle formule sera en a9 ? ✓ - Forum Excel
2 réponses
Bonjour.
Il n'y pas 36 façons de faire cela, soit par l'intermédiaire de boucles cherchant les occurences de termes recherchés dans chaque texte ou alors via des expressions régulières, termes recherchés que tu aurais préalablement enregistrés ailleurs et stockés dans un conteneur, un dict serait bien je pense.
11 avril 2024 à 20:44
Bonjour,
En pandas, tu peux effectivement faire plein de choses, sélectionner les lignes qui vérifient certaines propriétés, sélectionner des colonnes, grouper des colonnes, etc. Tu peux aussi créer une colonne à la volée à partir d'autres colonnes.
Ta question comporte donc plusieurs sous questions :
- Comment extraire un ou plusieurs noms d'équipe à partir de messages arbitraire ?
- Je pense que le plus simple serait d'avoir un dictionnaire qui associe à chaque mot pertinent (par exemple "OM", "Marseille") l'équipe correspondante. Tu obtiendrais ainsi une manière de convertir un message en langage naturel en un ensemble de noms d'équipe non ambigu.
- Ensuite, à voir dans quel mesure tu peux utiliser apply pour générer une colonne "Équipe".
- Comment faire ladite requête en pandas : pour cela il faudrait voir la structure de ta DataFrame (par exemple en proposant un exemple minimal).
- Le cas "simple", c'est si ta colonne "Équipe" ne contient qu'une équipe, puis faire la requête de ton choix avec pandas (par exemple compter le nombre de lignes telles que Équipes == Marseille, en suivant cet exemple).
- Si une colonne contient un nombre arbitraire d'équipe il faudra probablement utiliser isin.
Concernant le premier point, tu peux imaginer une fonction de ce genre :
import re TEAMS = {"marseille", "lyon", "paris"} MAP_ALIASES = { "om" : "marseille", "ol" : "lyon", "psg" : "paris", } def message_to_teams(s: str) -> set: s = s.lower() s = re.sub("( *[^A-Za-z0-9] *)+", " ", s) teams = set() for word in s.split(): if word in TEAMS: teams.add(word) else: team = MAP_ALIASES.get(word) if team is not None: teams.add(team) return teams print(message_to_teams("J'aime l'om et lyON, et Paris")) # Affiche {'marseille', 'lyon', 'paris'}
Bon c'est simpliste et typiquement ça ne fera pas de différence entre les négations et les affirmations, mais là ça paraît difficile à mettre en œuvre sans NLP...
Concernant le second point, l'idéal serait de partager le jeu de données s'il est public (ou un extrait minimal et représentatif).
Bonne chance