-
CréateurSujet
-
février 9, 2023 à 12:04 am #24223BotParticipant
Y’a t-il des développeur en C++ dans ce serveur ?
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
CréateurSujet
-
AuteurRéponses
-
-
février 9, 2023 à 12:05 am #24224
?data
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 9, 2023 à 12:12 am #24225
J’ai besoin d’aide en C++
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 9, 2023 à 7:32 am #24230
pas suffisant comme infos
——————–
Dovahkiin Drenaak – Envoyé depuis le Discord : Culte du code -
février 9, 2023 à 10:28 am #24231
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:43 pm #24238
J’ai besoin d’optimiser mon code
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:43 pm #24239
Est-ce qu’il y’aurai quelqu’un qui pourrait m’aider ?
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:51 pm #24240
Faudrait arrêter d’être aussi vague. Partage ton code, indique en quoi consiste ton projet, quelle est ta problématique, ce que tu as déjà essayé..
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:52 pm #24241
Voici le sujet de mon projet
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:52 pm #24242
Mets le ici si possible que les gens n’aient pas à dl le fichier
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:53 pm #24243
ou sa ?
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:53 pm #24244
Ici
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:53 pm #24245
C’est pas bon ce que j’ai fait ?
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:54 pm #24246
Sinon on peut passer en pv
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:55 pm #24247
Faut copier coller le readme ici
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:55 pm #24248
Pour les autres,
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:56 pm #24249
Je ne comprend pas c’est ou içi, parce ce que j’ai déjà mis içi
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24250
L’objectif du projet est d’analyser un corpus d’e-mails pour en extraire des informations. L’analyse doit être parallélisée en limitant le nombre de tâches à un une valeur raisonnable dépendante du nombre de processeurs/threads de la machine.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24251
Suite à la faillite de la société américaine Enron en 2001, un corpus de 517401 e-mails de la société a été publié. Il est disponible sur [ce site](https://www.cs.cmu.edu/~./enron/enron_mail_20150507.tar.gz). Le jeu de données est constitué d’un répertoire par utilisateur (150 au total). Chacun de ces répertoires contient des sous répertoires (les dossiers d’e-mails), contenant chacun des e-mails nommés `X.` où `X` est un nombre positif. Remarquez bien le `.` à la fin du nom.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24252
L’objectif est de produire un fichier qui recense les communications entre adresses e-mails sous la forme suivante :
Par exemple :
Chaque ligne commence par un expéditeur unique, suivi par `:` (sans espace avant). Puis, séparés par des espaces, viennent une suite de destinataires précédés par le nombre d’occurrences de mails depuis l’expéditeur vers ce destinataire. Les occurrences sont séparées du destinataire par le caractère `:`.
[email protected]: occ1_1:destinataire1_1@domain1_1.ext1_1 occ1_2:destinataire1_2@domain1_2.ext1_2 ... occ1_n1:destinataire1_n1@domain1_n1.ext1_n1 [email protected]: occ2_1:destinataire2_1@domain2_1.ext2_1 occ2_2:destinataire2_2@domain2_2.ext2_2 ... occ2_n2:destinataire2_n2@domain2_n2.ext2_n2 ... [email protected]: occN_1:destinataireN_1@domainN_1.extN_1 occN_2:destinataireN_2@domainN_2.extN_2 ... occN_nN:destinataireN_nN@domainN_nN.extN_nN
[email protected]: 2:[email protected] 5:[email protected] [email protected]: 8:toto.enron.com [email protected]: 7:[email protected] 4:[email protected] 2:[email protected]
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24253
Pour faire cette analyse et produire le résultat, il faut créer des threads ou des processus, dits _workers_, qui traiteront des e-mails un par un. Le processus/thread principal (qui exécute le `main`), nommé _task dispatcher_, sera chargé d’alimenter les _workers_ en tâches. Chaque _worker_ reçoit une tâche, la traite, stocke le résultat dans un fichier de résultat intermédiaire, puis informe le _task dispatcher_ de la fin de sa tâche, avant d’en recevoir éventuellement une nouvelle. Chaque _worker_ produit un fichier de sortie comme celui défini ci dessus. À la fin, le _task dispatcher_ fusionne les sorties de tous ses _workers_.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24254
Un e-mail peut contenir parmi ses champs, les champs suivants :
– From : expéditeur
– To : destinataires directs
– Bcc : destinataires en copie cachée
– Cc : destinataires en copieNe confondez par ces champs avec les champs X-From, X-To, etc. que nous ne traiterons pas dans ce projet.
X-From étant présent dans tout e-mail, et placé après les 4 champs qui nous intéressent, le traitement d’un e-mail s’arrête dès ce champ atteint. Il est possible que des champs soient manquant. Dans ce cas, si From est vide, ou si aucun destinataire (direct, copie ou copie cachée) n’est trouvé, le mail ne donnera lieu à aucune sortie.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:57 pm #24255
Il vous sera nécessaire pour réaliser le projet :
– de proposer une architecture logicielle tirant parti du parallélisme de votre PC
– qui permette l’analyse telle qu’elle est décrite
– d’implémenter votre architecture et de l’exécuter sur le jeu de données complet d’EnronLes contraintes de réalisation sont les suivantes :
– Vous réaliserez le projet par groupes de 3 étudiants.
– Le programme doit être implémenté en langage C++ (pouvant contenir du C)
– Le programme ne doit pas faire appel à des bibliothèques/frameworks autres que les bibliothèques standard C (dont `getopt` fait partie) et C++ (vous utiliserez en particulier les conteneurs de la STL). En particulier, vous n’utiliserez ni boost, ni Poco, ni Qt.
– Le programme doit compiler et fonctionner sous Linux. Un Makefile est fourni pour permettre la compilation avec une simple commande `make`.
– L’analyse ne doit pas prendre plus d’une minute
– Le programme ne doit pas fuire de mémoire (vérifier avec `valgrind`)——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:58 pm #24256
L’architecture doit permettre l’évolution du programme, par exemple sur de nouvelles tâches. Pour cela, vous vous appuierez sur les propriétés des langages orientés objets et de C++.
Une attention particulière sera apportée au choix du canal de communication entre les _workers_ et le _task dispatcher_. Dans ce projet, les _workers_ doivent en effet être persistants (i.e. la fin d’une tâche ne termine pas le _worker_, mais ce dernier communique avec le _task dispatcher_ pour obtenir une nouvelle tâche). L’arrêt des _workers_ ne se fait qu’avant la fusion des fichiers de sortie intermédiaires.
L’architecture devra être validée avec l’enseignant du TP, et fera l’objet d’une mise en forme en UML à intégrer dans le rapport.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:58 pm #24257
L »analyse des e-mails est parallélisée. Vous pourrez utiliser soit des processus (`fork` en C), soit des threads. Les tâches envoyées doivent pouvoir changer si l’on souhaite étendre le programme à d’autres types d’analyses.
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:58 pm #24258
******************
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:59 pm #24259
J’ai déjà avancer sur le projet, sauf que j’optimise le traitement des fichiers
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 9:59 pm #24260
j’utilise regex (expression régulières) qui est trop lourd
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:00 pm #24261
Il faut que je diminue le temps de traitement
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:02 pm #24262
map<string, map> get_emails_fields(const vector &email_files) { map<string, map> emails_fields; for (const auto &path : email_files) { ifstream email_file(path); if (email_file.is_open()) { // cout << "*****Début du traitement du fichier: " << path << "*****" << endl; // cout << "Fichier ouvert" << endl; string line; string search_from = "From:"; string search_to = "To:"; regex email_regex("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"); smatch email_match; string email_from; string email_to;
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:03 pm #24263
while (getline(email_file, line)) {
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:03 pm #24264
if (line.find(search_from) != string::npos && line.find("X-From:") == string::npos) { istringstream iss(line); while (getline(iss, email_from, ' ')) { if (regex_search(email_from, email_match, email_regex)) { email_from = email_match[0]; if (emails_fields.find(email_from) == emails_fields.end()) { emails_fields[email_from] = map(); // cout << "Ajout de From : " << email_from << endl; } else { // cout << "From " << email_from < déjà dans le map" << endl; } } } }
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:04 pm #24265
else if (line.find(search_to) != string::npos && line.find("X-To:") == string::npos) { istringstream iss(line); while (getline(iss, email_to, ' ')) { if (regex_search(email_to, email_match, email_regex)) { email_to = email_match[0]; if (emails_fields[email_from].find(email_to) == emails_fields[email_from].end()) { emails_fields[email_from][email_to] = 1; // cout << "Ajout de To : " << email_to << endl; } else { emails_fields[email_from][email_to]++; // cout << "To " << email_to < déjà dans le map associé à From " << email_from << endl; } } } }
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:04 pm #24266
else if (line.find("X-From:") != string::npos) { break; } else if (line.find("X-To:") != string::npos) { break; } } } else { cout << "Error: " << path << " could not be opened." << endl; }
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:05 pm #24269
Comment je pourrais optimiser le code ci-dessus sans utiliser regex
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:16 pm #24270
Ah ouais, long
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:16 pm #24271
——————–
DK – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:17 pm #24272
J’ai juste besoin d’optimiser le code ci-dessus en vrai
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:18 pm #24273
Je ne sais pas comment faire autrement
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:18 pm #24274
il y’a getline, line.find, line.substr mais je n’ai pas réuissi à les utiliser
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:19 pm #24275
Message-ID: Date: Mon, 14 May 2001 13:39:00 -0700 (PDT) From: [email protected] To: [email protected] Subject: Re: 2- SURVEY/INFORMATION EMAIL 5-14- 01 Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable X-From: Phillip K Allen X-To: Outlook Migration Team X-cc: X-bcc: X-Folder: Phillip_Allen_Jan2002_1Allen, Phillip K.'Sent Mail X-Origin: Allen-P X-FileName: pallen (Non-Privileged).pst
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:19 pm #24276
Dans mon sorpus il y’a 517401 mails comme celui-ci
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:20 pm #24277
J’ai une méthode qui parcours le répertoire et sous repertoires et retourne le chemin des fichier emails
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:20 pm #24279
Et j’ai une deuxième méthodes qui lit le fichier à partir du chemin
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:20 pm #24280
J’ai besoin d’extraire le champ From: et To:
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:21 pm #24281
[email protected]: 12:[email protected] 12:[email protected] 12:[email protected] 12:[email protected] [email protected]: 3:[email protected] [email protected]: 34:[email protected] 95:[email protected] 129:[email protected] 129:[email protected] [email protected]: 7:[email protected] 10:[email protected] 10:[email protected] [email protected]: 1:[email protected]
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:21 pm #24282
Voici ce que je dois avoir en fichier de sortir
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:22 pm #24283
expediteur(From:): nboccurence:destinataire(To:), …..
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code -
février 10, 2023 à 10:33 pm #24284
Personne pour m’aider ?
——————–
Ridvan BASBUNAR – Envoyé depuis le Discord : Culte du code
-
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
Sujets récents
-
Demande d’aide en génie logiciel
par Bot
il y a 3 jours et 15 heures
-
Souci de mon système de gain de niveaux
par Bot
il y a 3 jours et 6 heures
-
Problème avec kali
par Bot
il y a 4 jours
-
message d erreur virtual box
par Bot
il y a 3 jours et 20 heures
-
DEV BOT
par Bot
il y a 1 jour et 15 heures
Réponses récentes
Statistiques des Forums
- Comptes enregistrés
- 2 595
- Forums
- 51
- Sujets
- 928
- Réponses
- 17 561
- Mot-clés du sujet
- 0