Analisi di sentimenti Zomato

Zomato sentiment analysis.

Un viaggio attraverso l’EDA e la preparazione dei dati

Foto di Ravi Sharma su Unsplash

In questo articolo definiremo l’obiettivo, caricheremo i dati, eseguiremo l’Analisi Esplorativa dei Dati (EDA) e prepareremo i dati

Passaggi da seguire per il nostro modello:

  1. Definire l’obiettivo del problema.
  2. Raccolta dati
  3. Analisi Esplorativa dei Dati (EDA) L’EDA è fondamentalmente dove utilizziamo tecniche per comprendere meglio i dati e fornire una rappresentazione visiva ad altri
  4. Preparazione dei dati I dati potrebbero non essere nel formato corretto. Potrebbero esserci valori anomali o valori mancanti. Quindi è necessario esaminare l’insieme di inconsistenze e correggerle NOTA: la fase di preparazione dei dati e l’EDA vanno di pari passo
  5. Costruire un modello di apprendimento automatico
  6. Valutazione e ottimizzazione del modello
  7. Predizione/Deployment

Ora è il momento di immergersi nell’implementazione!

Obiettivo

Il progetto mira ad analizzare i dati dei ristoranti Zomato in India per comprendere i sentimenti dei clienti attraverso le recensioni e visualizzare i dati per ottenere informazioni.

Carica librerie

Dataset: Link

import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as plt %matplotlib inlineimport warnings warnings.filterwarnings("ignore")import datetime as dtfrom wordcloud

Carica dati

Link per il dataset: Github

review = pd.read_csv("Zomato Restaurant reviews.csv")

Analisi Esplorativa dei Dati

Più di ogni altra cosa, l’EDA è uno stato mentale. È il primo passo che puoi compiere prima di apportare qualsiasi modifica al dataset. Il processo di EDA contiene il riassunto, la visualizzazione e la conoscenza approfondita dei tratti importanti del dataset.

Com’è fatta l’aspetto dei dati?

review.random(5) : per ottenere 5 record casuali review.tail() : per ottenere gli ultimi 5 record review.head() : per ottenere i primi 5 record Metadata contiene il numero di follower e recensioni sui ristoranti.

Quanto sono grandi i dati?

Ci sono 10000 record (o recensioni) forniti con 7 caratteristiche.

Colonne nel nostro dataset

Qual è il tipo di dati delle colonne?

Ci fornisce il conteggio dei non-null e le informazioni sul tipo di dati. Inoltre, indica quanto spazio occupa in memoria

Com’è matematicamente fatta la nostra vista dei dati?

Ci sono duplicati?

Abbiamo 36 duplicati. Diamo un’occhiata ai suoi duplicati

Dato che tutte le righe duplicate sono valori nulli, possiamo eliminarli in seguito durante la fase di preprocessing.

Ci sono valori mancanti?

Abbiamo molti valori nulli.

Verifica i valori unici per ogni variabile nel dataset di recensioni.

Verificheremo il valore unico per la valutazione in quanto abbiamo 10 valutazioni uniche

Le valutazioni sono date dai clienti come 1, 1.5, 2, 2.5,…5 e ‘mi piace’, mentre ci sono alcuni valori mancanti.

Conclusioni:

  1. La valutazione dovrebbe essere un numero intero, ma contiene il valore ‘mi piace’, indicando che è di tipo di dato oggetto.
  2. Gli orari sono forniti in formato testo, rendendoli di tipo di dato oggetto.
  3. Abbiamo valori duplicati, ma poiché sono valori nulli, possiamo eliminarli.
  4. Il dataset consiste in un totale di 10.000 recensioni, che comprendono 7 caratteristiche.
  5. Ad eccezione dei nomi dei ristoranti e del numero di immagini pubblicate, la maggior parte dei valori è nulla.
  6. In base alla descrizione del dataset di recensioni, possiamo dedurre che 100 ristoranti hanno ricevuto recensioni da parte dei clienti.
  7. La valutazione può essere considerata una variabile categorica che va da 0 a 5. Possiamo sostituire i valori mancanti con la valutazione media per quel ristorante specifico. Poiché ‘mi piace’ non è una valutazione, possiamo sostituirlo con una valutazione di 4, in quanto rappresenta il gusto gradito.
  8. I clienti hanno pubblicato immagini con 36 valori distinti.

Preparazione dei dati

Avrai notato che non hai effettuato alcuna pulizia o trasformazione fino alla fine della sezione EDA. Tuttavia, abbiamo determinato quali pulizie sono necessarie e cosa deve essere pulito. Nota: l’ingegneria delle caratteristiche è il passaggio di preprocessing dei dati. Essenzialmente rende i dati grezzi in dati più significativi o dati che possono essere compresi da ML.

Elimina i valori duplicati in quanto sono nulli

review.drop_duplicates(inplace = True, keep = False)

inplace = True: stiamo modificando il DataFrame anziché crearne uno nuovo. keep = False: eliminazione di tutti i duplicati

Sostituisci la valutazione ‘Mi piace’ con la valutazione 4 e converti la colonna in tipo float Nota : Series.str può essere utilizzato per accedere ai valori della serie come stringhe e applicare diversi metodi ad essa

review['Rating']=review['Rating'].str.replace("Mi piace",'4').astype('float')

Riempi i valori nulli nella colonna ‘Followers’ con 0

review['Followers'].fillna(0,inplace = True)

Converti la colonna “Time” in formato data e estrai l’ora e l’anno

Ora abbiamo valori nulli solo nella colonna ‘Review’, quindi possiamo eliminarli poiché non abbiamo bisogno di record senza recensioni. (Poiché il numero di valori mancanti era ridotto, non ha avuto un impatto significativo)

Dividere i metadati in Recensioni e Follower

Sostituire i valori mancanti in “Follower” con 0 e convertire il tempo in data e ora, estrarre l’ora e l’anno

review['Followers'].fillna(0, inplace=True)
review["Time"] = pd.to_datetime(review['Time'])
review['Hour'] = pd.DatetimeIndex(review['Time']).hour
review['Year'] = pd.DatetimeIndex(review['Time']).year

Valutazione media e il numero totale di recensioni date ai ristoranti

avg_rating = review.groupby('Restaurant').agg({'Rating': 'mean', 'Reviewer': 'count'}).reset_index().rename(columns={'Reviewer': 'Total_Review'})
avg_rating

“Grazie per unirti a me in questo viaggio! Resta sintonizzato per i miei prossimi aggiornamenti mentre approfondiamo il mondo dell’analisi dei sentimenti di Zomato. Ci sono ancora cose emozionanti in arrivo, quindi rimani connesso per i prossimi passi e le nuove intuizioni. Insieme, sveleremo le storie nascoste nei dati. A presto!”

Grazie per aver letto! Se hai apprezzato questo pezzo e vuoi leggere altro del mio lavoro, considera di seguirmi su VoAGI. Non vedo l’ora di condividere altro con te in futuro.