Nombre de fichiers où appartient un terme
Résolu/Fermé
thebestgirl
Messages postés
9
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
4 octobre 2010
-
28 juil. 2010 à 21:47
overcode Messages postés 119 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 21 octobre 2011 - 6 oct. 2010 à 04:04
overcode Messages postés 119 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 21 octobre 2011 - 6 oct. 2010 à 04:04
A voir également:
- Nombre de fichiers où appartient un terme
- A qui appartient ce numéro - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Impossible de supprimer un fichier - Guide
- Explorateur de fichiers - Guide
4 réponses
overcode
Messages postés
119
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
21 octobre 2011
27
2 oct. 2010 à 06:33
2 oct. 2010 à 06:33
Bonsoir,
On ne comprend pas clairement la finalité de ton programme. Le terme à chercher dans les fichiers texte, quel est-il ????
On ne comprend pas clairement la finalité de ton programme. Le terme à chercher dans les fichiers texte, quel est-il ????
thebestgirl
Messages postés
9
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
4 octobre 2010
2 oct. 2010 à 10:36
2 oct. 2010 à 10:36
bonjour, et merci pour ta réponse;
en fait j'ai voulu chercher pour chaque terme existant dans le dossier (dans tous les fichiers du dossier) le nombre de fichier qui comporte ce terme, voila la solution :
en fait j'ai voulu chercher pour chaque terme existant dans le dossier (dans tous les fichiers du dossier) le nombre de fichier qui comporte ce terme, voila la solution :
#include <dirent.h> #include <string> #include <vector> #include <fstream> #include <iostream> #include <map> #include <set> #include <math.h> bool isValid(const std::string& path) { return !path.empty() && path != "." && path != ".."; } void fillSet(std::multiset<std::string>& liste, const std::string& filename) { std::ifstream entree(filename.c_str()); if (!entree) { std::cerr << "Unable to read the file" << std::endl; return; } std::string s; std::set<std::string> toAdd; while (entree >> s) toAdd.insert(s); liste.insert(toAdd.begin(), toAdd.end()); } void fillMap(std::map<std::string, int>& map, const std::string& filename) { std::ifstream entree(filename.c_str()); std::string s; while (entree >> s) ++map[s]; } void nbFiles( const std::string& filename) {std::multiset<std::string>::const_iterator iter; std::multiset<std::string> liste; static const std::string folder = "in"; DIR* rep1 = opendir(folder.c_str()); std::map<std::string, int> map; fillMap(map, filename); int nbfic = 0; typedef std::map<std::string, int>::const_iterator iter3; std::cout << "\t fichier " << filename << std::endl; std::cout<<std::endl; for (iter3 it = map.begin(); it != map.end(); ++it) { if (rep1) { struct dirent* lecture1; while ((lecture1 = readdir(rep1))) { if (!isValid(lecture1->d_name)) continue; std::string filename = lecture1->d_name; fillSet (liste, folder + "/" + filename); } for (iter=liste.begin(); iter!=liste.end(); iter++) { if (it->first == *iter) nbfic++; } } closedir(rep1); std::cout << "* nombre de fichiers ou appartient le terme " << it->first << " est " << nbfic << std::endl; nbfic=0; }} int main() { static const std::string folder = "abc"; DIR* rep = opendir(folder.c_str()); if (rep) { struct dirent* lecture; while ((lecture = readdir(rep))) { if (!isValid(lecture->d_name)) continue; nbFiles (folder + "/" + lecture->d_name); } closedir(rep); } system("pause"); return (0); }
overcode
Messages postés
119
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
21 octobre 2011
27
4 oct. 2010 à 03:07
4 oct. 2010 à 03:07
Ok alors :)
Tu excuseras ma curiosité, mais ... pourquoi un tel programme ?
Tu excuseras ma curiosité, mais ... pourquoi un tel programme ?
thebestgirl
Messages postés
9
Date d'inscription
mercredi 23 juin 2010
Statut
Membre
Dernière intervention
4 octobre 2010
4 oct. 2010 à 10:38
4 oct. 2010 à 10:38
d'accord, avec plaisir,
le code ci-dessus est une partie d'un programme qui calcule tf.idf : voir
le code ci-dessus est une partie d'un programme qui calcule tf.idf : voir
http://fr.wikipedia.org/wiki/TF-IDF
c'est pour calculer le terme dj de la formule de tf.idf
overcode
Messages postés
119
Date d'inscription
jeudi 6 décembre 2007
Statut
Membre
Dernière intervention
21 octobre 2011
27
6 oct. 2010 à 04:04
6 oct. 2010 à 04:04
très intéressant, je te remercie beaucoup :)