← Back to list

From StoryYoga to Smart Curation: How I Built My Own Recommender System for Moral Stories — Part 1

Introduction:

Harini Shekar · 2025-09-16 12:35 · 0 claps · 4.1 min read
#recommender-systems #machine-learning #content-based-filtering
Open on Medium ↗
Wiki topics: ML · Machine Learning EDU · Education & Learning

From StoryYoga to Smart Curation: How I Built My Own Recommender System for Moral Stories — Part 1

Introduction:

At StretchWithStories, my journey began by blending yoga and storytelling to help children embody moral values like kindness, courage, and empathy — all through mindful movement. But week after week, I found myself manually combing through YouTube in search of fresh stories that were meaningful, age-appropriate, and aligned with our class themes.

That’s when I decided to build something smarter. In this blog series, I’ll share how I’m applying natural language processing (NLP) and content-based recommendation techniques to personalise story discovery for kids. From StoryYoga to building a smart recommender system, this is the tale of how I’m using AI to curate better moral stories. The goal: to cut down my search from hours to minutes — not just for myself, but for any educator or parent seeking quality storytelling in a noisy digital world.

Vision:

What if there was a way to recommend stories just right for your teaching style?

The Basics of Recommendation:

Let’s break this down with a simple analogy: grocery shopping. It’s an intuitive way to grasp the difference between collaborative and content-based filtering — the two foundational approaches to building smart recommenders.

Collaborative vs. Content-Based Filtering

Scenario 1: Shopping at a Grocery Store

Imagine you’re walking into a large grocery store where thousands of other customers also shop every day. You head to the aisles and pick up oats, milk, and bananas — your usual favorites.

Now, the store owner wants to recommend more items to you. They may not know you personally, but they’ve collected data from thousands of past shoppers.

They notice a pattern:

“People who bought oats, milk, and bananas also bought chocos and peanut butter.”

So, based on that, they recommend chocos and peanut butter to you — even if you’ve never bought them before.

That’s collaborative filtering in action — using the behavior of similar users to predict what you might also like.

It works really well when:

· You have lots of users making choices

· You can track co-purchase or interaction behavior

· Item content (like nutrition facts or names) isn’t that helpful alone

Scenario 2: Shopping from Your Own Pantry

Now let’s switch to your home. You’re planning meals by looking at what’s already in your fridge and pantry. There’s no data from other shoppers — it’s just you.

You notice you often use oats, milk, and bananas. You decide to explore recipes or new items that fit your style: maybe a hummus or another high-protein dish.

✅ This is content-based filtering — using the attributes of the items you’ve liked in the past to find similar ones, tailored just to you.

It works well when:

· You’re the only user

· You know the features of each item (e.g., healthy, plant-based, vegan)

· You want highly personalized results

Framing the Problem

Here’s what my weekly content search looked like — a hands-on, heart-driven process I followed to ensure every story I shared with children was meaningful, age-appropriate, and aligned with our values at StretchWithStories.

Manual curation process for picking the right story

Manual curation process for picking the right story

Relating back to the Grocery story example, I’m essentially the only “shopper” at Stretchwithstories. I teach moral stories for kids through yoga, and over the years, I’ve developed a clear sense of the kind of stories I love to teach — values like kindness, honesty, and courage etc..

So when I decided to build a recommendation system for discovering new stories, it made perfect sense to use a content-based approach:

In short: collaborative filtering works great for a marketplace where multiple teachers login, search for videos and would like to get recommendations based on behavioural patterns from similar users. But for personalised, value-driven storytelling at StretchWithStories, content-based filtering is the perfect fit.

Plan of Attack

Here’s the plan I came up with — simple, but powerful enough to move me from endless YouTube scrolling to a personalized recommendation system.

📂 Step 1: Gather the Data I Already Have

· YouTube Watch History: All the videos I’ve browsed and used for classes over the past three years

💡 Pro tip: Export your YouTube watch history from Google Takeout — it’s a goldmine of past data.

· Transcripts of Videos: The actual story text, scraped using tools like [youtube_transcript_api](https://pypi.org/project/youtube-transcript-api/))

Together, these two form the foundation: what I’ve watched, and what each video says.

🗂️ Step 2: Structure It in a Usable Format

Instead of keeping scattered notes, I’ll compile everything into a structured dataset:

This makes it easy to filter, clean, and process the content later

🧠 Step 3: Build My taste Profile

Once I have the transcripts:

· I’ll convert each story into a semantic embedding using NLP models like Sentence-BERT.

· Then, I’ll average the embeddings of my favorite videos.

This gives me a “taste profile vector” — a mathematical representation of my storytelling style.

🌐 Step 4: Bring in New Candidates

· Search YouTube again for fresh stories (“moral stories for kids,” “animated stories with values”).

· Fetch their transcripts.

· Convert them into embeddings the same way.

Now I have both: my profile and a pool of candidates.

📊 Step 5: Rank and Recommend

Using cosine similarity, I’ll compare my profile vector with the candidate video embeddings.

· The closest matches = the stories most similar to my teaching style.

· I can then review the top results, confident that I’m spending time only on the most relevant ones.

Teaser for Part 2

👉 In Part 2 of this series, I’ll dive into how I actually built this pipeline — from pulling transcripts to generating embeddings and recommending my first set of AI-powered story suggestions. I’ll also share the complete code on GitHub so that other teachers and parents can reuse or adapt this workflow for their own storytelling needs.


메타데이터
post_id
dd3420ef3e5b
slug
from-storyyoga-to-smart-curation-how-i-built-my-own-recommender-system-for-moral-stories-part-1-dd3420ef3e5b
url
https://medium.com/@harinishekar87/from-storyyoga-to-smart-curation-how-i-built-my-own-recommender-system-for-moral-stories-part-1-dd3420ef3e5b
canonical_url
https://medium.com/@harinishekar87/from-storyyoga-to-smart-curation-how-i-built-my-own-recommender-system-for-moral-stories-part-1-dd3420ef3e5b
author_url
https://medium.com/@harinishekar87
status
ok
fetched_at
2026-08-02 00:36:41