Inspiration
At the end of every quarter/semester, there comes the time to sign up for classes for the next academic term and when doing so every student races towards rate my professors to see which professor is the best one to take in terms of easiness and other students experience with that professor. I always find myself spending time trying to rank these professors on which one is going to give me the best time and the best learning experience and end up researching from many professor's websites to find the best one. To eliminate that I built a program that does that for me and gives me a ranking on my convenience.
What it does
What my program does is it takes in two inputs one which is the school you go to and the second the course you are about to take. Using these inputs it finds all professors from that university who thought that course before and ranks those professors from best to worst in terms of student comments and the overall rating on that website. It uses sentiment analysis for every comment for a professor and analyzes whether its a good comment or a bad comment on the professor and assigns it a value of favorability. Summing up all those values every professor is assigned that value for the comments they received by the students in the website ratemyprofessors.com. Finally, it sorts the professors from the best to worst in terms of student comments and easiness and a list of professors sorted best to worst in terms of the overall rating.
How I built it
I built this program on Jupiter notebook and due to a time constraint I couldn't develop a website for it or add additional features. However, I used the NLP tool kit and libraries such as text blob to train the analyzer to define a good comment and a bad comment and based on that give a value between 1 and -1 and in the end sum all those values to give an overall student rating for that professor by comments. Then I added all those professors in the dictionary and sorted them from highest rating to lowest rating. Highest indicating more positive comments towards the professor indicating student's favoredness and lowest indicating students aversion towards the professor. Using beautiful soup I was able to extract information for every professor who thought a certain course in a certain university and was able to extract all statistics on that professor. I used the google search library to extract all links from google regarding a professor who thought that course.
Challenges I ran into
A challenge I ran into was organizing information and parsing data. It took quite an amount of time to figure out how to extract the data and writing an algorithm to analyze the data. However the challenge was ranking the data. Since I am a beginner in programming it was a difficult time ranking however with the help of a mentor I was able to overcome that and was able to rank the data I extracted after analysis.
Accomplishments that I'm proud of
I am especially proud that this is my first CS project in my life and I was able to build something in just 36 hours with no prior knowledge but with just a simple ambition.
What I learned
I learned to research and analyze data using ML algorithms and lastly ranking data. I learned the process of extracting, analyzing, and displaying data for useful results.
What's next for Professor ranker
The next step for this project is turning it into a website or an app which has more features. My plan is to build an algorithm that extracts study methods for a given professor solely using this website and based on more inputs giving students a more customized result. For example, a student can input he learns the best with a more lecture oriented way and the program can analyze a professor and rank them based on their lectures and give a list of professors who lecture the best to lecturing the worst. Furthermore, I would like to implement a form where a student can give more parameters, and using the tags on the website my program can report a more detailed thorough ranking. For example, a professor can have a tag on the website which says he is a strict grader, and my program would output some study methods highlighted in the comment section. Essentially with more time, I would like to give study tips for every professor in addition to its ranking. The bottom line vision is it can be a universal ranking for every professor in a variety of parameters and more sources to parse from.
Built With
- beautiful-soup
- nltk
- python
- textblob
- vader
Log in or sign up for Devpost to join the conversation.