URL: https://linuxfr.org/users/suizokukan/journaux/hermaia Title: Hermaia Authors: Xavier Faure Date: 2014年04月15日T21:01:27+02:00 License: CC By-SA Tags: python3, hunspell, postgresql, orthographe_et_grammaire, linguistique, open_data et langue Score: 17 **en bref** : [Hermaia](https://github.com/suizokukan/hermaia) est un projet (Python3/GPLv3) pour créer et consulter des listes de mots préalablement analysés du point de vue morphologique. Un exemple [ici](http://94.23.197.37/phokaia/hermaia/hermaia.dumpfile.txt) (si vous voyez n'importe quoi, pensez à utiliser l'unicode comme encodage). ---- **Hermaia** est un (très modeste) [projet](https://github.com/suizokukan/hermaia) (Python3/GPLv3) **permettant** - de créer une liste de mots accompagnés de leur analyse morphologique. Exactement comme si l'on associait le mot "aimerai" à "aimer"+"futur.3S". - de rechercher un mot et de l'analyser. Ex : est-ce que le mot "aimerai" existe ? Oui, il s'agit d' "aimer"+"futur.3S" . Un objet Hermaia lit et écrit ses informations dans une base de données MySQL [pour la structure de laquelle j'ai dû demander de l'aide](http://linuxfr.org/forums/programmationautre/posts/table-mysql-a-optimiser). Il est également possible de demander une [image texte (un dump) de la base de données](http://94.23.197.37/phokaia/hermaia/hermaia.dumpfile.txt) : on obtient alors un fichier texte qu'il est possible de modifier et de retransformer en base de données. La base de données est gérée par le module sqlite3 : si certains veulement m'aider à utiliser PostgreSQL, je suis preneur. La recherche se fait par l'intermédiaire d'un buffer qui garde en mémoire les demandes les plus fréquentes. J'ai essayé d'écrire un code aussi propre que possible : Pylint m'accorde une note de 10/10 au prix de quelques concessions (voir le fichier pylint.rc dans le dépôt). ---- **Comment utiliser Hermaia pour chercher un mot dans la base ?** ```python with sqlite3.connect("database.db") as database: with Hermaia(database = database) as h: h.search("aimerai") ``` ... ce qui renvoie une liste des occurrences du mot à chercher : dans le cas d' "aimerai", cette liste serait composée d'un seul dict contenant les informations nécessaires. ---- **Comment remplir la base de données ? L'exemple de Phokaia** J'ai développé Hermaia pour servir d'extension au projet [Logotheras](https://github.com/suizokukan/logotheras) qui crée des dictionnaires. Comme les articles d'un dictionnaire Logotheras peuvent contenir l'ensemble des formes possibles d'un mot (project [inflectiones](https://github.com/suizokukan/inflectiones)) il suffit de récupérer le contenu du tableau généré et de l'injecter dans la base de données. Travaillant principalement sur une ébauche de dictionnaire [grec ancien->français](http://94.23.197.37/phokaia/phokaia.html) j'ai donc récupéré l'ensemble des formes calculées. Le résultat se trouve [là](http://94.23.197.37/phokaia/hermaia/). Le résultat me paraît encourageant. ---- **et la suite ?** Je cherche des personnes susceptibles de m'aider à passer de MySQL à PostgreSQL mais aussi des profils plus orientés "lettres" et désireux d'utiliser Hermaia pour leurs projets personnels, pour d'autres langues... Faites-moi signe !

AltStyle によって変換されたページ (->オリジナル) /