Анализируйте чувство в тексте

В этом примере показано, как использовать Валентность Осведомленный Словарь и чувство Reasoner (VADER) алгоритм для анализа мнений.

Алгоритм VADER использует список аннотируемых слов (словарь чувства), где каждое слово имеет соответствующий счет чувства. Алгоритм VADER также использует списки слов, которые изменяют множество продолжающих слов в тексте:

  • Усилители – слова или N-граммы, которые повышают чувство продолжающих лексем. Например, слова как "абсолютно" и "удивительно".

  • Демпферы – слова или N-граммы, которые ослабляют чувство продолжающих лексем. Например, слова как "едва" и "несколько".

  • Отрицание – слова, которые инвертируют чувство продолжающих лексем. Например, слова как "не" и "не".

Чтобы оценить чувство в тексте, используйте vaderSentimentScores функция.

Загрузка данных

Извлеките текстовые данные в файле weekendUpdates.xlsx использование readtable. Файл weekendUpdates.xlsx содержит обновления статуса, содержащие хэш-теги "#weekend" и "#vacation".

filename = "weekendUpdates.xlsx";
tbl = readtable(filename,'TextType','string');
head(tbl)
ans=8×2 table
    ID                                        TextData                                     
    __    _________________________________________________________________________________

    1     "Happy anniversary! ❤ Next stop: Paris! ✈ #vacation"                             
    2     "Haha, BBQ on the beach, engage smug mode!   ❤  #vacation"                 
    3     "getting ready for Saturday night  #yum #weekend "                           
    4     "Say it with me - I NEED A #VACATION!!! ☹"                                       
    5     " Chilling  at home for the first time in ages…This is the life!  #weekend"
    6     "My last #weekend before the exam  ."                                        
    7     "can’t believe my #vacation is over  so unfair"                                
    8     "Can’t wait for tennis this #weekend  "                                  

Создайте массив маркируемых документов из текстовых данных и просмотрите первые несколько документов.

str = tbl.TextData;
documents = tokenizedDocument(str);
documents(1:5)
ans = 
  5x1 tokenizedDocument:

    11 tokens: Happy anniversary ! ❤ Next stop : Paris ! ✈ #vacation
    16 tokens: Haha , BBQ on the beach , engage smug mode !   ❤  #vacation
     9 tokens: getting ready for Saturday night  #yum #weekend 
    13 tokens: Say it with me - I NEED A #VACATION ! ! ! ☹
    19 tokens:  Chilling  at home for the first time in ages … This is the life !  #weekend

Оцените чувство

Оцените чувство маркируемых документов с помощью vaderSentimentLexicon функция. Баллы близко к 1 указывают на положительное чувство, баллы близко к-1 указывают на отрицательное чувство, и баллы близко к 0 указывают на нейтральное чувство.

compoundScores = vaderSentimentScores(documents);

Просмотрите множество первых нескольких документов.

compoundScores(1:5)
ans = 5×1

    0.4738
    0.9348
    0.6705
   -0.5067
    0.7345

Визуализируйте текст с положительным и отрицательным чувством в облаках слова.

idx = compoundScores > 0;
strPositive = str(idx);
strNegative = str(~idx);

figure
subplot(1,2,1)
wordcloud(strPositive);
title("Positive Sentiment")

subplot(1,2,2)
wordcloud(strNegative);
title("Negative Sentiment")

Figure contains objects of type wordcloud. The chart of type wordcloud has title Positive Sentiment. The chart of type wordcloud has title Negative Sentiment.

Смотрите также

| |

Похожие темы