Skip to content

CSC-510-G7/Sentimental-Analyzer-Pro

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

697 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Sentimental Analyzer Pro

Software Engineering Project for CSC 510

DOI GitHub Release Build License: MIT Python GitHub contributors GitHub Issues GitHub Closed Issues GitHub Pull Requests github workflow Python Style Checker Code Formatting Syntax Check codecov PEP8 autopep8 Static Badge


The Sentimental Analyzer Pro is a versatile tool that can perform sentiment analysis on different types of data, including text, audio, reviews, and news articles. Sentiment analysis is one of the fastest-growing research areas in computer science, making it challenging to keep track of all the activities in the area. In our project, we aim to achieve our goal of accurately predicting a user's sentiment by analyzing the data provided using different types of input data.

Working Demo

Watch the video

Previous Iteration's Demo


Table of Contents

  1. Introduction
  2. Sentimental Analyzer Pro Features
  3. How to use Sentimental Analyzer Pro?
  4. How to setup local docker?
  5. Roadmap and Progress
  6. Case Study
  7. Contributing to the product
  8. Connect with us
  9. Team Members

Introduction

What is Sentimental Analyzer Pro?

Sentiment analysis, also known as opinion mining, is the process of determining the sentiment or emotional tone in a piece of text, audio, or other forms of data. It involves identifying whether the sentiment expressed is positive, negative, or neutral.

Why is it important?

  • Sentiment analysis can help businesses and organizations understand how their customers or users feel about their products, services, or experiences.
  • Companies can gauge public opinion about their products or services, track trends, and identify emerging issues or opportunities in the market.
  • News agencies and media companies use sentiment analysis to analyze public sentiment towards news articles or events. This helps in generating content that aligns with the interests of the audience.
  • Sentiment analysis is used in politics to understand public sentiment towards political candidates, parties, or policies. It is also used to gauge public opinion on social issues.

Why use Sentimental Analyzer Pro?

