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 :

Correction Grammaticale Depuis Python


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Correction Grammaticale Depuis Python
    Bonjour,
    connaissez-vous un outil permettant de faire de la correction grammaticale depuis Python ?

    Je viens de découvrir GRAC mais le projet est abandonné depuis 2005...

    A défaut, connaissez-vous des façons de coder ce genre de chose ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 696
    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 696
    Par défaut
    Salut
    N'y a-t-il pas des API pour attaquer le grammar checker d'Open Office?
    - W
    Note: Pour WORD, c'est simple: COM
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour,
    il y a bien ceci mais c'est en Java... Peut-on communiquer avec des classes Java ?

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    En fait, je n'avais pas lu cette page. On peut utiliser le logiciel en ligne de commande. Je vais tester cela.

  5. #5
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Finalement, j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     #! /usr/bin/env python
     
    import os
     
    pathLanguageToolJar = r"LanguageTool-1.1/LanguageTool.jar"
    pathFile = "test.txt"
     
    sortie = os.popen("java -jar {0} -l fr -c utf8 {1}".format(pathLanguageToolJar,
                                                               pathFile))
    print(sortie.read())
    Le fichier TXT est le suivant :
    Voici un petit textes, histoire de voir ce qu'il se passent.
    Le code renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Expected text language: French
    Working on test.txt...
    1.) Line 1, column 10, Rule ID: ACCORD_NOMBRE[1]
    Message: «*petit*» et «*textes*» ne semblent pas bien accordés en nombre
    Voici un petit textes, histoire de voir ce qu'il se passent. 
             ^^^^^^^^^^^^                                        
     
    2.) Line 1, column 47, Rule ID: ACCORD_R_PERS_VERBE[3]
    Message: Vérifiez l'accord entre le pronom «*il*» et le verbe «*passent*».
    ...oici un petit textes, histoire de voir ce qu'il se passent. 
                                                    ^^^^^^^^^^^^^  
    Time: 316ms for 1 sentences (3.2 sentences/sec)
    Le seul souci que j'ai c'est qu'avec Python 3, il semble y avoir un problème d'encodage car j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Traceback (most recent call last):
      File "/Users/cbal/Documents/myWorld/python/tutos/languageTool/test.py", line 11, in <module>
        print(sortie.read())
      File "/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/codecs.py", line 300, in decode
        (result, consumed) = self._buffer_decode(data, self.errors, final)
    UnicodeDecodeError: 'utf8' codec can't decode bytes in position 112-113: invalid data
    Ce qui renvoie cette erreur c'est l'instruction sortie.read()... Je vais voir si cela se "répare"...


    IMPORTANT ! Il faut que les mots soient correctement orthographiés. Donc en pratique, on utilisera par exemple pyEnchant pour l'orthographe, suivi de ce qui est ci-dessus pour la grammaire.

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    MISE A JOUR DU MARDI 2 NOVEMBRE 2010 : ajout d'infos sur les erreurs "grammaticales".

    Enfin bon pour Python3 !
    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
    20
    21
    22
    23
    #! /usr/bin/env python3
     
    # Sources :
    #    http://docs.python.org/py3k/library/subprocess.html?highlight=subprocess#using-the-subprocess-module
    #    http://www.developpez.net/forums/d922907/autres-langages/python-zope/general-python/affichage-resultat-commande-popen/#post5208308
     
    import shlex
    import subprocess
     
    pathLanguageToolJar = r"LanguageTool-1.1/LanguageTool.jar"
    pathFile = "test.txt"
    # " -Dfile.encoding=UTF-8" given in the mailing list of LanguageTool.
    command_line = 'java -Dfile.encoding=UTF-8 -jar "{0}" -l fr -c utf8 "{1}"'.format(pathLanguageToolJar,
                                                            pathFile)
    args = shlex.split(command_line)
     
    out=subprocess.Popen(args,stdout=subprocess.PIPE)
    (sout,serr)=out.communicate()
     
    # sout contains BYTES...
    sout = sout.decode('utf-8') 
     
    print(sout)
    La sortie est la suivante :
    Expected text language: French
    Working on test.txt...
    1.) Line 1, column 10, Rule ID: ACCORD_NOMBRE[1]
    Message: «*petit*» et «*textes*» ne semblent pas bien accordés en nombre
    Voici un petit textes, histoire de voir ce qu'il se passent.
    ^^^^^^^^^^^^

    2.) Line 1, column 47, Rule ID: ACCORD_R_PERS_VERBE[3]
    Message: Vérifiez l'accord entre le pronom «*il*» et le verbe «*passent*».
    ...oici un petit textes, histoire de voir ce qu'il se passent.
    ^^^^^^^^^^^^^
    Time: 333ms for 1 sentences (3.0 sentences/sec)
    Nous avons enfin des "strings" que je préfère aux "bytes"...

    Pour savoir ce que signifie chacune des erreurs, il faut regarder le fichier grammar.xml dans le dossier languageTool/LanguageTool-1.1/rules/fr.

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

Discussions similaires

  1. MySQL depuis Python
    Par Matthieu Brucher dans le forum Requêtes
    Réponses: 3
    Dernier message: 11/05/2009, 10h45
  2. exécuter des scripts tcl depuis python
    Par anneg dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 08/04/2009, 12h51
  3. lancer word depuis python
    Par jojo42000 dans le forum Général Python
    Réponses: 1
    Dernier message: 10/12/2008, 15h04
  4. Générateur de code C/C++ depuis Python
    Par SebGR dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 28/08/2008, 14h54
  5. Execution d'un shell depuis Python
    Par Billette dans le forum Général Python
    Réponses: 3
    Dernier message: 05/09/2007, 09h01

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