def download_dataset(): if 'username' in session: labels = Labels.query.all() tweets = {} for label in labels: tweets[label.tweet_id] = { "labels": {}, "tweet": Tweet.query.filter_by(instance_id=label.tweet_id).all()[0].text } for label in labels: tweets[label.tweet_id]["labels"][label.user_id] = label.sentiment print(tweets) return render_template("download_dataset.html", user=UserClass.get_user(session["username"]), session=session, labels=labels, tweets=tweets) else: return "You are not allowed to access this resource"
def dashboard(): if 'username' in session: return render_template('dashboard.html', user=UserClass.get_user(session["username"]), session=session) else: return render_template('splash.html')
def edit_profile(): if 'username' in session: return render_template('edit_profile.html', user=UserClass.get_user(session["username"]), session=session) else: return render_template('splash.html')
def charts(): if 'username' in session: return render_template("charts.html", user=UserClass.get_user(session["username"]), session=session) else: return "You are not allowed to access this resource"
def label_tweets_get_to_label(): if 'username' in session: tweet = UserClass.get_tweet_to_label(session["username"]) id = tweet.instance_id text = tweet.text author = tweet.author return {"id": id, "text": text, "author": author} else: return "You are not allowed to access this resource"
def users(): if 'username' in session: users = User.query.order_by(User.role.desc()).all() return render_template("users.html", users=users, user=UserClass.get_user(session["username"]), session=session) else: return "You are not allowed to access this resource."
def number_stats(): if 'username' in session: all_labels = Labels.query.all() ID = 0 SENTIMENT = 1 USER = 2 # TALLIES tally_by_user = {1: {}, 2: {}, 3: {}} for label in all_labels: tally_by_user[label.user_id][label.tweet_id] = label.sentiment # COHEN'S KAPPA minv = min([ len(tally_by_user[1]), len(tally_by_user[2]), len(tally_by_user[1]) ]) y1 = list(tally_by_user[1].values())[0:minv] y2 = list(tally_by_user[2].values())[0:minv] y3 = list(tally_by_user[3].values())[0:minv] ratings = [y1, y2, y3] label_counts = { 1: len(tally_by_user[1]), 2: len(tally_by_user[2]), 3: len(tally_by_user[3]) } matrix = np.zeros((minv, 5)) for i in range(minv): for j in range(len(ratings)): rating = ratings[j][i] matrix[i][rating] += 1 kappa = fleiss_kappa(matrix) import pprint as pp cm = [] return render_template("number_stats.html", user=UserClass.get_user(session["username"]), session=session, label_counts=label_counts, kappa=kappa, kappa_count=minv, cm=cm, names=list(sent_names.values())) else: return "You are not allowed to access this resource"
def edit_label(): if 'username' in session: id = request.args.get("id") tweet = Tweet.query.filter_by(instance_id=id).all()[0] text = tweet.text author = tweet.author return render_template("edit_label.html", user=UserClass.get_user(session["username"]), session=session, id=id, author=author, text=text) else: return "You are not allowed to access this resource"
def view_tweets(): if 'username' in session: page = request.args.get("page", "1") page_size = 10 query = Tweet.query qstr = request.args.get("q", "") print(qstr) dq = query if len(qstr) > 0: middle = Tweet.text.like('% ' + qstr + ' %') first = Tweet.text.like(qstr + ' %') last = Tweet.text.like(qstr + ' %') from sqlalchemy import or_ query = query.filter(or_(middle, first, last)) dq = query query = query.order_by(Tweet.author.asc()) if page_size: query = query.limit(page_size) if page: query = query.offset((int(page) - 1) * page_size) tweets = query.all() tweet_count = dq.count() return render_template("view_tweets.html", qstr=qstr, tweets=tweets, tweet_count=tweet_count, user=UserClass.get_user(session["username"]), session=session, page=page) else: return "You are not allowed to access this resource"