{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### **Sentiment Analysis of r/place 2023 Data**\n", "\n", "Using Natural Language Processing to track how the Reddit community felt about the r/place social experiment on July 2023. In this Jupyter notebook, I will be using both the bertweet-sentiment-analysis model to determine whether a comment is positive, neutral, or negative." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we need to import the necessary libraries. I import the csv library to read comments stored in the CSV file, and the transformers library will used to create a pipeline for the bertweet-sentiment-analysis model." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Extracting Data**" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\Python311\\Lib\\site-packages\\tqdm\\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] } ], "source": [ "import csv\n", "import matplotlib.pyplot as plt\n", "from transformers import pipeline\n", "import random" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we will extract comments from the CSV file and append them to a list." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# store the comments in a list\n", "# each row has one comment\n", "comments = []\n", "\n", "# open the file storing reddit comments\n", "# specify utf-8 encoding to prevent unicode decode error\n", "filepath = \"data/place_comments.csv\"\n", "with open(filepath, \"r\", encoding=\"utf-8\") as f:\n", " skip = next(f)\n", " csv_reader = csv.reader(f)\n", " for row in csv_reader:\n", " comments.append(row[0])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's record how many comments we have prior to analyzing the results." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "8573\n" ] } ], "source": [ "n = len(comments)\n", "print(n)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Creating the Pipeline**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's create a pipeline using the bertweet-sentiment-analysis model as mentioned before." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Xformers is not installed correctly. If you want to use memory_efficient_attention to accelerate training use the following command to install Xformers\n", "pip install xformers.\n" ] } ], "source": [ "# run the BERT model on the imported comments\n", "FILE_PATH = \"saved_model/\"\n", "sentiment_pipeline = pipeline(task=\"sentiment-analysis\",\n", " model=FILE_PATH,\n", " tokenizer=FILE_PATH)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sort the comments from positive, neutral, or negative by putting them in their appropriate lists. For each comment, we will check whether the label is positive (label=2), neutral (label=1), or negative (label=0) and trim the comment down to 128 tokens if it's too big." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# sort the positive, neutral, and negative comments\n", "pos_comments = []\n", "neu_comments = []\n", "neg_comments = []\n", "\n", "# for each comment, determine whether the model identifies it as pos/neu/neg\n", "# keep up to TOKEN_SIZE tokens or the pipeline will crash\n", "TOKEN_SIZE = 128\n", "for comment in comments:\n", " result = 0\n", " if len(comment) > TOKEN_SIZE:\n", " result = sentiment_pipeline(comment[:TOKEN_SIZE])\n", " else:\n", " result = sentiment_pipeline(comment)\n", " label = result[0][\"label\"]\n", "\n", " if label == \"LABEL_2\":\n", " pos_comments.append(comment)\n", " elif label == \"LABEL_1\":\n", " neu_comments.append(comment)\n", " else:\n", " neg_comments.append(comment)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Visualizing the Results**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now that we've sorted between positive, neutral, and negative comments, let's graph the results using a pie chart." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# find the labels and the sizes of each comment category\n", "labels = [\"Positive\", \"Neutral\", \"Negative\"]\n", "sizes = [len(pos_comments), len(neu_comments), len(neg_comments)]\n", "\n", "# plot the results\n", "fig, ax = plt.subplots()\n", "ax.pie(sizes, labels=labels, autopct='%1.1f%%')\n", "plt.title(f\"Sentiment Distribution of r/place 2023\\nComments on Selected Discussion Threads\\n(sample size={n})\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of positive comments: 2136\n", "Number of neutral comments: 3972\n", "Number of negative comments: 2465\n" ] } ], "source": [ "print(\"Number of positive comments: \", len(pos_comments))\n", "print(\"Number of neutral comments: \", len(neu_comments))\n", "print(\"Number of negative comments: \", len(neg_comments))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Analyzing the Results**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The model reports that an astounding 47.4% of the comments are neutral, while 40.5% of the comments are negative! In contrast, only 12.1% of the comments are positive. This suggests that the general sentiment of the r/place 2023 was generally negative!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can evaluate the model's accuracy based on random comments can be selected from the list." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I never participated in this before and honestly, fuck it next time. My square got undone by a \"new user\" and constantly continues to happen.\n", "wheres the heat map?\n", "fuck u/spez\n" ] } ], "source": [ "print(random.choice(pos_comments))\n", "print(random.choice(neu_comments))\n", "print(random.choice(neg_comments))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Room for Improvement**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As stated previously in the data visualization notebook, German comments may be difficult for many NLP models to evaluate, as they have been trained with English text. In future versions of this analysis project, I plan on separating English and German comments, and letting a German-based NLP model evaluate the German comments." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### **Credits**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This Jupyter notebook makes great use of the bertweet-sentiment-analysis model found at https://huggingface.co/finiteautomata/bertweet-base-sentiment-analysis. Thank you to Juan Manuel PĂ©rez (github: finiteautomata) for creating this model and publishing it on huggingface.co.\n", "\n", "The matplotlib documentation was used to create the pie model visualization. Source: https://matplotlib.org/stable/gallery/pie_and_polar_charts/pie_features.html" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.2" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }