Inspiration

It's hard to find good educational resources on the web. Searching through a sea of websites that are oftentimes too difficult or too easy for one that's just right is a huge drag.

What if there was a way to find the perfect website to learn from?

What it does

StudentSearch uses Natural Language Processing and neural networks to find people the perfect educational website.

Just enter what you want to learn, and a desired difficulty level - it'll handle the rest.

How we built it

We used React.JS on the frontend and Node.js on the backend. To get web results, we used Puppeteer.js, a Chromium headless browser, and scraped raw text from search results. We then ran this raw text through Google Cloud's Natural Language Processing API, and extracted a few key parameters with our own proprietary algorithm. The resulting data was then fed into a neural network that then outputted the difficulty of the website.

Challenges we ran into

There was no readily available dataset to train our neural network.

So, we made our own. We collected over 500 links and categorized them based off difficulty, taking care to maintain a diversity of topics and sources to prevent bias. In the end, we were able to train our neural network with over a 80% training confidence, which, given the chaotic nature of webscraped data, we're pretty proud of.

Accomplishments that we're proud of

Making our own dataset.

What we learned

How to combine textual input and numerical input in a neural network. We used a hashing algorithm to hash strings into numerical inputs for our feed forward NN.

What's next for StudentSearch

We think the NN model is pretty cool, and would love to feed it more data! It'd also be great to add more search parameters for the user to customize their experience.

Share this project:

Updates