def word_cloud(): query = request.args.get("query") if query is None: return jsonify({"error": "missing query"}), 400 db = DatabaseManager() comments = db.comments_containing(query) words = [word.lower() for c in comments for word in c.content.split()] counts = collections.Counter(words).most_common(25) return jsonify(dict(counts))
def courses_by_popularity(): course_tracker = CourseTracker() db = DatabaseManager() analyzer = SentimentAnalyzer() sentiments = [] for course in course_tracker.get_all_courses(): course_comments = db.comments_containing(course.name) if len(course_comments) == 0: continue course_sentiments = [ analyzer.analyze_sentiment(c.content) for c in course_comments ] avg_sentiment = sum(course_sentiments) / len(course_sentiments) sentiments.append({ "course": course.name, "avg_sentiment": avg_sentiment }) return jsonify( sorted(sentiments, key=lambda x: x["avg_sentiment"], reverse=True))