AI-Powered Spanish Learning from Real-World Text
A dual-engine language platform pairing FreeLing NLP precision with GPT-4 context, turning any real-world Spanish text into structured, personalized learning material in seconds.
The Problem
Language learners abandon Spanish at high rates for predictable reasons: vocabulary memorized without context does not stick, the grammar system—conjugations, gendered nouns, idiomatic structures—is opaque from textbook rules alone, and there is a persistent gap between what courses teach and what real-world text actually looks like.
The tooling gap mirrors the learning gap. Dictionary and grammar lookups for a single paragraph of authentic Spanish take minutes of app-switching per sentence, and fixed pre-programmed lessons cannot adapt to the text a learner actually encounters or to who the learner is—their occupation, interests, and level.
What We Built
We built a dual-engine NLP architecture: FreeLing provides precise part-of-speech tagging and lemmatization over a TCP socket, while GPT-4 generates contextual explanations and examples personalized to the user profile—occupation, interests, proficiency level. A pattern recognition algorithm extracts grammatical structures from FreeLing token sequences, normalizes them into abstract patterns, and stores them in PostgreSQL, so grammar instruction emerges systematically from arbitrary text rather than from a fixed curriculum.
The backend runs as Go microservices with separate mobile and admin APIs, joined by a Flutter mobile app with Google Sign-In, text-to-speech, Android Process Text integration, and offline caching, plus a Vue 3 admin portal where educators manage patterns, categories, and word classifications. Google Cloud Translation rounds out the analysis with reverse-translation validation that preserves phrase-level idioms.
Dual-engine text analysis
FreeLing delivers deterministic POS tagging and lemmatization while GPT-4 adds contextual explanation—precision where precision matters, intelligence where nuance does.
Grammar patterns from real text
Token sequences are normalized into abstract grammatical patterns and stored for instruction, so any article or message a learner reads becomes systematic grammar material.
Profile-personalized examples
GPT-4 prompts are engineered around the user profile, generating example sentences that match a learner’s occupation, interests, and level instead of generic textbook filler.
Full-stack learning product
A Flutter app with text-to-speech and offline caching for learners, and a Vue 3 portal for educators to curate patterns and classifications behind it.
How It Works in Practice
A learner reading a Spanish news article on their phone highlights a sentence they cannot parse.
- 1
Send the text
Android Process Text integration sends the highlighted sentence straight into Spongeling without leaving the reading app.
- 2
Analyze in seconds
FreeLing tags and lemmatizes every token while GPT-4 explains the sentence in context, returning a complete analysis in seconds.
- 3
Surface the grammar
Pattern recognition identifies the grammatical structures in the sentence—say, a subjunctive trigger—and links them to the learner’s pattern library.
- 4
Personalize the practice
GPT-4 generates fresh example sentences using the same structures but themed to the learner’s profession and interests, making the pattern memorable.
Screenshots

Engineering Approach
Right engine for each job
Deterministic NLP handles what must be exact—tags, lemmas, morphology—and the LLM handles what must be contextual, avoiding both hallucinated grammar and robotic explanations.
Unit economics designed in
Per-analysis API cost was engineered down to cents across GPT-4 and Translation calls, which is what makes a low-priced consumer subscription viable.
Content from the world, structure from the system
Rather than authoring lessons, the platform imposes systematic structure on whatever text learners bring, so the curriculum is as large as the Spanish-speaking internet.
Have a similar problem?
Tell us what you're working on and we'll tell you honestly whether we can help.