computer science final

profileolusegunadeyemo
Final_Project_COSC251.pdf

Final Project

Total: 200 points

Due Date: May 13th, 2021 (midnight)

Submit all your answers in one notebook file as (final_yourname.ipynb)

Question 1 (80 pts)

Sentiment Analysis helps data scientists to analyze any kind of data i.e., Business,

Politics, Social Media, etc., For example, the IMDb dataset "movie_data.csv" file

contains 25,000 highly polar ‘positive’ (12500) and ‘negative’ (12500) IMDB movie

reviews (label negative review as ‘0’ and positive review as ‘1’).

Similarly, “amazon_data.txt” and “yelp_data.txt” contain 1000 labeled negative

review as ‘0’ and positive review as ‘1’

For further help, check the notebook sentiment_analysis.ipynb in Canvas and also

explore the link: https://medium.com/@vasista/sentiment-analysis-using-svm-

338d418e3ff1

Answer the following:

a) Read all the above data files (.csv and .txt) in python Pandas DataFrame.

For each dataset, make 70% as training and 30% as test sets.

b) By using both CountVectorizer and TfidfVectorizer separately of the sklearn

library , perform the Logistic regression classification in the IMDb dataset and

evaluate the accuracies in the test set.

c) Classify the Amazon dataset using Logistic Regression and Neural Network

(two hidden layers) and compare the performances and show the confusion

matrices.

d) Generate classification model for the Yelp dataset with K-NN algorithms.

Fit and test the model for different values for K (from 1 to 5) using a for loop and

record and plot the KNN’s testing accuracy in a variable (scores).

e) Generate prediction for the following reviews based Logistic regression

classifier in Amazon dataset:

Review1 = "SUPERB, I AM IN LOVE IN THIS PHONE"

Review 2 = "Do not purchase this product. My cell phone blast when I switched

the charger"

Question 2 (60 pts)

The 20 Newsgroups data set is a collection of approximately 20,000 newsgroup

documents, partitioned (nearly) evenly across 20 different newsgroups. This data set is

in-built in scikit, so you don’t need to download it explicitly. You can check the code

here:

https://towardsdatascience.com/machine-learning-nlp-text-classification-using-scikit-

learn-python-and-nltk-c52b92a7c73a

to load the data set directly in notebook (this might take few minutes, so patience). For

example,

from sklearn.datasets import fetch_20newsgroups

twenty_train = fetch_20newsgroups(subset='train', shuffle=True)

a) By using both CountVectorizer and TfidfVectorizer separately of the

sklearn library, perform the Logistic regression classification on the training set

and show the confusing matrix and accuracy by predicting the class labels in the

test set.

b) Perform a Logistic Regression classification and show the accuracy of the test

set.

c) Perform a K-means Clustering in the training set with K =20

d) Plot the accuracy (Elbow method) of different cluster sizes (5, 10, 15, 20, 25, 30)

and determine the best cluster size.

Question 3 (60 pts)

The Medical dataset “image_caption.txt” contains captions for 1000 images

(ImageID). Let’s build a small search engine (you may explore to get some help:

https://towardsdatascience.com/create-a-simple-search-engine-using-python-

412587619ff5 and https://www.machinelearningplus.com/nlp/cosine-similarity/) by

performing the following:

a) Read all the data files in python Pandas DataFrame.

b) Perform the necessary pre-processing task (e.g., punctuation, numbers, stop

word removal, etc.)

c) Create Term-Document Matrix with TF-IDF weighting

d) Calculate the similarity using cosine similarity and show the top ranked ten

(10) images Based on the following query

“CT images of chest showing ground glass opacity”