Questo articolo è stato pubblicato nell'ambito del Blogathon sulla scienza dei dati.
Cos'è l'analisi del sentimento??
L'inizio e il rapido sviluppo del campo coincidono con quello dei media basati sul web sul web, ad esempio, sondaggi, compilazione di conversazioni, riviste web, microblog, Twitter e le organizzazioni interpersonali, perché, senza precedenti nella storia umana, abbiamo un volume colossale di informazioni ostinate registrate in strutture avanzate. Da metà 2000, l'indagine dei presupposti è diventata uno dei territori di esame più dinamici nella preparazione del linguaggio comune.
Inoltre, è ampiamente considerato nell'estrazione di informazioni, web mining e text mining. Infatti, si è diffuso dall'ingegneria del software alle scienze esecutive e alle sociologia grazie alla sua importanza per le imprese e la società in generale. Negli ultimi tempi, sono anche fioriti esercizi moderni che comportano l'esame dei sentimenti. Sono emerse diverse nuove società. Molte grandi aziende hanno costruito le proprie capacità interne.
I quadri di esame delle ipotesi hanno trovato le loro applicazioni praticamente in tutti gli spazi commerciali e sociali. Analisi del sentimento, chiamato anche opinion mining, è il campo di studio che analizza le opinioni, sentimenti, valutazioni, giudizi, atteggiamenti ed emozioni delle persone nei confronti delle entità come prodotti, Servizi, organizzazioni, individui, i problemi, eventi, temi e loro attributi. Rappresenta un grande spazio problematico.
Ci sono anche molti nomi e compiti leggermente diversi, ad esempio, analisi del sentimento, estrazione di opinioni, estrazione di opinioni, estrazione del sentimento, analisi della soggettività, analisi degli effetti, analisi delle emozioni, estrazione di opinioni, eccetera.
Analisi del sentiment in Python
Sono disponibili molti pacchetti in Python che utilizzano metodi diversi per eseguire l'analisi del sentiment.. Nel prossimo articolo, esamineremo alcuni dei metodi e dei pacchetti più popolari:
1. Blob di testo
2. VADER
→ Blocco di testo:
Blob di testo L'analizzatore di sentimenti restituisce due proprietà per una determinata frase di input:
- La polarità è un galleggiante che si trova tra [-1,1], -1 indica un sentimento negativo e +1 indica sentimenti positivi.
- La soggettività è anche un galleggiante che è nel raggio di [0,1]. Le frasi soggettive generalmente si riferiscono a opinioni, emozioni o giudizi.
Vediamo come usare Textblob:
a partire dal blob di testo importare TestoBlob
test = TextBlob("Il film è stato fantastico!") Stampa(test.sentiment)
Textblob ignorerà le parole sconosciute, considera le parole e le espressioni a cui puoi distribuire gli estremi e i punti medi per ottenere l'ultimo punteggio.
→ VADER:
Usa un elenco di caratteristiche lessicali (ad esempio, una parola) che sono etichettati come positivi o negativi in base al loro orientamento semantico per calcolare il sentimento del testo. Il sentimento di Vader restituisce la probabilità che una data frase di input sia positiva, negativo e neutro.
Ad esempio:
“Il film è stato fantastico!!”
Positivo: 99%
Negativo: 1%
Neutro: 0%
Queste tre probabilità si sommano a 100%. Vediamo come usare VADER:
a partire dal padreSentiment.fatherSentiment importare SentimentIntensityAnalyzer analizzatore = SentimentIntensityAnalyzer() frase = "Il film è stato fantastico!" vs = analizzatore.polarity_scores(frase) Stampa"{:-<65} {}".formato(frase, str(vs))
Analisi del sentiment di VADER
Vader è ottimizzato per i dati dei social media e può produrre buoni risultati se utilizzato con i dati di Twitter, Facebook, eccetera. Poiché il risultato sopra mostra la polarità della parola e le sue probabilità di essere pos, neg neu e composto.
Ora, Chiarirò quanto sopra con l'aiuto del set di dati della locanda, vale a dire, il set di dati Hotel-Review, dove ci sono le opinioni dei clienti che hanno soggiornato nell'hotel.
Per riassumere il processo in modo molto semplice:
1) Pre-elaborazione dell'input nelle frasi o parole componenti.
2) Identifique y etiquete cada fichaIl "Token" es un término utilizado en diversos contextos, generalmente para referirse a un documento o tarjeta que contiene información específica sobre un tema, persona o producto. En ámbitos académicos, se utiliza para registrar datos relevantes sobre investigaciones o fuentes bibliográficas. En el ámbito empresarial, las fichas pueden ser herramientas útiles para organizar datos de clientes o productos, facilitando la gestión y el acceso a la información.... con un componente de la parte del discurso (vale a dire, sostantivo, verbo, determinanti, soggetto della frase, eccetera.).
3) Assegna un punteggio di sentimento di -1 un 1, dove -1 è per i sentimenti negativi, 0 come neutro e +1 è una sensazione positiva
4) Restituire punteggi e punteggi opzionali come punteggio composito, soggettività, eccetera. utilizzando due potenti strumenti Python: Textblob e VADER.
Blob di testo:
a partire dal nltk.sentiment.padre importare SentimentIntensityAnalyzer a partire dal nltk.sentiment.util importare * a partire dal blob di testo importare TestoBlob a partire dal nltk importare tokenizzare df = pd.read_csv('hotel-recensioni.csv') df.head()
Quella sopra è l'anteprima del set di dati del set di dati dell'hotel.
df.drop_duplicates(sottoinsieme ="Descrizione", mantieni = “primo”, posto = Vero) df['Descrizione'] = df['Descrizione'].come tipo('str') def get_polarity(testo): Restituzione TestoBlob(testo).sentimento.polarità df['Polarità'] = df['Descrizione'].applicare(get_polarity)
In sopra, usando il TestoBlob (testo) .sentiment.polariTe, generare polarità di sentimento.
df['Tipo_di_sentimento']='' df.loc[df.Polarità>0,'Tipo_di_sentimento']='POSITIVO' df.loc[df.Polarity==0,'Sentiment_Type']='NEUTRO' df.loc[df.Polarità<0,'Tipo_di_sentimento']='NEGATIVO'
Dopo il TestoBlob la polarità e il tipo di sentimento per ogni commento / descrizione ricevuta.
df.Sentiment_Type.value_counts().complotto(tipo='bar',titolo="Analisi del sentimento")
Al trazar el grafico a barreIl grafico a barre è una rappresentazione visiva dei dati che utilizza barre rettangolari per mostrare confronti tra diverse categorie. Ogni barra rappresenta un valore e la sua lunghezza è proporzionale ad esso. Questo tipo di grafico è utile per visualizzare e analizzare le tendenze, facilitare l'interpretazione delle informazioni quantitative. È ampiamente utilizzato in varie discipline, come le statistiche, Marketing e ricerca, Grazie alla sua semplicità ed efficacia.... para lo mismo, i sentimenti positivi sono più che negativi, che può generare comprensione poiché le persone sono soddisfatte del servizio.
VADER:
VADER (Valence Aware Dictionary e Sentiment Reasoner) è una libreria di analisi del sentiment open source basata su regole predefinite / lessici, protetto da licenza MIT.
importare nltk nltk.download('vader_lexicon') a partire dal nltk.sentiment.padre importare SentimentIntensityAnalyzer sid = SentimentIntensityAnalyzer()
Con VADER, usando il sid.polarity_scores (Descrizione)), generare polarità di sentimento.
df["punteggi"] = df['Descrizione'].applicare(lambda Descrizione: sid.polarity_scores(Descrizione)) df.head()
Dopo il VADER i punteggi che hanno pos, negativo, neu e composto.
df['composto'] = df["punteggi"].applicare(lambda score_dict: score_dict['composto']) df['tipo_sentimentale']='' df.loc[df.compound>0,'tipo_sentimentale']='POSITIVO' df.loc[df.compound==0,'tipo_sentiment']='NEUTRO' df.loc[df.compound<0,'tipo_sentimentale']='NEGATIVO'
Dopo il VADER il composto e il tipo di sentimento per ogni commento / descrizione ricevuta.
df.sentiment_type.value_counts().complotto(tipo='bar',titolo="analisi del sentimento")
Sia Textblob che Vader offrono una serie di funzioni; faresti meglio a provare a eseguire alcuni dati di esempio sul tuo tema per vedere quale funziona meglio per le tue esigenze. Quando si traccia il grafico a barre per lo stesso, i sentimenti positivi sono più che negativi, che può generare comprensione poiché le persone sono soddisfatte del servizio.
Spero che questo aiuti 🙂
Seguimi se ti piacciono i miei post. Per ulteriore aiuto, vedere il mio Github per Blob di testo e VADER.
Connettiti tramite LinkedIn https://www.linkedin.com/in/afaf-athar-183621105/
Buon apprendimento 😃