tatuylonen

tatuylonen/wiktextract

Python No license Data License not recognized by GitHub

Wiktionary dump file parser and multilingual data extractor

1.2k stars
117 forks
active
GitHub +7 / week

1.2k

Stars

117

Forks

32

Open issues

24

Contributors

AI Analysis

Wiktextract is a specialized Python tool and package for extracting structured multilingual dictionary data from Wiktionary dumps, with template and Lua macro expansion for high-quality, accurate data extraction. It serves NLP researchers, machine translation projects, and language technology developers who need programmatic access to morphological, phonetic, and semantic information across thousands of languages — not suited for general-purpose users or those seeking pre-extracted datasets (...

Data Developer Tool Discovery value: 5/10
Documentation 7/10
Activity 8/10
Community 7/10
Code quality 5/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 7/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

nlp data-extraction multilingual parser wiktionary
Actively maintained Niche/specialized use case Well documented Production ready
Deep Analysis · Based on README and public signals
2d ago

Wiktionary parser that extracts multilingual lexical data via Lua template expansion for NLP and translation tasks

Wiktextract is a Python utility that parses Wiktionary dump files and exports structured multilingual lexical data in JSONL format. It distinguishes itself by expanding Lua templates and macros, enabling higher fidelity extraction of word senses, morphology, translations, and pronunciation data. The project serves NLP researchers, machine translation systems, and language data consumers. Pre-extracted datasets are published and maintained at kaikki.org, reducing barriers to adoption.

Origin

Created October 2018 by Tatu Ylonen, the project emerged to address gaps in existing Wiktionary extraction tools. The focus on Lua macro expansion reflects technical evolution in Wiktionary's template system. By December 2020, the README claims it was 'the most comprehensive tool available' for this task.

Growth

Steady adoption driven by availability of pre-extracted data at kaikki.org, which lowers friction for end-users who need Wiktionary data without running extraction themselves. Recent activity (last push 2026-07-07, 18 stars in 7 days) suggests sustained interest. Growth appears modest but consistent rather than explosive—typical of specialized infrastructure tooling.

In production

Pre-extracted data available at kaikki.org with documented download options (per-language, per-word, compressed archives) suggests active real-world consumption. The project mentions kaikki.org as primary distribution channel, implying users prefer data downloads over running extraction locally. No direct user testimonials, company usage, or citation count visible in provided metadata. Adoption not extensively documented but usage pattern (regular data updates) implies operational deployments.

Code analysis
Architecture

Based on README, the tool reads compressed Wiktionary XML dumps, expands templates and Lua modules in-memory, and outputs JSONL-formatted dictionaries. Likely handles language-specific extraction modules (English extraction explicitly described as most complete). Appears designed for batch processing, with runtime measured in hours to days for full English Wiktionary.

Tests

Not documented in README. No mention of test suites, CI/CD, or validation frameworks.

Maintenance

Repository shows active maintenance: last commit 2026-07-07 (within 24 hours of evaluation date). Created 2018 (7.7 years old), indicating sustained project life. However, README truncation limits visibility into current development velocity and issue handling practices. The kaikki.org data service updates 'every few days,' suggesting operational commitment beyond code commits.

Honest verdict

ADOPT IF: you need structured multilingual lexical data from Wiktionary (translations, morphology, pronunciations, word senses) and prefer pre-extracted, regularly updated datasets over custom parsing. AVOID IF: you need extraction of arbitrary Wikipedia or non-Wiktionary sources, or require active third-party support and extensive documentation beyond README. MONITOR IF: you depend on Wiktionary as a data source and want to remain aware of extraction tool quality and maintenance status; wiktextract appears to be the most complete option, but verify that kaikki.org data freshness meets your timeline requirements.

Independent dimensions

Mainstream potential

3/10

Technical importance

7/10

Adoption evidence

6/10

Risks
  • Runtime cost: full extraction of English Wiktionary can require hours to days of compute; users are strongly directed to pre-extracted data, suggesting the tool may not scale for frequent re-extraction cycles.
  • Lua expansion complexity: correct handling of Wiktionary's Lua template system is non-trivial; bugs in macro expansion could silently corrupt extracted data without obvious signals.
  • Wiktionary format instability: as Wiktionary editing evolves, extraction logic must adapt; maintenance burden on project maintainers is likely ongoing and reactive.
  • Documentation gaps: README is truncated in provided metadata; full schema, API contract, and error handling expectations are not visible.
  • Single maintainer risk: no evidence of multiple core contributors; project continuity may depend on Tatu Ylonen's availability.
Prediction

Wiktextract will likely remain the de facto standard for extracting Wiktionary data in NLP and translation workflows, particularly via kaikki.org's pre-extracted datasets. Adoption will continue but remain niche—complementary to, not competitive with, general-purpose NLP libraries. Maintenance likely to persist as long as Wiktionary remains a data source for research and industry.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

Python
100%
Lua
0%
Makefile
0%
Shell
0%
Dockerfile
0%

Information

Language
Python
License
NOASSERTION
Last updated
3d ago
Created
94mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Recent releases

No releases published yet.

Similar repos

CatchTheTornado

CatchTheTornado/text-extract-api

text-extract-api is a self-hosted document extraction and parsing service that...

3.1k Python AI & ML
xunbu

xunbu/docutranslate

DocuTranslate is a local document translation tool powered by Large Language...

1.2k Python AI & ML
zotero

zotero/translators

Zotero Translators is a collection of JavaScript-based web translators that...

1.6k JavaScript Productivity
adbar

adbar/trafilatura

Trafilatura is a Python package and command-line tool for web crawling,...

6.3k Python Data
chrismattmann

chrismattmann/tika-python

Tika-python is a Python binding to Apache Tika REST services, enabling native...

1.7k Python Data
vs. alternatives
Zipstack/unstract

Unstract (6,692 stars) is a general document extraction framework; wiktextract is purpose-built for Wiktionary. Different problem domains; not directly competitive.

google/langextract

Google's langextract (37,089 stars) focuses on language detection; wiktextract extracts lexical structure. Complementary tools, not replacements.

xunbu/docutranslate

Docutranslate (1,174 stars) targets document translation workflows. Wiktextract supplies lexical data that could feed translation pipelines, but serves earlier in the chain.

zotero/translators

Zotero translators (1,645 stars) are domain-specific metadata extractors for bibliographic sources. Different extraction target (Wiktionary vs. academic metadata).

funstory-ai/BabelDOC

BabelDOC (8,865 stars) is a multilingual document processing system. Broader scope; wiktextract is narrowly focused on Wiktionary as the data source.