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

  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
    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

  4. #4
    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

  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)

  9. #9
    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
    Et si vous essayiez d'afficher le contenu du fichier directement plutôt que de l'emballer dans une liste?

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

  10. #10
    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
    Et si vous essayiez d'afficher le contenu du fichier directement plutôt que de l'emballer dans une liste?

    - W
    J'ai essayé de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    T.insert("end", content)
    Même probleme le programme ne réponds plus

  11. #11
    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
    Dans ce cas, il faut poster le fichier (en pièce jointe) histoire qu'on puisse voir ce qu'il y a dedans et reproduire.

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

  12. #12
    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
    Dans ce cas, il faut poster le fichier (en pièce jointe) histoire qu'on puisse voir ce qu'il y a dedans et reproduire.

    - W
    Le fichier est trop volumineux apparament je ne peux l'ajouter désoler

  13. #13
    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 fichier est trop volumineux apparament je ne peux l'ajouter désoler
    Quelle est la taille de ce fichier?

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

  14. #14
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 309
    Par défaut
    Citation Envoyé par ids2018 Voir le message
    Le fichier est trop volumineux apparament je ne peux l'ajouter désoler
    Hum, on te parle de ton code python, pas du bouquin que tu dois analyser.

  15. #15
    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 VinsS Voir le message
    Hum, on te parle de ton code python, pas du bouquin que tu dois analyser.
    non, il s'agit bien de ce qu'on demande à Text d'afficher.

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

  16. #16
    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
    Le fichier .txt est sous cette forme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ['bel-am édit de référent : édit rencontr , lausann . text établ et présent par gilbert sigal . 4 premi part 5 i quand la caissi lui eut rendu la monnai de sa piec de cent sous , georg duroy sort du restaur . comm il port beau , par natur et par pos d ’ ancien sous-offici , il cambr sa taill , fris sa moustach d ’ un gest militair et famili , et jet sur le dîneur attard un regard rapid et circulair , un de ce regard de jol garçon , qui s ’ étendent comm de coup d ’ épervi . le femm avaient lev la têt ver lui , trois petit ouvri , une maîtress de musiqu entre deux âge , mal peign , néglig , coiff d ’ un chapeau toujour poussier et vêtu toujour d ’ une rob de traver , et deux bourgeois avec leur mar , habitu de cet gargot à prix fix . lorsqu ’ il fut sur le trottoir , il demeur un instant immobil , se demand ce qu ’ il allait fair . on était au 28 juin , et il lui rest just en 6 poch trois franc quar pour fin le mois . cel représent deux dîner san déjeuner , ou deux déjeuner san dîner , au choix . il réflech que le rep du ...
    ... 
    ur la grand bai ensoleil de la port . il sent sur sa peau cour de long frisson , ce frisson froid que donnent le immens bonheur . il ne voi person . il ne pens qu ’ à lui . 705 lorsqu ’ il parvint sur le seuil , il aperçut la foul amass , une foul noir , bruiss , venu là pour lui , pour lui georg du roy . le peupl de paris le contempl et l ’ envi . puis , relev le yeux , il découvr là-b , derri la plac de la concord , la chambr de déput . et il lui sembl qu ’ il allait fair un bond du portiqu de la madelein au portiqu du palais-bourbon . il descend avec lenteur le march du haut perron entre deux hai de spectateur . mais il ne le voi point ; sa pens mainten reven en arrier , et dev se yeux éblou par l ’ éclat soleil flott l ’ imag de mme de marel rajust en fac de la glac le petit cheveux fris de se temp , toujour défait au sort du lit . 706 707 cet ouvrag est le 510e publi dan la collect à tous le vent par la bibliothequ électron du québec . la bibliothequ électron du québec est la propriet exclus de jean-yv dupuis . 708']

  17. #17
    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
    Quelle est la taille de ce fichier?

    - W
    Le fichier texte fait 550ko mais j'arrive afficher des fichiers .txt de plus de 600ko

  18. #18
    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 fichier texte fait 550ko mais j'arrive afficher des fichiers .txt de plus de 600ko
    Découpez votre texte en paquets de 10Ko, insérez les en séquences dans le widget Text et faites un .update après chaque insertion pour vérifier que çà affiche ce que vous attendez.
    Si çà plante avant la fin, peut être qu'il y a une séquence de caractères bizarres dans le paquet en cours de traitement.

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

  19. #19
    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
    Découpez votre texte en paquets de 10Ko, insérez les en séquences dans le widget Text et faites un .update après chaque insertion pour vérifier que çà affiche ce que vous attendez.
    Si çà plante avant la fin, peut être qu'il y a une séquence de caractères bizarres dans le paquet en cours de traitement.

    - W
    Ok merci je vais essayer. Il y a un cours sur lequel je peux me documenter pour decouper mon texte en paquets de 10Ko ?

  20. #20
    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
    J'ai essayé de supprimer une partie du texte du fichier .txt pour qu'il fasse moins de 10ko cela marche.
    En supprimant un peu moins du .txt j'arrive à un fichier de 49Ko qui lui ne marche pas ou en tout cas fait ramer le programmer, ça pourrait donc être un caractère spécial ?

    Voici le fichier .txt : raci - Copie.txt

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