en-wl/wordlist

repository·v2·Indexed 19 days ago

https://github.com/en-wl/wordlist

English-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).

Tokens
2.4K
Snippets
6
Records
17
Agent score
68%

What's inside en-wl-wordlist

  1. Understand word source tags and conventions

    v2

    The 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.py to 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.

  2. Understand the origin of variant information from VarCon

    v2
    Variant 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.
  3. Understand the role of COCA data

    v2
    Data 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.
  4. Overview of English Hunspell Dictionaries

    v2

    This 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:

    1. They may contain errors or invalid words due to less rigorous checking.
    2. They contain uncommon valid words that may be mistaken for misspellings of more common words (e.g., "ort" or "calender").
    • en_US-large
    • en_CA-large
    • en_GB-large (includes both -ise and -ize spelling)
    • en_AU-large

    Important Usage Notes

    • Official Versions: en_US, en_CA, and en_AU are considered the official Hunspell versions. British variants are considered alternatives.
    • Unicode Support: As of 2026-02-22, the Unicode character (U+2019) is included in WORDCHARS. 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 NOSUGGEST flag to prevent the spell checker from suggesting them. This is an attempt to flag strong taboo words but is not exhaustive.
  5. Overview of speller dictionary creation scripts

    v2
    The speller/ 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.
  6. Import SCOWL data into PostgreSQL using import.sh

    v2

    Use the import.sh script 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 the drop flag 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]
  7. Use the custom dictionary without installing

    v2

    If you do not want to install the dictionary system-wide, you can use the .rws file directly.

    Directly via Aspell CLI:

    aspell -d /<path-to-file>/en-custom.rws

    Via environment variable for specific applications:

    ASPELL_CONF='add-dict-alias en_US /<path-to-file>/en-custom.rws' emacs
    aspell -d /<path-to-file>/en-custom.rws
  8. Requirements for running speller scripts

    v2

    To ensure the scripts function correctly, you must use a specific source distribution of SCOWL.

    Supported sources:

    • A released version of SCOWL unpacked from a .tar file.
    • A version checked out directly from Git.

    Unsupported sources:

    • Do not use a SCOWL distribution unpacked from a .zip file. Zip extractions often break the required symbolic links and introduce DOS EOL (End of Line) characters, which will cause the scripts to fail.
  9. Export SCOWL data from PostgreSQL using export.sh

    v2

    Use the export.sh script 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>
  10. Set the custom dictionary as the default for a language

    v2

    You can make the custom dictionary the default for a specific language (e.g., en_US) using the add-dict-alias configuration 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_CONF environment variable:

    ASPELL_CONF='add-dict-alias en_US en-custom' emacs
    echo 'add-dict-alias en_US en-custom' >> `aspell config per-conf-path`
  11. Install the GNU Aspell Custom English Dictionary

    v2

    To install this custom dictionary, ensure aspell and prezip-bin are in your system PATH. The installation process uses a standard configure/make workflow.

    1. Configure: Run ./configure to detect dictionary and data file locations. If the script detects an existing English dictionary, it will skip installing language data files to avoid conflicts.
    2. Build: Run make to build the package.
    3. Install (Optional): Run make install to install the files to the system.

    Troubleshooting PATH issues: If aspell or prezip-bin are 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-bin

    Other recognized variables include ASPELL_PARMS. Use make clean to clean up build files or make uninstall to remove installed files.

    ./configure
    make
    make install