The Sentimental Analyzer provides the following:

  • Comprehensive Insights: Different types of data sources provide diverse perspectives. An all-encompassing tool can provide a more comprehensive understanding of public sentiment.
  • Multichannel Data Analysis: In today's world, opinions and sentiments are expressed across various channels, including social media, customer reviews, audio recordings, and news articles. A tool that can analyze these diverse data sources offers a more accurate picture of public sentiment.
  • Cost-Efficiency: Instead of using multiple specialized tools, a single tool that can handle multiple data types is cost-effective and streamlines the analysis process.
  • Who can and should use Sentimental Analyzer Pro?

    Sentimental Analyzer Pro is designed for a diverse range of users:

    • Businesses and Organizations: Analyze customer feedback and social media mentions to improve products and services.
    • Researchers and Academics: Study trends and public opinion in large datasets.
    • Media and News Agencies: Gauge public sentiment towards news articles and events.
    • Marketing Professionals: Track campaign effectiveness and tailor strategies.
    • Developers and Data Scientists: Integrate sentiment analysis into applications.
    • Educational Institutions: Use for academic projects and research.

    This tool is suitable for adults of all ages, genders, and demographics who need to understand sentiment in various data forms. meme

    How was Sentimental Analyzer Pro developed?

    The complete development was achieved using the following technologies:

    • Python3
    • Django
    • HTML
    • CSS
    • Scrapy
    • Vader Analysis Tool
    • Tensorflow

    Although HTML and CSS are used for the front end, the users can merge the backend logic with any of the front end frameworks they wish to use such as React, and AngularJS.


    What can Sentimental Analyzer Pro do?

    Feature Description
    Product Analysis Sentimental analysis of Amazon product reviews
    News Analysis Sentimental analysis of any recent news topic
    Text Analysis Sentimental analysis of text input
    Audio Analysis Sentimental analysis of audio file
    File Analysis Sentimental analysis of text file
    Live Sentimental Analysis Sentimental analysis of live recorded audio
    Facebook Post Analysis Sentimental analysis of Facebook Post
    Twitter Post Analysis Sentimental analysis of Twitter Post
    Reddit Post Analysis Sentimental analysis of Reddit Post
    YouTube Video Analysis Sentimental analysis of a YouTube video's transcript or comments
    Website Analysis Sentimental analysis of any website text with a native, embedded experience via a custom Chrome Extension

    How to use Sentimental Analyzer Pro?

    Installation

    1. Clone this project:
    git clone https://github.com/NCSU-SE-Spring2025-Group6/Sentimental-Analyzer-Pro.git 
    
    1. Create a sentimental_analysis/.env file and add the following environment variables (at least):
    REDDIT_CLIENT_ID=...
    REDDIT_CLIENT_SECRET=...
    REDDIT_USER_AGENT=...
    YOUTUBE_API_KEY=...
    SECRET_KEY=...
    SCRAPEOPS_API_SECRET=...
    
    1. Make sure you are using Python 3.10 or higher. You can get it here: https://www.python.org/downloads/release/python-3115/

    2. Create a Virtual Environment

    For Windows:

    python -m venv env
    env\Scripts\activate
    

    For Linux (Ubuntu) and Mac:

    python3.10 -m venv env
    source env/bin/activate
    
    1. Add environment variable

    For Windows:

    set DJANGO_ALLOWED_HOSTS=0.0.0.0,localhost,127.0.0.1
    

    For Linux (Ubuntu) and Mac:

    export DJANGO_ALLOWED_HOSTS=0.0.0.0,localhost,127.0.0.1
    
    1. Install dependencies for the project from the root directory of the project:
    pip3 install -r requirements.txt
    python -c "import nltk; nltk.download('punkt'); nltk.download('stopwords'); nltk.download('averaged_perceptron_tagger')"
    
    1. Install ffmpeg (you may need to restart your terminal/IDE after this step):
      For Windows:
    winget install ffmpeg
    

    For Linux (Ubuntu):

    sudo apt install ffmpeg
    

    For Mac:

    brew install ffmpeg
    '''
    brew install ffmpeg
    
    1. Run Django Server migrations manage.py (Note: Make sure you are in root directory of the project.)
    python3 .\sentimental_analysis\manage.py makemigrations
    python3 .\sentimental_analysis\manage.py migrate
    
    1. Run Django Server using manage.py (Note: Make sure you are in root directory of the project.) Service now can be discovered from any device in the local network.
    python3 .\sentimental_analysis\manage.py runserver 0.0.0.0:8000
    
    1. Next, open your browser and type in localhost:8000 in the search bar to open the user interface of the application. You may also access the server with other device in the local network with <host_ip>:8000

    2. To install the chrome extension, go to Chrome, then Manage Extensions. Make sure "Developer Mode" is enabled, and click "Load Unpacked". Select the extension/ folder in the root directory of the project. This will load the extension into your browser. To update it simply make changes in the filesystem then click the reload button in the extension page.

    Now, you are good to go.

    Tests

    To run the frontend tests, use the following command:

    python3 sentimental_analysis/manage.py test realworld
    

    To run the backend tests, use the following command:

    pytest
    

    Usage

    • Start the django server to get to the homepage

      First

    • Facebook Analysis

      Second

    • Product Analysis

      Third

    • Twitter Analysis

      Fourth

    • Text Analysis

      Fifth

    • Image to Document

      Sixth

    • Reddit Analysis

      Seventh

    • Update User Profile

      Seventh

    • Retrieve History

      Seventh


    How to use setup local docker?

    1. Build a docker image from the Dockerfile in the repo
    docker build -t sentimental-analysis .
    
    1. Run the image
    docker run -p 8000:8000 sentimental-analysis
    
    1. Next, open your browser and type in 0.0.0.0:8000 in the search bar to open the user interface of the application.

    Roadmap and Progress

    Past Achievement(Previous Work)

    • Implement User Authentication to store the login history of each User
    • Visualize the sentiment distribution by each user comment for product analysis
    • Upgraded news analysis by transitioning from Google Search to Google News scraping, yielding more relevant insights
    • Public facing webpage to get feedbacks, Raise and handle issues, Discuss & Grow with enthusiasts and supportive community
    • Docker-Ready Deployment for seamless deployment across any platform with our containerized solution
    • Intelligent Caching System to reduce redundant API calls
    • Process multiple texts simultaneously with our new batch analysis feature
    • Added profile management mechanism for users to update their profiles
    • Implemented privacy policy to ensure user data protection
    • Introduced "Right to be Forgotten" feature allowing users to delete their data
    • Provided opt-out options for users who do not wish to participate
    • Enabled "Delete My Data" feature for users to remove their data from the system
    • Developed analysis history feature to track user interactions
    • Established a user data storage mechanism

    Current Improvements

    • Added a chrome extension to analyze the sentiment of any text on the web
      • Supports analyzing both highlighted text and entire webpages
    • Added a feature to analyze the transcript or comments of a YouTube video
    • FULLY revamped the analysis history page to include extremely clean UI with sentiment previews, and a delete option
    • Added data management feature to export analysis history
    • Enhanced UI/UX for a more responsive, mobile-friendly, and more generally user-friendly design

    Future Scope

    • Real-Time Text Analysis: Type or paste text into a live window for instant sentiment analysis!
    • Topical Analysis: Scrape the overall sentiment of a topic on news or social media platforms
    • Tokenized Analysis: Visualize how each part of the text contributes to the sentiment
    • Application Settings: Implement the settings page to create a configurable user experience

    Eager to Contribute?

    To Contribute to our application, please refer to CONTRIBUTING.md

    Team Members

    • Brandon Troy
    • Chris Elchik
    • Kanchana Dhana Sadasivan

    Citation

    This project is a fork of Sentimental-Analyzer-Pro Forked on: 7 March 2025
    Original Commit Hash: 931311ba3497134f32e1e459de7bb5baf6cdea6c

    Note: This is an unfunded, non-profit project created for educational purposes.

About

Software Engineering Project 2 - Sentiment Analysis of Product Reviews, PDF Text to gain more insight about the user's perspective on the a topic, document, review etc..

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Jupyter Notebook 66.7%
  • HTML 21.0%
  • Python 11.9%
  • CSS 0.4%
  • JavaScript 0.0%
  • Makefile 0.0%