Skip to content

the code reads sentiments of the texts: a data science project.

Notifications You must be signed in to change notification settings

keertiandromeda/sentiment_analysis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

sentiment_analysis

#the code reads sentiments of the texts: a data science project. import pandas as pd import matplotlib.pyplot as plt from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM,Dense, Dropout, SpatialDropout1D from tensorflow.keras.layers import Embedding df = pd.read_csv(r"D:\Tweets.csv") df.head() df.columns tweet_df=df[['text','airline_sentiment']] print(tweet_df.shape) tweet_df.head(5) tweet_df=tweet_df[tweet_df['airline_sentiment']!='neutral'] print(tweet_df.shape) tweet_df.head(5) tweet_df["airline_sentiment"].value_counts() sentiment_label=tweet_df.airline_sentiment.factorize() sentiment_label tweet = tweet_df.text.values tokenizer = Tokenizer(num_words=5000) tokenizer.fit_on_texts(tweet) vocab_size = len(tokenizer.word_index) + 1 encoded_docs = tokenizer.texts_to_sequences(tweet) padded_sequence = pad_sequences(encoded_docs, maxlen=200) print(tweet[0]) print(encoded_docs[0]) embedding_vector_length = 32 model = Sequential() model.add(Embedding(vocab_size, embedding_vector_length, input_length=200) ) model.add(SpatialDropout1D(0.25)) model.add(LSTM(50, dropout=0.5, recurrent_dropout=0.5)) model.add(Dropout(0.2)) model.add(Dense(1, activation='sigmoid')) model.compile(loss='binary_crossentropy',optimizer='adam', metrics=['accuracy'])
print(model.summary()) plt.plot(history.history['accuracy'],label='acc') plt.plot(history.history['val_accuracy'], label='val_acc') plt.legend() plt.show() plt.savefig("Accuracy plot.jpg") plt.plot(history.history['loss'], label='loss') plt.plot(history.history['val_loss'], label='val_loss') plt.legend() plt.show() plt.savefig("Loss plot.jpg") def predict_sentiment(text): tw = tokenizer.texts_to_sequences([text]) tw = pad_sequences(tw,maxlen=200) prediction = int(model.predict(tw).round().item()) print("Predicted label: ", sentiment_label[1][prediction]) test_sentence1 = "I enjoyed my journey on this flight." predict_sentiment(test_sentence1) test_sentence2 = "This is the worst flight experience of my life!" predict_sentiment(test_sentence2)

About

the code reads sentiments of the texts: a data science project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published