Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/abeed04/sentiment-analysis-using-recurrent-neural-networks

Bidirectional RNNs are used to analyze the sentiment (positive, negative, neutral) of movie reviews. .
https://github.com/abeed04/sentiment-analysis-using-recurrent-neural-networks

bidirectional-lstm bidirectional-rnn dropout embeddings nlp-machine-learning nltk-python regular-expression spacy-nlp stopwords-removal tokenizer

Last synced: 6 days ago
JSON representation

Bidirectional RNNs are used to analyze the sentiment (positive, negative, neutral) of movie reviews. .

Awesome Lists containing this project

README

        

Sentiment Analysis Using Recurrent Neural Networks


Introduction

- πŸ‘¨β€πŸ’»This project implements a sentiment analysis model for movie reviews using RNNs built with Python's libraries.

- πŸ”­ Sentiment analysis, also known as opinion mining, is a subfield of Natural Language Processing (NLP) that aims to automatically detect the emotional tone of a piece of text.

- ⚑This project demonstrates proficiency in deep learning, data manipulation, text preprocessing, NLP, model building, evaluation and handling sequential data.

Requirements

- Python 3.x
- pandas
- numpy
- Regular expressions (re)
- NLTK
- Scikit-learn
- Tensorflow
- Scipy


Text Preprocessing

- After loading the data, perform preprocessing techniques like HTML tag removal, punctuation removal, lowercasing, stop word removal using libraries nltk, re and spacy.

- Make Tokens for the preprocessed text using Tokenizer. The Tokenizer class from Keras tokenizes the text, converting words into sequences of integer indices.

- Sequences are padded with zeros to ensure a fixed length for all reviews using pad_sequences.

- Sentiment labels ("positive" and "negative") are converted to numerical labels (0 and 1) using LabelEncoder.

Model Building and Training

- Complex Bidirectional LSTM-GRU has been used in model building. This is a more complex model with multiple stacked Bidirectional LSTM and GRU layers with dropout regularization. Total trainable parameters were 37379651.

- The data is split into training and testing sets using train_test_split.
- Each model is compiled with the Adam optimizer, binary cross-entropy loss function, and accuracy metric.
- Models are trained for a specified number of epochs and batch size.
- Training and validation accuracy and loss are monitored during training.

Working

- The code demonstrates how to use the trained model to predict the sentiment of new movie reviews.

- Text pre-processing steps are applied to the new review text given as input.
- The preprocessed text is converted to a sequence of integers using the fitted tokenizer.
- The sequence is padded to match the maximum review length.
- The model predicts the sentiment probability (positive or negative) for the review.
- Based on the predicted probability, the review is classified as "flop movie", "average movie", "good movie", or "blockbuster movie".
- Overall this this code provides a basic framework for sentiment analysis using RNNs. You can experiment with different RNN architectures, hyperparameters.

Use Cases

- Analyze customer reviews and social media posts to understand customer satisfaction with products, services, and brand interactions.
- Identify spam emails by analyzing the language and sentiment used in the message content.
- Track brand sentiment across social media platforms to identify potential issues or crises early on.
- Analyze employee satisfaction surveys and feedback forms to identify potential morale issues or areas for improvement in the workplace.
- Analyze student feedback on online courses to understand their learning experience and identify areas for improvement in course content and delivery.