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

Python Discussion :

Programme qui plante (analyse de texte) lors d'un affichage


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Par défaut Programme qui plante (analyse de texte) lors d'un affichage
    Bonjour,

    Je dois réaliser une interface graphique d'un logiciel d'analyse de texte. Je dispose d'une fonction qui m'a été donné. Cette fonction prend un texte en parametre puis réécrit le texte en écrivant la racine de chaque mot.
    Le résultats est une liste. Je souhaite donc afficher le résultat. Pour cela j'affiche cela dans un widget Text.

    Lorsque le texte est petit cela marche sans problème mais lorsque c'est un texte long ( ce qui est le but du projet ) le programme mouline et plante. Pourtant je vois le résultat s'affiche mais le programme ne réponds plus.
    Auriez vous des pistes s'il vous plait?

    nb : Cela fonctionne en affichage console

  2. #2
    Membre expérimenté
    Profil pro
    Loisir
    Inscrit en
    Novembre 2011
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Loisir

    Informations forums :
    Inscription : Novembre 2011
    Messages : 159
    Par défaut
    Bonjour docteur j'ai mal. Pouvez-vous me dire ce que j'ai ?
    C'est à quelque chose près ce que vous nous donnez comme information.

    Mais bordel qu'est-ce que vous avez en ce moment à nous fournir des demandes d'aide incomplètes. Montrez-nous des données et du code si vous voulez de l'aide. Les autres membres sont capables de faire des miracles mais nous ne sommes par Dieu, nous ne pouvons pas aider à partir de rien !

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Par défaut
    Citation Envoyé par Supernul Voir le message
    C'est à quelque chose près ce que vous nous donnez comme information.

    Mais bordel qu'est-ce que vous avez en ce moment à nous fournir des demandes d'aide incomplètes. Montrez-nous des données et du code si vous voulez de l'aide. Les autres membres sont capables de faire des miracles mais nous ne sommes par Dieu, nous ne pouvons pas aider à partir de rien !
    Désole si je me suis mal exprimer.

    Je dois implémenter cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        def racinisation(x,text): #Liste de texte
            racinisation=[] #Rendu final
            for nText in range(len(text)): # Pour chaque élément de la liste :
                stemmer = FrenchStemmer() #Met dans "stemmer" les terminaisons fr à enlever
                text_token = word_tokenize(text[nText], language ='french') #On tokenize le texte pour avoir mot par mot
                text_stem = [] #Initialisation du texte racinisé
                sep = ' ' # le séparateur
                for word in text_token: #Pour chaque mot du texte tokenisé, on retire la terminainson
                    w=stemmer.stem(word)
                    text_stem.append(w)
                racinisation.append(sep.join(text_stem)) # On joint tout les mots racinisés en un seul élément
            return  racinisation
    Dans mon interface graphique j'ai une fenetre avec une FrameB, j'appelle la fonction et l'affiche comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    T = Text(FrameB, height=400, width=100)
    T.grid(row=2,column=1)
    raci = racinisation(x,text)
    T.insert("end",raci)
    Ceci marche avec un petit texte mais avec un gros texte (Comme Bel Ami ) le programme mouline et ne répond plus malgré l'affichage qui apparait

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Salut,

    Citation Envoyé par ids2018 Voir le message
    Auriez vous des pistes s'il vous plait?
    Lorsqu'un code ne fonctionne pas, il faut trier entre ce qui marche et ce qui pose soucis. Puis décomposer ce qui pose soucis en opérations élémentaires qui permettront de mettre le doigt sur la(ou les) opération(s) qui se passent mal.
    Ce qui normalement devrait vous permettre d'écrire un code bien plus petit que le programme de départ qui reproduira le problème. A partir de là, vous allez pouvoir vous concentrer sur le problème et si vous ne trouvez pas de solution vous aurez quelque chose à poster.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Lorsqu'un code ne fonctionne pas, il faut trier entre ce qui marche et ce qui pose soucis. Puis décomposer ce qui pose soucis en opérations élémentaires qui permettront de mettre le doigt sur la(ou les) opération(s) qui se passent mal.
    Ce qui normalement devrait vous permettre d'écrire un code bien plus petit que le programme de départ qui reproduira le problème. A partir de là, vous allez pouvoir vous concentrer sur le problème et si vous ne trouvez pas de solution vous aurez quelque chose à poster.

    - W
    Le soucis c'est que je n'ai pas le "droit" de modifier la fonction qui en soit fonctionne en affichage console mais pas en interface graphique, si j'ai bien compris il faudrait que je change de méthode d'affichage ?

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 790
    Par défaut
    Citation Envoyé par ids2018 Voir le message
    Le soucis c'est que je n'ai pas le "droit" de modifier la fonction qui en soit fonctionne en affichage console mais pas en interface graphique, si j'ai bien compris il faudrait que je change de méthode d'affichage ?
    Hu??? Relisez votre code.
    Si vous suspectez que c'est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    T = Text(FrameB, height=400, width=100)
    T.grid(row=2,column=1)
    raci = racinisation(x,text)
    T.insert("end",raci)
    Vous avez 2 sujets:
    • est-ce que vous utilisez bien .insert dans les conditions normales de température ou de pression? Pour le savoir, il faut ouvrir la documentation et vérifier que les paramètres passés sont bien du type de ceux qui sont attendus - comme racinisation retourne une liste, c'est déjà pas bon -.
    • est ce qu'.insert sait afficher un texte aussi long que celui demandé? Fabriquer une chaîne de caractères et la passer à .insert, c'est pas compliqué.

    Au bout du bout, soit vous êtes "confiant" sur ce que saura faire le widget Text, soit vous avez un sujet à poster dans le forum tkinter avec du code pour l'illustrer.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Hu??? Relisez votre code.

    Vous avez 2 sujets:
    • est-ce que vous utilisez bien .insert dans les conditions normales de température ou de pression? Pour le savoir, il faut ouvrir la documentation et vérifier que les paramètres passés sont bien du type de ceux qui sont attendus - comme racinisation retourne une liste, c'est déjà pas bon -.
    • est ce qu'.insert sait afficher un texte aussi long que celui demandé? Fabriquer une chaîne de caractères et la passer à .insert, c'est pas compliqué.

    Au bout du bout, soit vous êtes "confiant" sur ce que saura faire le widget Text, soit vous avez un sujet à poster dans le forum tkinter avec du code pour l'illustrer.

    - W
    Merci de votre réponse,

    1er sujet : Je ne l'ai pas modifier car j'ai déjà afficher une liste avec ce widget. Mais il est vrai que j'entre en paramètre une liste ce qui n'est pas ce qui est indiqué dans la doc, je vais essayer de le passer en texte quand j'aurais accès à mon ordinateur et vous dirais ce qu'il en est.

    2ème sujet : J'ai effectué comme ceci car dans une première partie de mon programme j'affiche le texte brut avec .insert dans le widget texte. Donc il est bien capable d'afficher un long texte.

    Je continue mes recherches de mon coté aussi.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2018
    Messages : 17
    Par défaut
    Re,

    Je n'ai toujours pas résolu mon problème. Le texte de base est une liste contenant un seul élément : le texte. J'arrive à l'afficher à l'aide du widget Text.
    Le retour de la fonction racinisation étant aussi une liste, je l'ai enregistrer dans un fichier .txt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        fichier = open("raci.txt", "r")
        content = fichier.read()
        text2 = []
        text2.append(content)
        fichier.close()
    Le fichier ce créer bien et est lisible depuis le bloc note. Cependant lorsque j'essaye de l'afficher dans l'interface graphique de la même manière que le texte de base cela plante .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    T = Text(FrameB, height=400, width=100)
    T.grid(row=2,column=1)
    T.insert("end",text2)

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