<reponame>Alanapiereid/Neutral_Sentiment_Classifier
import torch
from torch import nn
#print(torch.__version__)
import numpy as np
import pandas as pd
import gzip
from string import punctuation
from collections import Counter
from torchtext import vocab
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
###################################################################

df = pd.read_csv('reviews_Clothing_Shoes_and_Jewelry_5.gz', compression='gzip', sep=' ')
#df = df[df['reviewText'].notnull()]
#print(df.head)
####################################################################
texts = df.reviewText #create x-values
labels = df.overall.values # create Y-values
####################################################################
corpus = []
###################################################################
#lower case + remove punctuation
for text in texts:
  text = text.lower()
  #print(text)
  text = "".join([x for x in text if x not in punctuation])
  corpus.append(text)
corpus = " ".join(corpus)
corpus = corpus.split()
####################################################################
#get word counts#
word_counts = Counter(corpus)
no_of_words = len(corpus)
sorted_freq = word_counts.most_common(no_of_words)
# Convert words to ints according to word counts - create dictionary:  {'Word': count}
vocab_to_int = {w:i+1 for i,(w,c) in enumerate(sorted_freq)}
##########################################################################
# encode words from dict
encoded_texts = []
for review in corpus:
  encoded_text = []
  for word in review.split():
    if word not in vocab_to_int.keys():
      #if word is not available in vocab_to_int put 0 in that place
      encoded_text.append(0)
    else:
      encoded_text.append(vocab_to_int[word])
  encoded_texts.append(encoded_text)

###################################################################################################################
embeddings = vocab.Vectors('glove.840B.300d.txt')
Text.build_vocab(train_data, valid_data, max_size=5000, vectors=embeddings) 
Label.build_vocab(train_data)


####################################################################################################################

import torch
from torch import nn
#print(torch.__version__)
import numpy as np
import pandas as pd
import gzip
from string import punctuation
from collections import Counter
from torchtext import vocab
device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu")
###################################################################

df = pd.read_csv('reviews_Clothing_Shoes_and_Jewelry_5.gz', compression='gzip', sep=' ')
#df = df[df['reviewText'].notnull()]
#print(df.head)
####################################################################
texts = df.reviewText #create x-values
labels = df.overall.values # create Y-values
####################################################################
corpus = []
###################################################################
#lower case + remove punctuation
for text in texts:
  text = text.lower()
  #print(text)
  text = "".join([x for x in text if x not in punctuation])
  corpus.append(text)
corpus = " ".join(corpus)
corpus = corpus.split()
####################################################################
#get word counts#
word_counts = Counter(corpus)
no_of_words = len(corpus)
sorted_freq = word_counts.most_common(no_of_words)
# Convert words to ints according to word counts - create dictionary:  {'Word': count}
vocab_to_int = {w:i+1 for i,(w,c) in enumerate(sorted_freq)}
##########################################################################
# encode words from dict
encoded_texts = []
for review in corpus:
  encoded_text = []
  for word in review.split():
    if word not in vocab_to_int.keys():
      #if word is not available in vocab_to_int put 0 in that place
      encoded_text.append(0)
    else:
      encoded_text.append(vocab_to_int[word])
  encoded_texts.append(encoded_text)

###################################################################################################################
embeddings = vocab.Vectors('glove.840B.300d.txt')
Text.build_vocab(train_data, valid_data, max_size=5000, vectors=embeddings) 
Label.build_vocab(train_data)


####################################################################################################################
#print(torch.__version__) ################################################################### #df = df[df['reviewText'].notnull()] #print(df.head) #################################################################### #create x-values # create Y-values #################################################################### ################################################################### #lower case + remove punctuation #print(text) #################################################################### #get word counts# # Convert words to ints according to word counts - create dictionary:  {'Word': count} ########################################################################## # encode words from dict #if word is not available in vocab_to_int put 0 in that place ################################################################################################################### ####################################################################################################################