en-wl/wordlist
repository·v2·Indexed 19 days ago
https://github.com/en-wl/wordlistEnglish-language Hunspell and Aspell dictionaries derived from SCOWL. It provides regional spellings for US, CA, GB, and AU in both standard and large sizes. The project includes tools for importing/exporting SCOWL data via PostgreSQL and SQLite, as well as scripts for generating speller dictionaries. It utilizes data from VarCon, WordNet for POS assignment, and the Corpus of Contemporary American English (COCA).
What's inside en-wl-wordlist
- The WordNet database (provided by Princeton University) is utilized within this project to assist with POS (Part of Speech) assignment for words.
Understand word source tags and conventions
v2The wordlist uses tags to identify the source of a word. By convention, tags are formatted as
[like this].Some tags are used for internal processing and are removed by
combine.pyto reduce noise. In the documentation, these removed tags are marked as(as such).Most words originate from consistent lists created by Alan Beale, which are then supplemented by various signature lists. Many source lists contain only lemmas or headwords, which are expanded to include likely inflections.
Understand the origin of variant information from VarCon
v2Variant information in this wordlist is derived from VarCon, which is now integrated into the SCOWL (Spell Checker Oriented Word Lists) project. VarCon provides data regarding word variants.Understand the role of COCA data
v2Data from the Corpus of Contemporary American English (COCA) is used for purposes beyond word addition, contributing to the overall enrichment of the wordlist. Usage is governed by the terms of the COCA NDA.Overview of English Hunspell Dictionaries
v2This repository provides English Hunspell dictionaries derived from SCOWL (Spell Checker Oriented Word Lists). These dictionaries are designed for use with Hunspell-compatible spell checkers.
Dictionary Variants
Standard Dictionaries (SCOWL size 60): These are the default versions. They aim for consistency by generally including only one spelling variant per word.
en_US(American)en_CA(Canadian)en_GB-ise(British with -ise/traditional spelling)en_GB-ize(British with -ize/Oxford spelling)en_AU(Australian)
Large Dictionaries (SCOWL size 70): These include common spelling variants but come with two caveats:
- They may contain errors or invalid words due to less rigorous checking.
- They contain uncommon valid words that may be mistaken for misspellings of more common words (e.g., "ort" or "calender").
en_US-largeen_CA-largeen_GB-large(includes both -ise and -ize spelling)en_AU-large
Important Usage Notes
- Official Versions:
en_US,en_CA, anden_AUare considered the official Hunspell versions. British variants are considered alternatives. - Unicode Support: As of 2026-02-22, the Unicode character
’(U+2019) is included inWORDCHARS. This allows Hunspell to recognize words containing smart apostrophes (e.g., "can’t"). Note that while'color'is accepted,‘color’(using smart quotes as delimiters) will be flagged during tokenization. - Taboo Words: Some words include the
NOSUGGESTflag to prevent the spell checker from suggesting them. This is an attempt to flag strong taboo words but is not exhaustive.
Overview of speller dictionary creation scripts
v2Thespeller/directory contains scripts designed to generate speller dictionaries for Hunspell and Aspell. These scripts transform SCOWL (Spell Checker Oriented Word Lists) data into formats compatible with these specific spell-checking engines.Import SCOWL data into PostgreSQL using import.sh
v2Use the
import.shscript to import SCOWL data into a PostgreSQL database.Arguments:
<database>: The target PostgreSQL database.[<typeschema>]: (Optional) The schema for enum types. If it doesn't exist, it will be created and populated.<schema>: The schema to import the data into. If it doesn't exist, it will be created. If thedropflag is provided, the schema will be recreated; otherwise, existing tables will be truncated.[drop]: (Optional) If specified, the target schema will be recreated instead of just truncating tables.
Note: All scripts must be run from the
postgresql/directory../import.sh <database> [<typeschema>] <schema> [drop]Use the custom dictionary without installing
v2If you do not want to install the dictionary system-wide, you can use the
.rwsfile directly.Directly via Aspell CLI:
aspell -d /<path-to-file>/en-custom.rwsVia environment variable for specific applications:
ASPELL_CONF='add-dict-alias en_US /<path-to-file>/en-custom.rws' emacsaspell -d /<path-to-file>/en-custom.rwsRequirements for running speller scripts
v2To ensure the scripts function correctly, you must use a specific source distribution of SCOWL.
Supported sources:
- A released version of SCOWL unpacked from a
.tarfile. - A version checked out directly from Git.
Unsupported sources:
- Do not use a SCOWL distribution unpacked from a
.zipfile. Zip extractions often break the required symbolic links and introduce DOS EOL (End of Line) characters, which will cause the scripts to fail.
- A released version of SCOWL unpacked from a
Export SCOWL data from PostgreSQL using export.sh
v2Use the
export.shscript to export SCOWL data from a PostgreSQL database into a SQLite database file.Arguments:
<database>: The source PostgreSQL database.<schema>: The schema to export from.<sqlite-db-file>: The destination SQLite database file.
Note: All scripts must be run from the
postgresql/directory../export.sh <database> <schema> <sqlite-db-file>Set the custom dictionary as the default for a language
v2You can make the custom dictionary the default for a specific language (e.g.,
en_US) using theadd-dict-aliasconfiguration option.Method 1: Permanent configuration Append the alias to your Aspell configuration file:
echo 'add-dict-alias en_US en-custom' >> `aspell config per-conf-path`Method 2: For programs that don't allow direct dictionary selection If you are using a program (like Emacs) that doesn't let you choose the dictionary directly, you can pass the alias via the
ASPELL_CONFenvironment variable:ASPELL_CONF='add-dict-alias en_US en-custom' emacsecho 'add-dict-alias en_US en-custom' >> `aspell config per-conf-path`Install the GNU Aspell Custom English Dictionary
v2To install this custom dictionary, ensure
aspellandprezip-binare in your system PATH. The installation process uses a standard configure/make workflow.- Configure: Run
./configureto detect dictionary and data file locations. If the script detects an existing English dictionary, it will skip installing language data files to avoid conflicts. - Build: Run
maketo build the package. - Install (Optional): Run
make installto install the files to the system.
Troubleshooting PATH issues: If
aspellorprezip-binare not in your PATH, you must specify their locations using environment variables or command-line arguments during configuration:./configure --vars ASPELL=/path/to/aspell PREZIP=/path/to/prezip-binOther recognized variables include
ASPELL_PARMS. Usemake cleanto clean up build files ormake uninstallto remove installed files../configure make make install- Configure: Run