1. 08 Jun, 2018 3 commits
    • Seb35's avatar
      Version 1.3.0 · aeb1f8d8
      Seb35 authored
      Ajouté
      - Cette version est la première publiée sur PyPi
      - Format 'structuré-index' similaire au format structuré mais avec les index de chaque sous-expression, permettant ainsi de positionner des liens sur chacune des sous-expressions
      
      Modifié
      - La bibliothèque respecte davantage de bonnes pratiques Python
      
      Corrigé
      - La bibliothèque n’était pas compatible dans les environnements ASCII uniquement (export LANG=C)
      aeb1f8d8
    • Seb35's avatar
      Préparation à la publication sur PyPi · 484c2f71
      Seb35 authored
      - La bibliothèque respecte davantage de bonnes pratiques Python
      - La bibliothèque n’était pas compatible dans les environnements ASCII
        uniquement (export LANG=C)
      484c2f71
    • Seb35's avatar
      f2251eaa
  2. 06 Jun, 2018 1 commit
  3. 27 May, 2018 2 commits
  4. 26 May, 2018 1 commit
    • Seb35's avatar
      Format 'structuré-index' · 61cd09aa
      Seb35 authored
      Ce format est similaire au format structuré mais avec, en sus, les index de
      chaque sous-expression, permettant ainsi de positionner des liens sur chacune
      des sous-expressions.
      
      Issue: #19
      61cd09aa
  5. 25 May, 2018 3 commits
  6. 23 May, 2018 1 commit
  7. 22 May, 2018 1 commit
    • Seb35's avatar
      La Constitution n’était plus reconnue comme texte · 8ffc1206
      Seb35 authored
      Du fait qu’elle n’a pas de numéro, elle est classée (un peu abusivement,
      quoique) avec les codes. Noter que la casse "Constitution" est imposée pour
      éviter de capturer des expressions comme "La constitution de la société".
      8ffc1206
  8. 21 May, 2018 2 commits
    • Seb35's avatar
      Version 1.2.0 · 29413ac0
      Seb35 authored
      Ajouté
      - Reconnaissance des alinéas entre parenthèses
      - Reconnaissance des décisions du Conseil constitutionnel sur activation explicite d’une option, activée par défaut dans le programme principal
      - Ajout d’un séparateur point "." en plus du tiret
      - Ajout de tirets trait d’union Unicode U+2010 et U+2011
      - Reconnaissance des expressions relatives "de la présente loi" et "du présent chapitre"
      - Quelques noms d’articles spécifiques ajoutés, parmi les plus utilisés
      - Dans le format structuré, les subdivisions sont classées par ordre hiérarchique via un dictionnaire ordonné
      - Ajout d’un script de test des performances et de vérification de la couverture sur les noms d’articles
      - Possibilité de tester directement un nom de lien avec le programme principal (lorsque le paramètre n’est pas un nom de fichier)
      
      Modifié
      - Réorganisation de la grammaire :
        - Les expressions pré-candidates sont désormais les articles définis et indéfinis (le, la, l’, au, du, aux, des)
        - Distinction claire entre les expressions introductives d’un lien (pré-candidats), les liaisons et les corps d’expressions
        - La grammaire est rangée en deux catégories : règles principales (signifiantes et métier) et règles annexes (éléments terminaux)
      - Réorganisation de la lecture des arbres (format structuré) :
        - Suppression des règles de localisation dans l’arbre au profit de la capture par noms de règles, via un unique parcours de l’arbre (plus rapide donc et plus facile à maintenir)
        - Généralisation des listes, auparavant uniquement pour les articles et chapitres à un seul niveau de liste, désormais également pour les alinéas à trois niveaux imbriqués de listes
      - Optimisation des performances par l’utilisation d’une regex au lieu de la grammaire Parsimonious pour les préfixes L, D, etc
      - Vérification du paramètre format dans le programme principal
      - Tests :
        - 94,59 % des noms d’articles de la base LEGI sont reconnus
        - 97,45 % du volume des articles sont reconnus, i.e. en tenant compte de la proportion relative de chaque nom d’article
        - 74 µs de calcul par nom d’article en moyenne, soit deux fois moins que la version précédente
        - le format structuré prend environ 10% de temps supplémentaire par rapport à la seule reconnaissance, contre 200 à 300% auparavant
      
      Corrigé
      - Lorsque plusieurs divisions supra-articles sont présentes, elles sont désormais toutes retournées et non plus seulement la dernière
      29413ac0
    • Seb35's avatar
      Réécriture de la grammaire et changement de la méthode de lecture de l’arbre · 835baa9e
      Seb35 authored
      Rationalisation de la grammaire selon l’expérience acquise, résultant notamment
      en une meilleure séparation entre les parties d’expressions signifiantes
      (article 5, partie II, etc.) et les liaisons (au, du, des, etc.).
      
      La grammaire comporte désormais deux parties : les règles principales,
      signifiantes et métier, et les règles annexes, comportant les éléments
      terminaux.
      
      La lecture de l’arbre se fait désormais en un seul parcours de l’arbre,
      capturant certaines règles. La lecture peut soit capturer des chaines uniques
      soit faire une liste de chaines, possiblement à plusieurs niveaux. Les listes
      d’articles sont à un seul niveau, les listes de subdivisions supra-articles
      sont à deux niveaux, les listes d’alinéas sont à trois niveaux.
      
      Issue: #5
      835baa9e
  9. 20 May, 2018 2 commits
  10. 15 May, 2018 1 commit
  11. 08 May, 2018 2 commits
  12. 07 May, 2018 1 commit
    • Seb35's avatar
      Optimisation de la grammaire et test de performance · 906b756c
      Seb35 authored
      Grammaire :
      - Les règles relatives aux noms d’articles sont mieux nommées
      - Ajout d’un séparateur point "." en plus du tiret
      - Ajout de tirets trait d’union Unicode U+2010 et U+2011
      - Optimisation des performances par l’utilisation d’une regex au lieu de
        la grammaire Parsimonious pour les préfixes L, D, etc
      - Quelques noms d’articles spécifiques ajoutés, parmi les plus utilisés
      
      Tests :
      - Ajout d’un script de test des performances et de vérification de la
        couverture sur les noms d’articles
      - À l’aide d’une requête avec legi.py, la grammaire de ce commit couvre donc :
        - 94,59 % des noms d’articles de la base LEGI
        - 97,45 % du volume des articles, i.e. en tenant compte de la proportion
                  relative de chaque nom d’article
        - 74 µs de calcul par nom d’article en moyenne, soit deux fois moins que la
                version avant ce commit
      906b756c
  13. 06 May, 2018 3 commits
    • Damien's avatar
      Lève une exception si le format donné est incorrect · 724414c9
      Damien authored
      Si l'utilisateur fait "donnelescandidats texte --format=structure",
      le programme va lever une exception afin que l'erreur ne soit pas
      silencieuse.
      
      Il pourrait être aussi judicieux d'ajouter cette vérification
      au niveau de donnelescandidats() directement mais j'ai préféré
      suivre la logique éxistante.
      
      De plus, j'ai changé la logique du bloc que je trouvais
      hasardeuse même si celle-ci peut être un peu excessivement
      générique.
      
      Et finalement, j'ai changé en passant le shebang pour
      qu'il soit plus générique et qu'il utilise bien
      le binaire python de l'environnment virtuel.
      724414c9
    • Seb35's avatar
      Fusion avec la version 1.1.1 · 0595bf84
      Seb35 authored
      0595bf84
    • Seb35's avatar
      Version 1.1.1 · 8d68b58f
      Seb35 authored
      Corrigé
      - Fichiers de grammaire non-lu lorsque l’import se fait depuis un autre programme Python via sys.path
      8d68b58f
  14. 01 May, 2018 5 commits
    • Seb35's avatar
      Reconnaissance des décisions du Conseil constitutionnel · c02b67fc
      Seb35 authored
      Le site du Conseil constitutionnel mentionne toutes les décisions depuis sa
      création, la numérotation devrait donc être exhaustive, sauf erreur.
      
      Par cet amendement est également ajouté un paramètre 'options' permettant
      des variations sur la grammaire originale, en l’occurence par l’introduction
      d’une règle activée sur demande.
      
      Issue: #14
      c02b67fc
    • Seb35's avatar
      Alinéas entre parenthèses · 6662e468
      Seb35 authored
      Issue: #3
      6662e468
    • Seb35's avatar
      Version 1.1.0 · 28ef10e1
      Seb35 authored
      Ajouté
      - Format de sortie dédié au debug et notamment à la recherche de faux négatifs
        par l’affichage de contexte autour des expressions reconnues ou traitées
      - Dérivation possible de la grammaire en des grammaires "dégradées"
        automatiquement, pour l’instant avec des accents incorrects ou l’expression
        erronée "code du commerce"
      - Reconnaissance des liens généraux vers des textes sans mention d’un article
        spécifique
      - Reconnaissance des divisions supra-articles "(sous-)?section",
        "(sous-)?paragraphe", "partie"
      - Reconnaissance des chaînes de divisions supra-articles, par exemple "chapitre
        X du titre VII du livre VII du code de justice administrative"
      - Date optionnelle pour les textes européens
      
      Mofifié
      - Ajout des pré-candidats "la", "l['’]", "section", "partie" pour la
        reconnaissance des sections et lois isolées
      28ef10e1
    • Seb35's avatar
      Mise à jour du CHANGELOG · 4a4e65c5
      Seb35 authored
      4a4e65c5
    • Seb35's avatar
      Mauvaise adaptation des règles de localisation pour le format structuré · 31ae6480
      Seb35 authored
      Le précédent commit implémentant notamment #13 et #15 ne lisait pas
      correctement les informations pour le format structuré, c’est donc corrigé.
      
      Par ailleurs, il est ajouté les informations structurées pour les liens
      relatifs (par ex. "le précédent article"), corrigeant #16.
      
      Il est ajouté dans la grammaire une date optionnelle pour les textes européens,
      ainsi que les liens relatifs avec un mot féminin (par exemple "de la présente
      section").
      
      Le programme principal ./donnelescandidats.py est désormais générique pour
      la lecture des informations structurées et il affiche explicitement lorsqu’il
      n’y a aucune information structurée : ça permettra de constater plus facilement
      les problèmes comme #16.
      
      Issue: #13
      Issue: #15
      Issue: #16
      31ae6480
  15. 30 Apr, 2018 2 commits
    • Seb35's avatar
      Petite amélioration pour les règlements européens · 1eedd985
      Seb35 authored
      Issue: #7
      1eedd985
    • Seb35's avatar
      Début de rationalisation de la grammaire · 76498bfd
      Seb35 authored
      Ajouts dans la grammaire :
      - les divisions de texte "(sous-)?section", "(sous-)?paragraphe", "partie"
      - possibilité de préciser différents niveaux de divisions comme
          "chapitre X du titre VII du livre VII du code de justice administrative"
      - reconnaissance des lois mentionnées de façon isolée, sans précision d’un
        article
      - reconnaissance des ordinaux romains (Ier, IIe, …)
      - ajout des pré-candidats "la", "l['’]", "section", "partie" pour la
        reconnaissance des sections et lois isolées
      - ajout de liaisons "de l’", "du ", "de la ", "des " bien que peu utilisées
        pour l’instant
      - noms des règles un peu plus uniformes
      
      De façon plus générale, il serait bien de continuer à ranger la grammaire
      selon des thématiques précisées : reconnaissance des articles, des chapitres,
      des alinéas, grammaire générale, typographie, nombres, etc. Une difficulté
      est la question des accords masculin/féminin + singulier/pluriel + parfois
      consonne/voyelle (par exemple pour les liaisons) ; il serait peut-être plus
      facile de faire plus de règles pour séparer les cas, à voir.
      
      Ce commit double le temps de calcul par rapport à la version précédente (on
      passe de 0,7s à 1,5s sur la loi 78-17 et de 8s à 15s pour le code civil) ;
      toutefois vu la meilleure qualité, notamment en rattachant les différents
      niveaux de titres, en ajoutant les lois isolées et en ajoutant les sections,
      je trouve que cela vaut le coup.
      
      Issue: #13
      Issue: #15
      76498bfd
  16. 29 Apr, 2018 5 commits
    • Seb35's avatar
      Grammaire générée automatiquement comme insensible aux erreurs d’accents · 2c1792c2
      Seb35 authored
      Et un peu plus généralement une fonction est introduite pour pouvoir
      dériver une grammaire ayant certaines caractéristiques d’erreurs. Les
      deux typologies d’erreurs introduites sont :
      - erreur ou oubli d’un accent,
      - expression « code du commerce » au lieu de « code de commerce »
      
      Comme précédemment, les grammaires générées sont cachées et réutilisées
      en cas d’appels multiples de la fonction.
      
      La valeur par défaut du paramètre est de ne pas appliquer d’erreurs (grammaire
      stricte). C’est la valeur utilisée par le programme principal.
      
      Issue: #2
      2c1792c2
    • Seb35's avatar
      Typo dans la grammaire · 7b5bf3a1
      Seb35 authored
      La faute « code du commerce » est retirée des expressions reconnues, elle
      re-deviendra disponible via un flag explicite.
      7b5bf3a1
    • Seb35's avatar
      Petite simplification du code · b941a9e2
      Seb35 authored
      b941a9e2
    • Seb35's avatar
      214b2d7a
    • Seb35's avatar
      Version 1.0.1 · b449c613
      Seb35 authored
      Modifié
      - Nature "livre/titre/chapitre" manquante dans le format structuré
      b449c613
  17. 28 Apr, 2018 2 commits
    • Seb35's avatar
      Version 1.0.0 · d2f48862
      Seb35 authored
      Ajouté
      - Paramètre --format=texte|structuré|arbre ajouté au programme principal
      - Ajout de la reconnaissance des chapitres, titres et livres à un niveau similaire aux articles, mis à part que ces types ne peuvent être précisés par un alinéa
      - Ajout de la reconnaissance d’expressions comme « au présent article » et « article ci-après » (idem pour les chapitres, titres, livres)
      - Afin de faciliter la lecture de l’arbre résultat, notamment pour le format structuré, une grammaire rudimentaire de parcours dans l’arbre est créée, et plusieurs règles sont énoncées dans cette grammaire, par exemple la lecture du nom du texte dans un lien
      - Ajout d’une fonction générateur, la fonction retournant une liste reste disponible et énumère simplement le générateur
      - La fonction générateur retourne le format structuré par défaut, alors que la fonction liste retourne le format texte par défaut
      - Reconnaissance de l’expression « dudit code » (ou autre texte)
      - Reconnaissance des expressions pour les articles relatifs : « à l’article précédent », « au précédent article » (idem pour « suivant », « ci-avant », « ci-après »)
      - Reconnaissance des directives et règlements européens (version préliminaire)
      - Reconnaissance des expressions « audit premier alinéa » et « au même premier alinéa »
      
      Modifié
      - La valeur du paramètre format=chaîne est renommée en format=texte
      - Regroupement des quatres règles d’entrée de la grammaire en une seule, cela réduit fortement la complexité de la bibliothèque, permet de mieux appréhender les expressions capturées dans la rédaction de la grammaire et simplifie les données retournées unifiées en une seule entité
      - La lecture des grammaires se fait de façon interne et « statique » (une seule fois)
      d2f48862
    • Seb35's avatar
      Règles dédiées aux adverbes et adjectifs "relatifs" · eb9ca3ea
      Seb35 authored
      Adverbes = ci-dessous, ci-dessus, ci-avant, ci-après
      Adjectifs = précédent, suivant
      eb9ca3ea
  18. 27 Apr, 2018 2 commits
  19. 25 Apr, 2018 1 commit