IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Choix de la structure de donnée convenable


Sujet :

C

  1. #1
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut Choix de la structure de donnée convenable
    Bonjour à tous,
    J'ai un projet commencer et j'aime bien choisir convenablement mes structure de données dès le début pour éviter de refaire tout le travail apres
    C'est pour cela je m'adresse à vous.
    En fait j'ai 2 fichiers texte à lire : 1 fichier en francais qui contient des phrases en francais, et un fichier en anglais qui contient les traduction des phrases en anglais.
    donc pour chaque phrase en anglais et en francais y va avoir un traitement à faire
    par exemple : j'ai ces 2 phrase :
    bonjour les amis good morning the friends
    voila les traitements :
    x->y telque x et y peuvent etre 1mot ou plus
    donc on affiche
    bonjour les ->good morning
    bonjour les ->morning the
    bonjour les -> the friends
    et pour chaque regle generée on calcule sa probabilté = prob(x,y)log(p(y)p(x,y).


    voilà
    sachantque les 2 fichiers ont une taille gigantesque >1gio!
    merci à vous tous
    Le jour est le père du labeur et la nuit est la mère des pensées.

  2. #2
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Bonjour à tous,
    Comme premiere étape je vais creer ma table de hachage qui va contenir tous les mots du fichier texte en entrée. Pour chaque mot je vais stocker le numéro de ligne où il apparaît.
    voila mon essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    TableHachageMot * CreerDoubleTableHachage()
    {
    	TableHachageMot * DblTableHash = AllocExit(TAILLEHASH * sizeof *DblTableHash);
    	size_t i;
    	for(i=0 ; i<TAILLEHASH ; i++)
    	{
    		size_t j;
    		for(j=0 ; j<TAILLEHASH ; j++)
    			InitListe(&DblTableHash[i][j]);
    	}
    	return DblTableHash;
    }
    InitListe c'est une fonction qui va initialiser la table de hachage. Là je bloque quoi mettre la dedans
    Merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Essaie de réfléchir graphiquement: fais des schémas.

    Es-tu sûr qu'il est dans ton intérêt, dans cette étape, d'utiliser une table de hachage à deux étages plutôt qu'une table de hachage normale?
    Si oui, pourquoi? Si non, pourquoi?

    Je te le dis tout de suite, j'ai oublié la plupart de mes travaux sur le projet précédent, et pour un projet de cette ampleur, je suis plus habitué au C++. Et je n'ai toujours pas compris ce qu'il faut faire précisément...

    Tu dois définir tes objectifs avec précision, les schématiser, et réfléchir de cette manière. Cela t'aidera...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Essaie de réfléchir graphiquement: fais des schémas.

    Es-tu sûr qu'il est dans ton intérêt, dans cette étape, d'utiliser une table de hachage à deux étages plutôt qu'une table de hachage normale?
    Si oui, pourquoi? Si non, pourquoi?

    Je te le dis tout de suite, j'ai oublié la plupart de mes travaux sur le projet précédent, et pour un projet de cette ampleur, je suis plus habitué au C++. Et je n'ai toujours pas compris ce qu'il faut faire précisément...

    Tu dois définir tes objectifs avec précision, les schématiser, et réfléchir de cette manière. Cela t'aidera...
    C'est mieux de travailler en c++?
    c'est imposé le C, mais si avec le c++ ca sera plus facile, je le ferai en c++
    Le jour est le père du labeur et la nuit est la mère des pensées.

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Disons qu'en C++, tu as la STL, donc tu n'as pas à implémenter toi-même une table de hachage* ou une liste pour chaque structure.
    Et même si tu en avais besoin, c'est plus facile d'emploi.

    *enfin, si tu as une version assez récente, ou si tu as Boost
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Disons qu'en C++, tu as la STL, donc tu n'as pas à implémenter toi-même une table de hachage* ou une liste pour chaque structure.
    Et même si tu en avais besoin, c'est plus facile d'emploi.

    *enfin, si tu as une version assez récente, ou si tu as Boost
    J'ai fait des shema Medinoc, mais j'arrive pas à decider si je vais utiliser une table de hachage.
    le probeleme c'est generer les regles à partir des phrases lu sous cette forme:
    1mot->1mot
    1mot->2mot
    2mot->1mot
    2mot->2mots

    sachant que les 2mots sont voisin dans la phrase et la partie gauxhe de la regle c'est en francais et la draoite en anglais.
    Tu penses avec ca une table de hachage est convenable?
    merci
    Le jour est le père du labeur et la nuit est la mère des pensées.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais ça dépend de ce que tu dois faire AVANT. De comment tu établis ces listes de 1 mot, ou 2 mots...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  8. #8
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Mais ça dépend de ce que tu dois faire AVANT. De comment tu établis ces listes de 1 mot, ou 2 mots...
    les 1 mots qont tous les mots composants la phrase
    et les 2 mots sont les bigramme ou encore les mots voisins
    Bon pour les 1mots on va les extraire normallement , mais les 2 mots je pense la meilleur idée c'est je joindre les 1mots.
    non?
    Le jour est le père du labeur et la nuit est la mère des pensées.

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Si les 2-mots doivent être des mots qui se suivent, alors la double-table de hachage peut être appropriée si tu as ensuite besoin de "tous les 2-mots dont le premier est X".
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Débutant Avatar de étoile de mer
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    978
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 978
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Si les 2-mots doivent être des mots qui se suivent, alors la double-table de hachage peut être appropriée si tu as ensuite besoin de "tous les 2-mots dont le premier est X".
    d'accord merci infiniment
    Le jour est le père du labeur et la nuit est la mère des pensées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Choix de structure de données
    Par drunkskater dans le forum Caml
    Réponses: 7
    Dernier message: 28/10/2010, 19h55
  2. aide en choix de structures des données
    Par siempre dans le forum C
    Réponses: 0
    Dernier message: 13/02/2010, 00h28
  3. choix de structure de données
    Par 3dsman dans le forum Traitement d'images
    Réponses: 6
    Dernier message: 16/09/2009, 23h46
  4. Choix d'une structure de donnés ?
    Par ThE_LaSt dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 16/03/2008, 13h18
  5. choix s'une structure de données
    Par fabaroulettes dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2007, 10h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo