Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 31/10/2017, à 14:17

L'Africain

(Résolu) Erreur dans script python dans conversion de texte.

Bonjour,
C'est un peu difficile de trouver un titre pour mon problème. Alors je vais essayer de m'expliquer correctement.
J'utilise un script usfm2osis.py python pour convertir certains fichiers usfm (du txt) en osis (du xml). Ce sont des textes de bibles pour le logiciel xiphos
Cependant j'ai un léger problème avec la conversion de la balise \fp qui est un paragraphe dans une note. Voici un exemple de texte:

... ntama na mono.\f + Mambu ... na lufwa.
\fp vv. 8-9: Mt 27,39-43 ... (kumosi ti Nkb 68, 22).
\fp v.19 Mt 27,35 ye Jn 19,24... ke lungisa v. 19.
\fp Tuka v. 23... Yezu ke songa na kumwanga nsangu ya mbote.\f*
\q1
\v 3 E Nzambi na...

Voici le résultat:

<l level="2">... ntama na mono.<note placement="foot"><p></p><p>Mambu ... na lufwa.</p>
<p>vv. 8-9: Mt 27,39-43 ... (kumosi ti Nkb 68, 22).</p>
<p>v.19 Mt 27,35 ye Jn 19,24 ... ke lungisa v. 19.</p>
<p>Tuka v. 23 ... Yezu ke songa na kumwanga nsangu ya mbote.</note></p></l><verse eID="Ps.22.2"/

usfm2osis.py me met une balise <p></p> en trop après placement="foot"> et me place dans la dernière ligne une balise </p> au mauvais endroit, ici elle est après la balise </note> alors qu'elle devrait la précéder. J'ai mis les balises en gras dans le texte.

Pour finir pardonner mon long discours smile je crois que la ligne fautive dans le script est celle-ci à la ligne 896 (voi le lien plus haut) :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#(...)
# \fp_
        note = re.sub(r'\\fp\b\s(.+?)(?=(\\fp|\uFDDF</note>|$))', r'<p>\1</p>', note)
        note = re.sub(r'(<note\b[^>]*?>)(.*?)<p>', r'\1<p>\2</p><p>', note)
        
        # \ft_ handle this lastly, so it may properly end any previous footnote tag
        note = re.sub(r'\\ft\s', '', note)

        # \fq*,\fqa*,\ft*,\fr*,\fk*,\fl*,\fp*,\fv*
        note = re.sub(r'\\\+?f(q|qa|t|r|k|l|p|v)\*', '', note)

J'espère que je n’exagère pas dans ma demande, mais je sais qu'il y en a qui manipule python, comme des jongleurs les balles.

Merci d'avance pour votre aide.

L'Africain

Edit:
Je ne sais pas, mais il y a aussi ce script : u2o.py
Le résultat est un moins chaotique, la conversion donne cette erreur:

</div>/note>

Ce qui est attendu:

</div></note>

Peut être c'est plus facile de corriger ce dernier script (qui fonctionne d'ailleurs beaucoup plus vite que l'autre...
j'ai fait un rapport de bug ici

Dernière modification par L'Africain (Le 05/11/2017, à 21:33)


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne

#2 Le 31/10/2017, à 15:16

malbo

Re : (Résolu) Erreur dans script python dans conversion de texte.

Hors sujet :
Bonjour,
Pourrais-tu intervenir pour donner quelques éclaircissements dans cette autre discussion : https://forum.ubuntu-fr.org/viewtopic.php?id=2016864
Fin du hors sujet.

Hors ligne

#3 Le 01/11/2017, à 16:53

L'Africain

Re : (Résolu) Erreur dans script python dans conversion de texte.

Bonjour,
Eh bien pour une fois j'ai été devancé. Le bug semble avoir été résolu dans le second script.


Ubuntu-Unity 18.04 LDLC (clevo) X/Lubuntu-Mate
"Donne à celui qui te demande…" Mt 5,42

Hors ligne