<jupyter_start><jupyter_text>A B2W Digital, um dos mais importantes e-commerce da América Latina, lançou o B2W-Reviews01 , um corpus aberto de análises de produtos com mais de 130.000 análises de usuários. Este conjunto de dados tem dois recursos de destino: o rótulo binário "recomendar a um amigo" e uma avaliação do usuário de 1 a 5 estrelas. Aqui, consideramos apenas a taxa do usuário. Descrição do autor do dataset criado para análise de sentimentos.<jupyter_code>import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline
from google.colab import drive #conectando google drive para usar o dataset
drive.mount('/content/drive/')
df = pd.read_csv('/content/drive/My Drive/Machine_Learning_Dellead/Datasets/b2w.csv') #lendo o csv do google drive
df.head()
from google.colab import drive
drive.mount('/content/drive')
df.tail()
df.dtypes
df.columns
df["polarity"]
df.describe()
df.sort_values(by="rating") #ordenando 
df
df.loc[3] #selecionar linhas pelo índice

df[df["rating"] > 3] #Para selecionar de acordo com critérios condicionais, se usa o que se chama de Boolean Indexing.
df[(df['rating'] > 3) | (df['kfold_rating'] == 10)]

df.head()
df.select_dtypes(include='number').head(20)  #selecionando somente colunas com números
df["rating"].unique() #retornando valores únicos da coluna
df["review_text"].unique()  #retornando valores únicos da coluna
df["review_text"].value_counts()     #contando valores
df["review_text"].value_counts(normalize=True) #verificando em percentuais os valores da operação anterior
#agrupando dados e em seguida a média usando o método .mean()

df.groupby("review_text").mean()
df.groupby("review_text").mean()["rating"].sort_values() #agrupando por coluna, exibindo a média e organizando em ordem crescenteos valores
def fatiar(review_text): #retornando somente as 3 primeiras letras da palavra inicial
  return review_text[:3]

df["review_text"].apply(fatiar)

df["review_text"].apply(lambda x: x[:3]) #pega as 3 primeiras letras daa palvra que inica a frase(neste caso))
df2 = df.head(20)
df2 = df2.replace({"kfold_polarity":{ 1.000000:np.nan}}) #substituindo o valor "1.000000" na coluna "kfold_polarity" por um NaN
df2
df2.dropna() #removendo os valores NaN da coluna "kfold_polarity	"
df2
df2.fillna(15) #preenchendo os valores NaN da coluna "kfold_polarity" por 15	
df2 = df.head(20)  
df2 = df2.replace({"kfold_polarity":{15.0 :1.000000 }}) #substituindo o valor 15 da coluna "kfold_polarity" por 1.000000
df2
df2.isna() #verificando se os valores do dataset são NaN
df2 = df.head(30) #exibindo as 30 primeiras linhas do dataset
df2
df2 = df[['review_text_tokenized','polarity', 'rating']] # selecionando apenas as colunas que estou trabalhando
df2
df2["rating"].plot.hist() # frequencia de avaliações dos usuários por meio da quantidade de estrelas de 1 a 5. 
df2['polarity'].plot.hist(edgecolor='black') #inserindo borda preta no histograma
df2.describe() # com essas estatísticas eu posso visualizar (confirmar) que 
               # o número de avaliações positivas foi maior(75%) do que as negativas(25%) comparando com o histograma
df2["rating"].value_counts().plot.barh(title='Número de estrelas atribuidas pelos usuários')
# não é o gráfico mais adequado para a análise
df2.plot.scatter(x='polarity', y='rating', s=.5, title='Avaliações positivas x Quantidade de atribuição de estrelas')
df2.sample(frac=.1).plot.scatter(x='polarity', y='rating', title='Avaliações positivas x Quantidade de atribuição de estrelas')
#conforme aumenta a quantidade de estrelas, aumenta a polaridade positiva (1)
# contando os valores e plotando através do gráfico de pizza 
df["rating"].value_counts().plot.pie(title = 'Número de estrelas atribuidas pelos usuários')<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.10727562400424855, 'fraction_numerical': 0.026553372278279343, 'mean_word_length': 5.738819320214669, 'pattern_counts': {'":': 2, '<': 5, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '1', 'dir': 'jupyter-structured-clean-dedup', 'id': '173266', 'license': 'MIT', 'n_tokens_mistral': 1409, 'n_tokens_neox': 1336, 'n_words': 421, 'path': 'notebooks/aula_01.ipynb', 'repo_name': 'izafreitas/machine_learning_dellead_mentoring', 'size': '3766'}