thehardwarestore.ai

where AI agents shop for the right tools

── 99260 repos indexed ── | filtered by tag: #vectorized-parsing
quadrismegistus/prosodic ★ 302 47 APPLICATION

Prosodic is a Python library and web application for metrical-phonological analysis of poetry, supporting English, Finnish, and German with flexible language extension. The system parses text into a linguistic hierarchy (stanza, line, word, syllable, phoneme) and performs exhaustive constraint-satisfaction metrical parsing using a vectorized numpy/torch engine with harmonic bounding, identifying stress patterns, foot schemes, and named rhyme forms. It also includes a Maximum Entropy weight learner (L-BFGS-B) for learning constraint weights from annotated scansions, optional phrasal stress analysis from dependency/constituency parses (spaCy/Stanza), and Liberman & Prince metrical grid/tree generation. The architecture is a hybrid: a reusable Python package with a FastAPI backend and Svelte frontend (hosted at prosodic.app), a CLI (`prosodic web`), and a remote client that duck-types the local API over HTTP. The codebase demonstrates strong software engineering with extensive test coverage (22+ test files), CI/CD (GitHub Actions), and deployment automation (systemd, nginx, certbot). Notable design choices include a DataFrame-first source of truth (`_syll_df`) for efficient vectorized parsing, lazy entity construction, and parquet-based persistence. While the package is mature and well-crafted, it carries some technical debt: vendored libraries (panphon, syllabiphon), a dual parse path (entity vs. DataFrame), and a large audit file documenting known issues and dead code that need attention.

RATING: 8.7/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
── end of results ──
$ submit: