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 python: mot syntaxiquement correct


Sujet :

Python

  1. #1
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut programme python: mot syntaxiquement correct
    Salut,

    y a t il un programme python qui me permettra de lire le contenu d'un fichier mot par mot tout en vérifiant que chaque mot qu'on extrait possède une information lexicale ou bien phrases avec information syntaxique.

    Merci d'avance !

  2. #2
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    import linecache;
     
    filename = "monfichier.txt"
     
    #Methode 1, on compte s arreter à un moment donné...
    index = 1
    line = linecache.getline(filename, index)
    while True:
        mots = line.split()
        for mot in mots:
            mot
            #bla bla bla
     
     
    #Méthode 2, on doit traiter tout le fichier, je le suppose pas trop volumineux
    for line in open(filename):
        for mot in line.split():
            mot
            #bla bla bla
    Pour le reste des "vérifications" des mots, le module re devrait pouvoir le faire s'il est besoin de chose "compliquée"

    'lut
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  3. #3
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci afranck64 pour votre réponse, ça me permettra de lire le fichier texte mot par mot. Mais comment pourrais je vérifier le lexique de chaque mot ??

    Pourriez vous s'il vous plait m'aider ou me guider à coder ce code c ma premier tentative à coder en python ?

    Merci beaucoup par avance!!

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    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 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Il serait bon que vous précisiez un peu plus ce que vous entendez par lexique et syntaxe car suivant le type de grammaire, les outils à utiliser ne sont pas du tout les mêmes.

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

  5. #5
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci pour vous,

    Voila en fait mon but après avoir lu le fichier c'est de vérifier :
    • le lexique : vocabulaire :
    • la syntaxe : grammaire ;
    • la sémantique : sens.


    C'est ça mon but en grosso-modo.

    Je vous remercie !!

  6. #6
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Peut être que ma question n'est pas beaucoup claire, en fait je vise à vérifier les 3 points, que je l'ai déjà cités.
    • le lexique : vocabulaire :
    • la syntaxe : grammaire ;
    • la sémantique : sens.
    en les appliquant sur le contenu du fichier en utilisant le langage python. Par exemple, je voudrai trouver une phrase dans mon fichier texte qui est syntaxiquement correcte.

    j'espères que c'est claire maintenant .
    j'ai vraiment besoin de votre aide.
    Je vous remercie !!

  7. #7
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Le plus simple serait que tu donnes un exemple d'entrée sortie.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  8. #8
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Ok merci,
    Contenu du fichier:
    Message de UNIKA à à V.X.Y.Z le 16/07/2003/ 16:04:31
    === FILMS XX COMPLETS A TÉLÉCHARGER ===
    Plus de 900 Films XX toutes catégories à télécharger sans kits de connexions ni CB.

    Notez le lien suivant: www.ZZZZZZ.com

    Pour fermer cette fenetre appuyez sur OK apres avoir noté l'url www.ZZZZZZ.com
    je voudrai verifier que les information contenu dans le fichier sont vraiment des informations pertinentes et non pas du bla bla bla. Donc avec python:
    --> Je dois lire le fichier et vérifier sont contenu ( lexique, syntaxe et sémantique de ses phrases )

    Merci beaucoup pour vous !!

  9. #9
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    je voudrai verifier que les information contenu dans le fichier sont vraiment des informations pertinentes
    Oui c'est bien mais de quelles informations tu parles ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  10. #10
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    quelles informations tu parles ?
    Le contenu du fichier c'est à dire les mots et les phrases, qui forment le fichier, sont correctes.

  11. #11
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Bon je vois que tu manques de précision, donc je vais faire avec ce que j'ai.

    Pour vérifier qu'un mot est dans une chaîne de caractères on peut utiliser if...in

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if "string" in line:
        # traitement...
    Si tu veux vérifier la position d'un mot dans une ligne, tu peux utiliser la fonction find().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if line.find("string", 5, 10) != -1: # vérifie que "string" se trouve entre l'indice 5 et 10 de line
        # traitement...
    Après si tu n'arrives pas à te débrouiller avec cela, il faudra nettement plus de précision, car

    Le contenu du fichier c'est à dire les mots et les phrases, qui forment le fichier, sont correctes.
    Un ordinateur n'est pas un cerveau avec une boule magique, il n'applique que se qu'on lui demande d'appliquer, il ne devine pas.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  12. #12
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Merci pour votre réponse, vous avez raisons. Mais le problème c'est que je connait pas d'avance le contenu du fichier.
    Alors pour simplifier comment par exemple "google", "Word"...etc, vérifient l'orthographe d'un texte en français ou en anglais ??

  13. #13
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Merci pour votre réponse, vous avez raisons. Mais le problème c'est que je connait pas d'avance le contenu du fichier.
    Admettons, seulement tu devrais savoir exactement ce que tu cherches

    Alors pour simplifier comment par exemple "google", "Word"...etc, vérifient l'orthographe d'un texte en français ou en anglais ??
    Il te faudra un fichier dictionnaire (français ou anglais) qui te permettra de vérifier si ton orthographe est correct.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  14. #14
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Il te faudra un fichier dictionnaire (français ou anglais) qui te permettra de vérifier si ton orthographe est correct.
    Et ce je pourrai le trouvé sur le Web ce fichier ??

  15. #15
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Et ce je pourrai le trouvé sur le Web ce fichier ??
    Oui souvent il existe des fichiers pour le scrabble ou autres jeux d'instruction littéraire, je te laisse chercher avec google
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  16. #16
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Tel que formulé, le problème ressemble au "traitement automatisé du language", et je ne pense pas qu'il existe un module tout fait qui traite ce problème très complexe dans le cas général. Avec google et des mots comme "python traitement des langues", on trouve des sites comme http://traitementautomatiquedeslangu...2/hello-world/. Un simple coup d’œil sur le pdf (à télécharger) montre la dimension du problème.

    A mon avis, le problème à résoudre me semble plutôt être analogue au traitement des emails pour détecter les spams. En particulier, recherche de mots et évaluation: ça devrait être beaucoup plus simple, même si l'évaluation est probabiliste ("tel message est 'probablement' un spam").

    Dans ce cas, la démarche est empirique: quels sont les mots qui suggèrent que c'est une bonne info et les mots qui suggèrent le contraire? Il faut donc commencer par de nombreux exemples des 2 types de messages pour déceler ce qui caractérise l'un et l'autre. Et dans ce cas, on n'a pas besoin d'un dictionnaire de tous les mots français (si c'est du français), mais seulement (entre autres) d'une liste des mots caractéristiques.

    Un exemple qui va un peu plus loin est disponible ici: http://www.cri.ensmp.fr/classement/doc/A-399.pdf.

    Bref, il y a du boulot...
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  17. #17
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 811
    Points : 7 096
    Points
    7 096
    Par défaut
    Salut Tyrtamos,

    Je pensais plus à un correcteur orthographique, dont l'utilisation d'un dictionnaire me semblait incontournable.

    A mon avis, le problème à résoudre me semble plutôt être analogue au traitement des emails pour détecter les spams. En particulier, recherche de mots et évaluation: ça devrait être beaucoup plus simple, même si l'évaluation est probabiliste ("tel message est 'probablement' un spam").
    Si c'est le cas on pourrait par exemple créer une liste de mots interdits qui seraient contrôlés dans chaque corps et titre du mail, non?

    La réponse à cette question peut être si j'ai bien compris

    Et dans ce cas, on n'a pas besoin d'un dictionnaire de tous les mots français (si c'est du français), mais seulement (entre autres) d'une liste des mots caractéristiques.
    à voir maintenant ce que le PO souhaite réellement faire.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  18. #18
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    salut je vous remercie beaucoup pour vos réponses,

    En fait, Tyrtamos vous avez beaucoup approché du problème mais moi ce que je cherches ce n'est pas de détecter si c’était un spam ou non, mais plus tôt je connais que c'est un fichier spam et je voudrai analyser de plus son contenu.
    vous trouverez ci-joint une capture que je l'ai obtenu à partir de votre lien ( http://www.cri.ensmp.fr/classement/doc/A-399.pdf ) qui vas mieux expliquer.

    Je vous remercie !!
    Images attachées Images attachées  

  19. #19
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 461
    Points : 9 248
    Points
    9 248
    Billets dans le blog
    6
    Par défaut
    Alors, c'est bien ce que je craignais (): on a tout:
    - traitement automatisé du langage pour trouver les phrases
    - évaluation du caractère subjectif du sens de la phrase
    - en fonction => stockage dans une base de données

    Je ne connais pas de module Python capable de faire ça. On trouve assez facilement des 'parsers' pour analyser des codes informatiques, y compris Python, mais c'est beaucoup plus restreint que des phrases en langage naturel. A noter qu'en plus, des hommes peuvent dire des choses très intéressantes avec des phrases incorrectes et des fôtes d'ortographes... (ça arrive même très souvent!).

    Je suis cependant tombé sur un livre qui en parle: http://www.developpez.net/forums/d11...g-with-python/, présenté dans un des forums de developpez: celui qui traite d'intelligence artificielle (qui, comme chacun sait, est le contraire de la "bétise naturelle"...).

    Pour plus d'infos sur le traitement automatisé du langage naturel, cherche dans google avec "python traitement du langage naturel". Il y a de nombreux sites qui évoquent le sujet, qui fait partie des techniques d'intelligence artificielle. On y trouve des choses intéressantes et inattendues comme l'analyse automatiques des CV (http://www.pmellot.com/techno/analyseur.aspx)!. Tu devrais trouver quelques bases pour ton projet, en plus de la thèse de DZICZKOWSKI qui contient des éléments vraiment très intéressants.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  20. #20
    Membre régulier
    Étudiant
    Inscrit en
    Février 2009
    Messages
    220
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2009
    Messages : 220
    Points : 77
    Points
    77
    Par défaut
    Je vous remercie infiniment !!
    je vais essayer et je vous tiendrai au courant

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/06/2015, 12h28
  2. Réponses: 145
    Dernier message: 15/02/2009, 11h51
  3. [Lien]erreur dans mon programme python
    Par durnambule dans le forum Général Python
    Réponses: 11
    Dernier message: 29/01/2004, 14h59

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