Section courante

A propos

Section administrative du site

Les premiers pas

Hunspell est une bibliothèque de vérification orthographique et d'analyse morphologique gratuite et un outil de ligne de commande, sous licence tri-licence LGPL/GPL/MPL.

Hunspell est utilisé par la suite bureautique LibreOffice, les navigateurs gratuits, comme Mozilla Firefox et Google Chrome, et d'autres outils et systèmes d'exploitation, comme les distributions Linux et macOS. C'est également un outil de ligne de commande pour Linux, les systèmes d'exploitation de type Unix et autres.

Il est conçu pour une vérification et une correction orthographique rapides et de haute qualité pour les langues avec un système d'écriture au niveau des mots, y compris les langues avec une morphologie riche, une composition de mots complexe et un codage de caractères.

Interfaces Hunspell : interface de terminal de type Ispell utilisant la bibliothèque Curses, interface de pipe Ispell, API C++/C et bibliothèque partagée, également avec des liaisons de langage existantes pour d'autres langages de programmation.

La base de code de Hunspell provient de la bibliothèque MySpell d'OpenOffice.org, développée par Kevin Hendricks (à l'origine une réimplémentation en C++ de la vérification orthographique et de l'apposition de l'Ispell international de Geoff Kuenning à partir de zéro, plus tard étendue avec des suggestions de n-grammes, par exemple), et ses fichiers README, CONTRIBUTORS et license.readme (ici : license.myspell).

Voici les principales fonctionnalités de la bibliothèque Hunspell, développée par László Németh :

Voici les principales caractéristiques de l'outil de ligne de commande Hunspell, développé par László Németh :

Traductions : Hunspell a déjà été traduit en plusieurs langues. Si votre langue est manquante ou incomplète, veuillez utiliser Weblate pour vous aider à traduire Hunspell.

Dépendances

Créer uniquement des dépendances :

g++ make autoconf automake autopoint libtool

Dépendances d'exécution :

  Obligatoire Facultatif
libhunspell    
hunspell tool libiconv gettext ncurses readline

Compilation sur GNU/Linux et Unix

Nous devons d'abord télécharger les dépendances. Sous Linux, gettext et libiconv font partie de la bibliothèque standard. Sur d'autres Unix, nous devons les installer manuellement.

Pour Ubuntu :

sudo apt install autoconf automake autopoint libtool

Exécutez ensuite les commandes suivantes :

autoreconf -vfi
./configure
make
sudo make install
sudo ldconfig

Pour le développement du dictionnaire, utilisez l'option --with-warnings de configure.

Pour l'interface utilisateur interactive de l'exécutable Hunspell, utilisez l'option --with-ui.

Paquets de développement facultatifs :

Dans Ubuntu, les paquets sont :

libncurses5-dev libreadline-dev

Compilation sur OSX et macOS

Sur macOS, utilisez toujours clang pour le compilateur et non g++ car les dépendances Homebrew sont construites avec cela :

brew install autoconf automake libtool gettext
brew link gettext --force

Ensuite, exécutez :

autoreconf -vfi
./configure
make

Compilation sous Windows

Compilation avec Mingw64 et MSYS2

Téléchargez Msys2, mettez à jour le tout et installez les paquets suivants :

pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-libtool

Ouvrez le prompt Mingw-w64 Win64 et compilez de la même manière que sous Linux, voir ci-dessus.

Compilation dans l'environnement Cygwin

Téléchargez et installez l'environnement Cygwin pour Windows avec les paquets supplémentaires suivants :

Compilez ensuite de la même manière que sous Linux. Les builds Cygwin dépendent de Cygwin1.dll.

Déboguage

Il est recommandé d'installer une version de débogage de la bibliothèque standard :

libstdc++6-6-dbg

Pour le débogage, nous devons créer une version de débogage, puis nous devons démarrer gdb :

./configure CXXFLAGS='-g -O0 -Wall -Wextra'
make
./libtool --mode=execute gdb src/tools/hunspell

