Inspiration
The amount of time people spend choosing just the right caption for their saucy spring break pic can be a real waste. Especially when you still have 1 more day left in Cancun and Cindy from Iowa is leaving in 5 hours, you don't want to be spending this time looking for the perfect inspirational quote for the group pic of you and the boys. Don't Quote Me can do this work for you.
What it does
Just upload a picture, either thru your camera or gallery, and our app will supply you with a number of quotes that will match with your picture based on the tags produced by the Microsoft along with Java WordNet.
How we built it
We have a local database of over 10,000 quotes, these were scraped off of the website https://www.brainyquote.com/topics. BeautifulSoup was used for the scraping. These quotes were collected in groups based on their topics like Life, Family, Pets, Age, etc. this helps us cluster the quotes based on the Jaccard Coefficient when compared to the photo tags. These tags are generated thru the vision API and Java WordNet to find synonyms all of which are compared with the quotes in which we get a score of similarity which is used with some thresholds to find the best matching quotes suitable for your picture.
Challenges we ran into
Connecting to the Microsoft API's using Android Studios, we also originally wanted to use a K-means type algorithm to cluster the best quotes using the given tags but ran into time problems, scaling images down in order to not blow up the app every time it is ran, and also finding ways to find more unique tags for the very common tags like 'people', 'posing', 'man', 'selfie', and so on. Along with the issue of time we also ran into problems of working together, not in the form of teamwork, but rather it was very hard for all of us to work on and update Android Studio at once so it was usually just one person working on this at a time while others did other supplementary tasks. A lot of things could have gone faster could we have used a dynamic and multi user platform to work on the app at once. We had lots of ideas about how to implement these quotes and tags in general but really only enough time to successfully deliver one of the desired functionalities.
Accomplishments that we're proud of
Personally I am proud of learning how to use the webscraper and effectively remove text from multiple websites using a relatively small amount of code. As far as the team we are proud of the work we did regardless if it was what we had initially dreamed (it rarely is) it took a couple of new turns that we did not foresee but overcame anyhow. I knew one person of our 4 person team coming in and I am always a little proud when 4 relative strangers can come together to make anything at all, especially when that something is useful.
What we learned
"I am still learning right now" Sid, as he types away, fixing last minute bugs at approximately 10:30.
What's next for Don't Quote Me
Next, if we were to continue work we would definitely first implement the Quote Fancification functionality which allows users to put in their own caption and allows our system to revamp it to be smart and elegant in order to impress your friends. As far as the business aspect of Don't Quote Me we would aim for being some sort of third party supplier of a smart caption generation system, much like giphy allows users to add gifs in sites like Facebook or Instagram. DQM will be integrated in sites that buy our service to just press the button in the photo upload phase that will call our API and generate picture related quotes/captions. The Microsoft photo recognition service we are using in this project is still relatively new and still has a long way to go so as that system progresses our program will need to do less work in order to find unique tags. This is exciting because it means the more accurate the photo recognition gets the better our system will be at giving truly related quotes.
Built With
- beautiful-soup
- dk-semantic-toolkit
- key-phrase-api
- vision-api
- wordnet
Log in or sign up for Devpost to join the conversation.