OK
AJAX error!

Les forumsTribune libreÉditeur de Calibre et formes élidées

Éditeur de Calibre et formes élidées

Bonjour

Dès que j'ai appris que la 3.9 sortait, je me suis dépêché de rentrer. Merci pour cette version (elle ne s'installe qu'avec LibO chez moi) ;-)

Calibre v. 1.3.3 est de très loin le logiciel le plus populaire en matière de gestion de bibliothèque (ebooks), de conversion, et plein d'autres choses encore. Ce logiciel est sous licence libre. L'auteur, un Indien nommé Kovid Goyal, vient de le compléter avec un éditeur. Il vient de rajouter à l'éditeur un correcteur orthographique qui fonctionne avec des dictionnaires avec l'extension .oxt.

Cet éditeur fonctionne très bien avec votre 5.0.2. Il donne les occurrences des mots fautifs et ou inconnus sous forme de tableau avec possibilité de se rendre sur un mot en particulier, ou de modifier d'un coup tous les mots fautifs ayant une même graphie. Il affiche aussi les suggestions d'hunspell. Il signale leur langue et permet de corriger des mots, phrases, etc. en plusieurs langues sous réserve de les baliser avec les attributs lang appropriés (et que les dictionnaires correspondants soient installés).

Il y a un point sur lequel il semble perfectible. Le correcteur détecte bien les formes élidées mais les traite comme un nom indépendant. Si j'ai "articulateur" et "l'articulateur", il ne comptera pas deux occurrences mais une plus une et les affichera séparément. Je lui ai signalé cet effet indésirable mais en tant que non-francophone, il m'a indiqué qu'il accueillerait volontiers un patch dans ce domaine.

www.mobileread.com… message 18 et suivant (anglais)

Auriez-vous un texte ou un code disponible qui permettrait soit de résoudre ceci soit de lui permettre de mieux comprendre le problème?
le 18 avril 2014 à 18:00
Bonjour,

Je ne comprends pas tout à fait quel problème vous rencontrez. Envoyez-moi un e-book français (dicollecte at free dot fr). Ça ira plus vite.

Le compte des occurrences des mots est prévu sur la feuille de route de Grammalecte, quelque chose de mieux que ce que fournit l’extension Linguist que j’avais modifiée il y a fort longtemps pour faire ça. Ce compte sera basé sur le lemme et non sur la forme fléchie écrite (ce qui signifie par exemple que aimerais sera compté comme une occurrence de aimer.)
le 18 avril 2014 à 18:43
OK, je comprends mieux après avoir testé.

Deux solutions :
1. La plus simple, mais pas forcément adéquate pour tous les cas : lorsqu’un mot n’est pas reconnu par le dictionnaire français, demander à ce que l’apostrophe soit considérée comme un séparateur et ne retenir que la deuxième partie (celle après l’apostrophe) dans le compte des mots.

if "’" in word: word = word[word.find("’")+1:]
if "'" in word: word = word[word.find("'")+1:]


Ce code n’est pas forcément ce qui est le plus optimisé, il faut tester. Ça ira peut-être plus vite avec une expression régulière.
Les deux lignes ne sont pas forcément nécessaires, ça dépend comment il gère les apostrophes, s’il les transforme avant de faire la demande à Hunspell.

2. Plus exact, et plus coûteux en ressources, j’imagine, mais ça ne devrait pas être rédhibitoire : éliminer par expression régulière tout ce qui commence par l’, d’, j’, c’, s’, t’, m’, qu’, etc. après avoir regardé si le mot existe, puis le comptabiliser dans les mots inconnus le cas échéant.

rElidedPrefix = re.compile(u"(?i)^(l|d|m|t|s|j|c|ç|qu)['’]")
[...]
word = rElidedPrefix.sub("", word)



Et il faudrait spécifier au moteur de reconnaissance de ne faire ceci que pour le français.

Le code est générique, il n’est vraisemblablement pas du tout adapté au code de Calibre. Je n’ai pas le temps de me plonger dans son programme. Mais avec ça, il comprendra ce qui est nécessaire pour le français.
le 18 avril 2014 à 22:58
Merci beaucoup pour votre contribution hyper-rapide. Je lui ai adressé votre réponse. C'est vraiment un avantage de travailler sur des programmes libres.

www.mobileread.com…
le 19 avril 2014 à 07:28
Ce n’était pas nécessaire de recopier tout ce que j’ai dit avec mes erreurs. :) (Je devrais m’interdire d’écrire quand je somnole.) En plus, je me suis trompé dans le cas 2, il vaut probablement mieux éliminer les préfixes élidés après avoir vérifié que le mot est inconnu du dictionnaire.
J’ai édité mon message, maintenant que je suis un peu plus réveillé.

Par ailleurs, ôtez les tabulations dans le code Python.
le 19 avril 2014 à 08:49
Voici la réponse:

@roger64: I can probably do what you are asking, but this sort of thing really should be done by the spell check library, which is hunspell in this case. I wonder why it does not do this itself? I am worried that doing so may have some unintended side effects.

Vous voyez qu'il est aussi précautionneux que vous l'êtes. Pouvez-vous le rassurer?

Je n'ai pas compris la question des tabulations, ni d'ailleurs vos lignes de code. N'ayant pas la possibilité de modifier votre message, je ne peux que le copier de l'extérieur. Pourriez-vous m'envoyer par mail la version défnitive?
le 19 avril 2014 à 12:54
J’ai répondu directement sur le forum mobileread.com.
Vous pouvez ôter le texte en français dans votre message. Ça évitera d’immortaliser les quelques erreurs qui s’y trouvent.
Quant au code, ôtez simplement les espaces en début de ligne. :)
le 19 avril 2014 à 14:03
Merci d'avoir pris les choses en main, je commençais à être dépassé par les évènements. Je rectifie les espaces en début de ligne et je corrige ce que je vois de votre français. C'est un privilège rare que j'apprécie à sa juste mesure. ;)
le 19 avril 2014 à 16:26
Bonjour

Le bug que vous avez présenté au développeur de Calibre a été corrigé pour la version 1.3.4. parue ce 25 avril.

calibre-ebook.com…

"Spellcheck: When checking French text list all words that have the same stem as a single word. So j'aime and aime are listed as a single word."

Encore merci pour votre aide.
le 25 avril 2014 à 21:33

Notification par e-mail    0