Analiza sentymentu

Analiza sentymentu to proces określenia, czy dany tekst jest pozytywny, neutralny czy negatywny. Jest to ważny krok w procesie przetwarzania języka naturalnego, ponieważ pozwala na automatyzację oceny nastrojów wyrażanych w tekście i ułatwienie dalszych analiz.

Do analizy sentymentu w języku Python możemy użyć narzędzi takich jak nltk (Natural Language Toolkit) lub spacy. Obie te biblioteki oferują szerokie możliwości przetwarzania języka naturalnego, w tym analizy sentymentu.

Aby użyć nltk do analizy sentymentu, należy najpierw zainstalować bibliotekę i zaimportować odpowiednie narzędzie:

import nltk

nltk.download('vader_lexicon')

from nltk.sentiment.vader import SentimentIntensityAnalyzer

analyzer = SentimentIntensityAnalyzer()

# analiza sentymentu dla pojedynczego tekstu
text = "I love going to the beach in the summer!"
scores = analyzer.polarity_scores(text)
print(scores)  # wynik: {'neg': 0.0, 'neu': 0.193, 'pos': 0.807, 'compound': 0.6369}

# analiza sentymentu dla kolumny z tekstem w DataFrame pandas
import pandas as pd

df = pd.DataFrame({'text': ['I love going to the beach in the summer!',
                             'I hate going to the beach in the summer!',
                             'The weather is nice today.']})
df['sentiment'] = df['text'].apply(lambda x: analyzer.polarity_scores(x)['compound'])
print(df)

W wyniku tego kodu otrzymamy DataFrame z kolumną ‘sentiment’, która zawiera ocenę sentymentu dla każdego tekstu.

Aby użyć spacy do analizy sentymentu, należy najpierw zainstalować bibliotekę i zaimportować odpowiednie narzędzie:

import spacy

nlp = spacy.load('en_core_web_sm')

# analiza sentymentu dla pojedynczego tekstu
text = "I love going to the beach in the summer!"
doc = nlp(text)
print(doc.sentiment)  # wynik: 0.9

# analiza sentymentu dla kolumny z tekstem w DataFrame pandas
import pandas as pd

df = pd.DataFrame({'text': ['I love going to the beach in the summer!',
                             'I hate going to the beach in the summer!',
                             'The weather is nice today.']})
df['sentiment'] = df['text'].apply(lambda x: nlp(x).sentiment)
print(df)

W przypadku spacy, ocena sentymentu jest przedstawiona jako liczba z przedziału od -1 (negatywny sentyment) do 1 (pozytywny sentyment).

Obydwa narzędzia, nltk oraz spacy, umożliwiają łatwe i szybkie przeprowadzenie analizy sentymentu w tekście. Możliwość integracji z biblioteką pandas pozwala na łatwe przetwarzanie dużych zbiorów danych i wizualizację wyników. Analiza sentymentu jest przydatna w wielu zastosowaniach, takich jak ocena opinii na temat produktów lub usług, monitorowanie nastrojów w social media czy też badanie reakcji na różne wydarzenia.