{"id":15093433,"url":"https://github.com/alejo1630/whatsapp_chat_analysis","last_synced_at":"2026-02-28T05:21:43.087Z","repository":{"id":227140661,"uuid":"757567648","full_name":"alejo1630/whatsapp_chat_analysis","owner":"alejo1630","description":"A Jupyter Notebook with the analysis for a Whatsapp Chat using several techniques of data wrangling, EDA and Sentiment Analysis","archived":false,"fork":false,"pushed_at":"2024-03-27T22:11:01.000Z","size":14030,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-13T23:26:29.017Z","etag":null,"topics":["data-visualization","data-wrangling","emojis","exploratory-data-analysis","jupyter-notebook","sentiment-analysis","whatsapp-chat"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alejo1630.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-14T18:55:01.000Z","updated_at":"2024-03-20T14:59:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"3a66c5f7-ea75-4ba3-a76c-9a1ec046eaf6","html_url":"https://github.com/alejo1630/whatsapp_chat_analysis","commit_stats":null,"previous_names":["alejo1630/whatsapp_sentiment"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alejo1630/whatsapp_chat_analysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejo1630%2Fwhatsapp_chat_analysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejo1630%2Fwhatsapp_chat_analysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejo1630%2Fwhatsapp_chat_analysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejo1630%2Fwhatsapp_chat_analysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alejo1630","download_url":"https://codeload.github.com/alejo1630/whatsapp_chat_analysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alejo1630%2Fwhatsapp_chat_analysis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017243,"owners_count":26086015,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-visualization","data-wrangling","emojis","exploratory-data-analysis","jupyter-notebook","sentiment-analysis","whatsapp-chat"],"created_at":"2024-09-25T11:23:01.677Z","updated_at":"2025-10-13T23:26:29.754Z","avatar_url":"https://github.com/alejo1630.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Whatsapp Chat Analysis\n\nA Jupyter Notebook with the analysis for a Whatsapp Chat using several techniques of data wrangling, EDA and Sentiment Analysis \n\n\n\n## 🔰 How does it work?\nData is downloaded as a .txt file from Whatsapp App Without Media and loaded in the Jupyer Notebook\n\n### Data Wrangling\n- Chat data is organized into three columns:\n  - Complete Date\n  - User\n  - Message\n- A **Regex Function** is used for several operations and create a *Message_Modified* column:\n  - Lowercase the messages\n  - Delete messages with URL\n  - Remove numbers\n  - Remove messages with spaces\n  - Remove special characters\n  - Remove repeated letters\n- An **Emoji** column is created to identify all the emojis used in messages\n- Complete Date information is used to create the following columns.\n  - Date [YYYY-MM-DD]\n  - Month (Name)\n  - Day (Number 1-31)\n  - Day (Week Name)\n  - Hour\nThis is what the final dataset looks like:\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/Dataset.png\" width = \"700\"\u003e\n\n### Exploratory Data Analysis (EDA)\nSeveral questions were answered using the dataset information.\n\n#### *Who has sent the highest number of messages?*\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/1.png\" width = \"700\"\u003e\n\n#### *Messages interactions through time*\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/2.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/3.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/4.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/5.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/6.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/7.png\" width = \"700\"\u003e\n\n\n#### *Use of Emojis*\n*Top Emojis User A*\n`[('😘', 7403), ('🥺', 1058), ('😬', 411), ('🤪', 277), ('❤', 266)]`\n\n*Top Emojis User L*\n`[('🥺', 1378), ('😘', 1111), ('🥰', 912), ('☺', 622), ('😊', 587)]`\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/8.png\" width = \"700\"\u003e\n\n\n#### *Count of Words*\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/9.png\" width = \"700\"\u003e\n\n#### *WordCloud*\n\n*Both Users*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/both.png\" width = \"300\"\u003e\n\n*Both Users with Spanish Stop Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/both+sw.png\" width = \"300\"\u003e\n\n*A User*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/A+sw.png\" width = \"300\"\u003e\n\n*L User*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/L+sw.png\" width = \"300\"\u003e\n\n### Sentiment Analysis\n\n#### *Spanish Analysis*\nSentiment score {Negative [0 : 0.33] | Neutral [0.33 : 0.66] ! Positive [0.66 : 1]}\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/10.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/11.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/12.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/13.png\" width = \"700\"\u003e\n\n*Positive Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_spanish_pos.png\" width = \"300\"\u003e\n\n*Negative Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_spanish_neg.png\" width = \"300\"\u003e\n\n*The *Spanish Sentiment Analysis* didn't get good results. Now we want to try to perform a Sentiment Analysis with the Messages Translations to English*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/translated.png\" width = \"700\"\u003e\n\n#### *Sentiment Analysis Using [Text Blob](https://www.analyticsvidhya.com/blog/2021/10/making-natural-language-processing-easy-with-textblob/)*\nSentiment score {Negative [-1 : -0.33] | Neutral [-0.33 : 0.33] ! Positive [0.33 : 1]}\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/14.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/15.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/16.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/17.png\" width = \"700\"\u003e\n\n*Positive Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_text_blob_pos.png\" width = \"300\"\u003e\n\n*Negative Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_text_blob_neg.png\" width = \"300\"\u003e\n\n#### *Sentiment Analysis Using [NLTK](https://akladyous.medium.com/sentiment-analysis-using-vader-c56bcffe6f24)*\nSentiment score {Negative [0 : -0.05] | Neutral [-0.05 : 0.05] ! Positive [0.05 : 1]}\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/18.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/19.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/20.png\" width = \"700\"\u003e\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/21.png\" width = \"700\"\u003e\n\n*Positive Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_NLTK_pos.png\" width = \"300\"\u003e\n\n*Negative Words*\n\n\u003cimg src = \"https://raw.githubusercontent.com/alejo1630/whatsapp_sentiment/main/Images/sentiment_NLTK_neg.png\" width = \"300\"\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejo1630%2Fwhatsapp_chat_analysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falejo1630%2Fwhatsapp_chat_analysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falejo1630%2Fwhatsapp_chat_analysis/lists"}