Vous pouvez également transmettre les CXXFLAGS directement à make sans appeler ./configure, mais nous ne recommandons pas cette méthode lors de longues sessions de développement.

Tests

Tests de Hunspell (voir les tests dans le sous-répertoire tests/) :

make check

ou avec le débogueur Valgrind :

m ake check
VALGRIND=[Valgrind_tool] make check

Par exemple :

make check
VALGRIND=memcheck make check

Documentation

Caractéristiques et format du dictionnaire :

man 5 hunspell
man hunspell
hunspell -h

Utilisation

Après la compilation et l'installation, vous pouvez exécuter le correcteur orthographique Hunspell (compilé avec l'interface utilisateur) avec un dictionnaire Hunspell ou Myspell :

hunspell -d en_US text.txt

ou sans interface :

hunspell
hunspell -d en_GB -l <text.txt

Les dictionnaires se composent d'un fichier d'affixe (.aff) et d'un fichier de dictionnaire (.dic), par exemple, téléchargez les fichiers de dictionnaire d'anglais américain de LibreOffice (ancienne version, mais avec génération de radicalisation et de morphologie) avec les commandes suivantes :

wget -O en_US.aff https://cgit.freedesktop.org/libreoffice/dictionaries/plain/en/en_US.aff?id=a4473e06b56bfe35187e302754f6baaa8d75e54f
wget -O en_US.dic https://cgit.freedesktop.org/libreoffice/dictionaries/plain/en/en_US.dic?id=a4473e06b56bfe35187e302754f6baaa8d75e54f

et avec l'entrée et la sortie en ligne de commande, il est possible de vérifier son travail rapidement, par exemple avec les mots d'entrée "example", "examples", "teached" et "verybaaaaaaaaaaaaaaaaaaaaaad" :

$ hunspell -d en_US
Hunspell 1.7.0
example
*

examples
+ example

teached
& teached 9 0: taught, teased, reached, teaches, teacher, leached, beached

verybaaaaaaaaaaaaaaaaaaaaaad
# verybaaaaaaaaaaaaaaaaaaaaaad 0

Où dans la sortie, * et + signifient les mots corrects (acceptés) (* = radical du dictionnaire, + = formes affixées du radical du dictionnaire suivant), et & et # signifient les mauvais mots (rejetés) (& = avec suggestions, # = sans suggestions) (voir man hunspell).

Exemple de radicalisation :

$ hunspell -d en_US -s
mice mice mouse

Exemple d'analyse morphologique (très limité avec ce dictionnaire anglais) :

$ hunspell -d en_US -m
mice
mice st:mouse ts:Ns

cats
cats st:cat ts:0 is:Ns
cats st:cat ts:0 is:Vs

Autres exécutables

Le répertoire src/tools contient les exécutables suivants après compilation.

L'exécutable principal :

Exemples d'outils :

Outils de développement de dictionnaire :

Exemple de génération morphologique :

$ ~/hunspell/src/tools/analyze en_US.aff en_US.dic /dev/stdin
cat mice
generate(cat, mice) = cats
mouse cats
generate(mouse, cats) = mice
generate(mouse, cats) = mouses

Utilisation de la bibliothèque Hunspell avec GCC

Inclure dans votre programme :

  1. #include <hunspell.hxx>

Liaison avec la bibliothèque statique Hunspell :

g++ -lhunspell-1.7 example.cxx
# ou mieux, utilisez pkg-config
g++ $(pkg-config --cflags --libs hunspell) example.cxx

Installation de Hunspell (vcpkg)

Vous pouvez également créer et installer hunspell à l'aide du gestionnaire de dépendances vcpkg :

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
./vcpkg install hunspell

Le portage hunspell dans vcpkg est maintenu à jour par les membres de l'équipe Microsoft et les contributeurs de la communauté. Si la version est obsolète, veuillez créer un problème ou une demande d'extraction sur le référentiel vcpkg.

Dictionnaires

Dictionnaires Hunspell (MySpell) :

Dictionnaires Aspell (conversion : man 5 hunspell) :



Dernière mise à jour : Mercredi, le 15 janvier 2025