A different, more user friendly approach of retrieving information regarding a topic of interest using multiple reliable sources.
What it does
First, it takes user input, through voice recognition or manually typed text, and optimises the input for search engines (extract key words). Sends off a query through google and looks at the first 'x' amount of credited and reliable pages regarding your query. From the pages, Qoi extracts the most relevant information and summarises it for the user in basic terms.
How we built it
Using python and spaCy as our building blocks to setup NLP for user input and summation of query results. For speech recognition we used pyaudio to capture sound from the default microphone set on the device and pocket-sphinx to recognise speech. To gain query results we used the google search api and for web scrapping we used BeautifulSoup4, lxml and requests. Finally to portray the output we used tkinter to create a simple GUI.
Challenges we ran into
After deciding on the concept, we research the most capable NLP APIs available and found spaCy to be the most reliable. However, 2 out of our 4 members had no prior experience using Python. Furthermore, none of us had experience using NLP or web scrapping. Our main goal going into this project was to explore new technologies and learn how to use them.
Accomplishments that we're proud of
- Managing to have a minimum viable product in the 24 hour time frame of the hackathon.
- Using NLP for input of phrases and reducing them to keywords for a query.
- Using NLP to summarise text.
- Web scrapping capable of taking input from websites with different structures.
- Voice recognition integrated into our application.
What's next for Questions of Interest - Qoi
- Check requests to websites before trying to use in the program to avoid HTTP Error 403
- Improve text obtained by the web scrapper, possibly train a model to navigate through HTML tags and retrieving more accurate output, and avoid unwanted data (strips metadata, headers, explicit content, etc.)
- Koi Fish Logo
- Improve GUI aesthetics, by either using another python library such as FLASK or integrating another language like java and using javafx
- Never ending project, always evolving...