<!DOCTYPE html>
13,000 Hebrew lemmas. 150,000 unique word forms. Every conjugation, every root, every translation — queryable in milliseconds.
A production-ready REST API and web interface built on top of a custom-scraped Hebrew vocabulary dataset. Search words by meaning (in English), by Hebrew form, by root, by part of speech, or by Latin transcription — with fuzzy matching powered by PostgreSQL trigrams. Each result returns the full conjugation table, bilingual example sentences, and a real-world frequency score from Israeli songs, news, and YouTube.
Spin up the entire stack — Postgres, data import, and API — with a single docker compose up.
deep mode that reaches inside conjugation cellskatav or catav, get שָׁלוֹם back. Exact matches surface first, trigram fallback handles typos and transliteration variants/api/*) and a server-rendered HTML web UI sharing the same query layerGET /api/search?query=peace&type=meaning
GET /api/search?query=כתב&type=word&deep=true
GET /api/search?query=katavti&type=transcription
GET /api/lemmas/{uuid} → full conjugation tables + sentences + frequency
GET /api/browse?page=2 → paginated alphabetical index
// GET /api/lemmas/{uuid}
{
"hebrew": "כָּתַב",
"transcription": "katav",
"meaning": "to write",
"root": { "display": "כ - ת - ב" },
"conj_tables": [ ... ],
"sentences": [
{ "sentence": "הוא כתב מכתב.", "translation": "He wrote a letter." }
],
"sources": { "songs": 12, "news": 34, "youtube": 5, "total": 51 }
}
git clone https://github.com/gzappaa/hebrew_vocab_hub_APIpython DATABASE/setup_data.py (downloads dataset, creates env files)docker compose up --build → API live at http://localhost:8000cd API && pytest / cd DATABASE && pytestDoes Hebrew vocabulary follow Zipf's law? Do songs, news, and YouTube really speak differently? Is a word's frequency predictable from how many domains it shows up in?
The analysis and reporting layer built on top of hebrew_vocab_hub_API's dataset — three Jupyter notebooks covering exploratory analysis, cross-source vocabulary comparison, and a statistical test of linguistic patterns, followed by an Excel workbook and a Power BI dashboard built from the same queries.
01_eda.ipynb → dataset structure, POS distribution, Zipf's law check 02_source_comparison.ipynb → vocabulary overlap + LLM semantic register labeling 03_linguistic_patterns.ipynb → source coverage vs. word frequency, limitations & bias excel/hebrew_vocab_hub_report.xlsx → 9-sheet export, same data source as the dashboard powerbi/hebrew-vocab-hub-analysis.pbix + .pdf
git clone https://github.com/gzappaa/hebrew-vocab-hub-analysispip install -r requirements.txt.env at the same Postgres instance used by hebrew_vocab_hub_APInotebooks/, or regenerate the Excel workbook: python scripts/generate_workbook.pyA data pipeline that builds a structured Hebrew vocabulary dataset from multiple real-world Israeli sources — dictionary entries, song lyrics, news articles, and YouTube comments — and outputs a single unified JSON ready for use in language learning APIs, apps, or databases.
The core challenge was Building a robust multi-source data pipeline across heterogeneous Hebrew data sources, dealing with rate limits, API restrictions, and inconsistent web structures, while ensuring ethical scraping practices and data normalization in a language outside my full fluency.
Full code and instructions are available at: https://github.com/gzappaa/hebrew_vocab_hub
~13,000 Hebrew words, each entry containing meanings with niqqudot, transcription, root, part of speech, full conjugation/declension tables, bilingual example sentences, and real-world frequency across songs, news, and YouTube.
{
"word": "חברה",
"multiple_meanings": true,
"meanings": [
{ "hebrew": "חֶבְרָה", "transcription": "chevra", "meaning": "company, society", ... },
{ "hebrew": "חֲבֵרָה", "transcription": "chavera", "meaning": "girlfriend; female friend", ... }
],
"sentences": [
{ "sentence": "החברה הזו גדולה.", "translation": "This company is big.", "source": "reverso" }
],
"sources": { "songs": 12, "news": 45, "youtube": 8, "total": 65 }
}
The dataset is PostgreSQL JSONB-ready — insert the whole document into a jsonb column and index on word.
git clone https://github.com/gzappaa/hebrew_vocab_hubpip install -r requirements.txt && playwright install chromiummake bootstrapmake dailymake testThis project is a modular, reproducible, and testable pipeline for scraping, processing, and analyzing book data from Books to Scrape. It collects book information, cleans and analyzes the data, downloads cover images, and generates PDF and Excel reports.
Full code and instructions are available at: https://github.com/gzappaa/Automated-Book-Data-Pipeline
UPC_title.jpg.git clone https://github.com/gzappaa/Automated-Book-Data-Pipelinepip install -r requirements.txtpython -m src.scraperdocker build -t book-pipeline . and docker run --rm -v ${PWD}/data:/app/data book-pipelineAll prices are numeric only (no € symbol), but amounts are in euros. All data outputs (JSON, PDFs, Excel, images) are saved in the data/ folder.
You can include some screenshots of PDFs, Excel sheets, or cover images here to make it more visual.