Sujet sur Discussion utilisateur:Acélan/Structured Discussions Archive 1

Cunegonde1 (discussioncontributions)

Bonjour Acelan, j'ai vu que tu avais corrigé "lapis" en "tapis" sur un livre que j'ai transcrit et je t'en remercie. Je ne connaissais pas cette scanille de confusion l/t qui est nouvelle pour moi (elle n'est pas dans la liste). A mon avis cela vaut le coup de l'ajouter au script, car il ne doit pas y avoir de faux positifs si l'on exclue dans la regex lapis lorsqu'il est suivi de "-lazuli" ou "lazuli".

Acélan (discussioncontributions)
Bonjour,
Je viens de tomber dessus, effectivement. Ça peut valoir le coup, mais il y a beaucoup de faux positifs, en fait (pas mal de latin, entre autres, et "lazuli" est souvent omis) : si tu l'inclus, il faut aussi supprimer "bleu lapis", penser qu'on peut trouver "lazulis" au pluriel, et que lazzuli s'écrit parfois avec deux z.
Cunegonde1 (discussioncontributions)

Il me semble que la regex (?<!bleu\s)lapis(?!(\s|-)lazzulis?|(\s|-)lazulis?) permet d'exclure les faux positifs que tu as cité, sauf quand le "lazuli" est omis.

Acélan (discussioncontributions)

oui, ça semble bien :) (et les faux positifs ne me dérangent pas trop dans un cas comme ça)

Cunegonde1 (discussioncontributions)
ElioPrrl (discussioncontributions)

Intégré à ma page, merci :)

ElioPrrl (discussioncontributions)

Par ailleurs, Cunegonde1, je comprends maintenant pourquoi ta règle de doublons qui marche sur Sigil ne marchait pas sur Wikisource (soit elle ne trouvait pas les doublons, soit elle surlignait des combinaisons « il se servait »), et pourquoi on doit échapper tous les slashs : cela vient de ce que les règles sont rentrées en tant que chaîne de caractères (entre guillemets et non entre slashs), et que de plus ces chaînes de caractères sont passées dans une fonction precompile_regex qui leur ajoute une parenthèse ouvrante au début et une fermante à la fin — de sorte que on ne pouvait utiliser \1, \2, etc., puisque toute la règle était entre parenthèses.

Je viens donc de corriger sur ma page la règle de recherches des doublons, et maintenant elle marche très bien !

Cunegonde1 (discussioncontributions)

@ElioPrrl, Bravo pour ta patience et ta compétence.

Acélan (discussioncontributions)

@Cunegonde1, @ElioPrrl

Bravo à tous les deux. Effectivement, j'avais testé ce qui était proposé sur le scriptorium, mais sans trouver cela probant. Je vais refaire un test, du coup.

Cunegonde1, dans ta regexp, tu as intégré tout ce qu'il y avait dans ma sous-page scanilles.js ? ça a l'air assez complet, mais présenté comme ça, c'est un peu illisible pour moi :/

Cunegonde1 (discussioncontributions)

Normalement oui je pense que j'avais repris intégralement ta liste, plus quelques autres scanilles dont je ne me souviens plus. Le côté illisible est inhérent aux regex c'est d'ailleurs pour ça que plus elles sont longues plus elles sont difficile à debugger. J'en ai une version de travail avec une ligne pour chaque fragment, la difficulté est ensuite de relier les fragments sans se tromper dans les parenthèses.

Pour avoir un code lisible il faut passer dans un langage propre type script perl comme celui que je me suis fait pour rectifier les ocr de mauvaises qualité avec s longs: $Lig =~ s/abuf/abuſ/g;#abuse, abuser.

Acélan (discussioncontributions)

@Cunegonde1 merci pour ta réponse. Si tu avais tout repris, je vais remplacer le contenu de ma sous-page, alors.

Cunegonde1 (discussioncontributions)

J'ai travaillé sur cette regex en 2017 je suis donc parti de ta liste telle qu'elle était à cette époque :

ElioPrrl (discussioncontributions)

Bonjour Acélan !

Je viens de modifier la règle de recherche de doublons, qui produisait encore trop de faux positifs, parce que \b (word-boundary) détectait non seulement les débuts et fins de mots, mais aussi les caractères diacrités. Il faut donc remplacer, entre les guillemets, la règle de doublons par :

?!nous|vous|faire|en|s\\ss’)(?<=^|\\s)(['’a-zÀ-ÿâàéèêëîïôùûüœæſ]+)\\s\\1(\\s|\\.|\\…|,

Désolé pour ce rodage un peu difficile de la recherche de doublons Sourire

Acélan (discussioncontributions)

Merci ! quand je vois les difficultés que j'ai avec les regex, je ne peux qu'admirer le travail en question, malgré le temps de rodage. J'ai mis ta page en liste de suivi, de toute façon, donc j'ai vu que tu étais en cours de modification.

ElioPrrl (discussioncontributions)

Ah, je suis surveillé  ! Je fais aussi la liste des modifications principales apportées à la règle de Cunégonde dans la page de discussion de mon scanilles.js, ce qui permet de signaler la portion de regex modifier, et de donner ce par quoi je la remplace (je compte même faire un tableau pour que ce soit plus clair). Au plaisir Sourire

Cunegonde1 (discussioncontributions)

Bonjour à tous deux, cela marche pour l'échappement des diacritiques, je coinçais sur ce point alors que c'était évident, il suffit pour poursuivre après un diacritique de définir la fin de chaîne avec une espace ou une ponctuation. Du coup, plutôt que de mettre ['’a-zÀ-ÿâàéèêëîïôùûüœæſ] tu dois pouvoir mettre ['’]\p{L} qui comprends toutes les lettres unicode qui fonctionne chez moi et qui est plus élégant. J'ai découvert récemment cette solution source.

Acelan, je suis sensible à ta remarque sur le caractère abscons des regex et j'envisage d'en faire une décomposition fragment par fragment avec pour chacun une phrase permettant de tester chaque fragment.

Acélan (discussioncontributions)
ElioPrrl (discussioncontributions)

Je teste et je reviens !

Pour la regex, il est vrai que sur Wikisource il est assez peu utile que tout soit tenu en un seul bloc ; mais pour Sigil ou autres éditeurs, je conçois bien quel avantage on en retire : une seule passe sur le texte, plutôt que des dizaines, pour repérer toutes les scanilles répertoriées.

ElioPrrl (discussioncontributions)

Aïe, non ça ne marche pas, dommage...

Cunegonde1 (discussioncontributions)

Effectivement Elioprrl, tu as raison pour la vérification en une seule passe. A propos des faux positifs j'en ai vu avec "de de" ie : « la lettre de de Sade ». Assez vicieux car cela demande un vrai examen à d'autres endroits du livre pour déterminer si c'est fautif ou non.

ElioPrrl (discussioncontributions)

Excepter de de de la recherche de doublons, mais le faire surligner plus loin sauf si une majuscule vient après ? Ou on laisse en état ?

Acélan (discussioncontributions)

Je pense qu'on peut laisser en l'état ; il y a de toute façon des faux positifs pour à peu près tous les cas.

Répondre à « nouvelle scanille "lapis" > "tapis" »