- 08 Jun, 2018 3 commits
-
-
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)
-
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)
-
Seb35 authored
-
- 06 Jun, 2018 1 commit
-
-
Damien authored
-
- 27 May, 2018 2 commits
- 26 May, 2018 1 commit
-
- 25 May, 2018 3 commits
-
-
Seb35 authored
Modifié - Dans le format texte, retrait de l’article défini ou préposition introduisant le lien, les autres formats conservent cette partie d’expression Corrigé - La Constitution n’était plus reconnue comme texte
-
Seb35 authored
Les autres formats conservent cette partie d’expression.
-
Seb35 authored
-
- 23 May, 2018 1 commit
-
-
Seb35 authored
-
- 22 May, 2018 1 commit
-
-
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é".
-
- 21 May, 2018 2 commits
-
-
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
-
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
-
- 20 May, 2018 2 commits
- 15 May, 2018 1 commit
-
-
Seb35 authored
Et cela peut capturer les erreurs de grammaire et c’est plus rapide (un peu)
-
- 08 May, 2018 2 commits
- 07 May, 2018 1 commit
-
-
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
-
- 06 May, 2018 3 commits
-
-
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.
-
Seb35 authored
-
Seb35 authored
Corrigé - Fichiers de grammaire non-lu lorsque l’import se fait depuis un autre programme Python via sys.path
-
- 01 May, 2018 5 commits
-
-
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
-
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
-
Seb35 authored
-
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
-
- 30 Apr, 2018 2 commits
-
-
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
- 29 Apr, 2018 5 commits
-
-
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
-
Seb35 authored
La faute « code du commerce » est retirée des expressions reconnues, elle re-deviendra disponible via un flag explicite.
-
Seb35 authored
-
Seb35 authored
Modifié - Nature "livre/titre/chapitre" manquante dans le format structuré
-
- 28 Apr, 2018 2 commits
-
-
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)
-
Seb35 authored
Adverbes = ci-dessous, ci-dessus, ci-avant, ci-après Adjectifs = précédent, suivant
-
- 27 Apr, 2018 2 commits
-
-
Seb35 authored
-
- 25 Apr, 2018 1 commit
-
-
Seb35 authored
-