exponenta event banner

vaderSentimentScores

Оценки настроений с помощью алгоритма VADER

Описание

Использовать vaderSentimentScores для оценки настроений в маркированном тексте с помощью алгоритма Valence Aware Dictionary and Sentement Reasoner (VADER). vaderSentimentScores по умолчанию функция использует лексикон настроения VADER и списки слов-модификаторов.

Функция поддерживает только английский текст.

пример

compoundScores = vaderSentimentScores(documents) возвращает оценки настроений для токенизированных документов. Функция вычисляет составные оценки, агрегируя индивидуальные оценки маркеров, скорректированные в соответствии с правилами алгоритма и затем нормализованные между -1 и 1. Функция отбрасывает все токены с одним символом, не присутствующим в лексиконе настроения.

compoundScores = vaderSentimentScores(documents,Name,Value) задает дополнительные параметры, использующие одну или несколько пар имя-значение.

пример

[compoundScores,positiveScores,negativeScores,neutralScores] = vaderSentimentScores(___) также возвращает соотношения для пропорций документов, которые являются положительными, отрицательными и нейтральными, соответственно, используя любой из предыдущих синтаксисов.

Примеры

свернуть все

Создание маркированного документа.

str = [
    "The book was VERY good!!!!"
    "The book was not very good."];
documents = tokenizedDocument(str);

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

compoundScores = vaderSentimentScores(documents)
compoundScores = 2×1

    0.7264
   -0.3865

Алгоритмы анализа настроений, такие как VADER, основаны на аннотированных списках слов, называемых лексиконами настроений. Например, VADER использует лексикон настроений со словами, аннотированными с оценкой настроений в диапазоне от -1 до 1, где оценки, близкие к 1, указывают на сильные положительные настроения, оценки, близкие к -1, указывают на сильные негативные настроения, а оценки, близкие к нулю, указывают на нейтральные настроения.

Чтобы проанализировать настроения текста с помощью алгоритма VADER, используйте vaderSentimentScores функция. Если лексикон настроения, используемый vaderSentimentScores функция не подходит для анализируемых данных, например, если у вас есть набор данных, специфичный для домена, такой как медицинские или инженерные данные, то вы можете использовать свой собственный лексикон настроений. Пример создания лексикона настроений для конкретного домена см. в разделе Создание лексикона настроений для конкретного домена.

Создание маркированного массива документов, содержащего текстовые данные для анализа.

textData = [ 
    "This company is showing extremely strong growth."
    "This other company is accused of misleading consumers."];
documents = tokenizedDocument(textData);

Загрузите пример специфического для домена лексикона для финансовых данных.

filename = "financeSentimentLexicon.csv";
tbl = readtable(filename);
head(tbl)
ans=8×2 table
          Token          SentimentScore
    _________________    ______________

    {'opportunities'}       0.95633    
    {'innovative'   }       0.89635    
    {'success'      }       0.84362    
    {'focused'      }       0.83768    
    {'strong'       }       0.81042    
    {'capabilities' }       0.79174    
    {'innovation'   }       0.77698    
    {'improved'     }       0.77176    

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

compoundScores = vaderSentimentScores(documents,'SentimentLexicon',tbl)
compoundScores = 2×1

    0.2740
   -0.1112

Входные аргументы

свернуть все

Исходные документы, указанные как tokenizedDocument массив.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'Boosters',["verry" "verrry"] определяет использование бустеров «verry» и «verrrry».

Лексикон настроения, указанный в виде таблицы со следующими столбцами:

  • Token - токен, указанный как строковый скаляр. Маркеры должны быть строчными.

  • SentimentScore - Оценка чувствительности токена, заданная как числовой скаляр.

При оценке настроений программное обеспечение по умолчанию игнорирует маркеры одним символом и заменяет эмодзи эквивалентным текстовым описанием перед вычислением оценок настроений. Например, программа заменяет экземпляры эмодзи «» текстом «grinning face», а затем оценивает оценки настроений. Если вы предоставляете токены с одним символом или эмодзи с соответствующими оценками настроения в SentimentLexicon, то функция не удаляет и не заменяет эти маркеры.

Лексикон настроения по умолчанию - это лексикон настроения VADER.

Типы данных: table

Список бустерных слов или n-граммов, указанный как строковый массив.

Функция использует бустер n-грамм, чтобы повысить настроение последующих токенов. Например, такие слова, как «абсолютно» и «поразительно».

Для списка слов список должен быть вектором столбца. Для списка n-граммов список имеет размер NumNgramsоколо-maxN , где NumNgrams - число n-граммов, и maxN - длина наибольшего n-грамма. (i,j)третьим элементом списка является jпятое слово iН-грамм. Если количество слов в in-грамм меньше maxN, то остальные записи iТретья строка списка пусты.

Бустерный n-грамм должен быть строчным.

Список бустерных n-граммов по умолчанию - это список бустерных бустеров VADER.

Типы данных: string

Список слов демпфера или n-граммов, указанный как строковый массив.

Функция использует гаситель n-граммов для ослабления настроений последующих жетонов. Например, такие слова, как «вряд ли» и «несколько».

Для списка слов список должен быть вектором столбца. Для списка n-граммов список имеет размер NumNgramsоколо-maxN , где NumNgrams - число n-граммов, и maxN - длина наибольшего n-грамма. (i,j)третьим элементом списка является jпятое слово iН-грамм. Если количество слов в in-грамм меньше maxN, то остальные записи iТретья строка списка пусты.

Гаситель n-граммов должен быть строчным.

Список n-граммов демпфера по умолчанию - это список бустеров VADER.

Типы данных: string

Список слов отрицания, указанный как строковый массив.

Функция использует слова отрицания, чтобы свести на нет настроения последующих токенов. Например, такие слова, как «нет» и «нет».

Слова отрицания должны быть строчными.

Список слов отрицания по умолчанию - это список отрицания VADER.

Типы данных: string

Выходные аргументы

свернуть все

Составные оценки настроений, возвращенные в виде числового вектора. Функция возвращает один балл для каждого документа ввода. Стоимость compoundScores(i) соответствует смешанной оценке настроения documents(i).

Функция определяет составные оценки, агрегируя индивидуальные оценки маркеров, корректирует их в соответствии с правилами алгоритма VADER, а затем нормализует их между -1 и 1.

Положительные оценки настроений, возвращенные в виде числового вектора. Функция возвращает один балл для каждого документа ввода. Стоимость positiveScores(i) соответствует положительной оценке настроения documents(i).

Отрицательные оценки настроений, возвращенные в виде числового вектора. Функция возвращает один балл для каждого документа ввода. Стоимость negativeScores(i) соответствует отрицательной оценке настроения documents(i).

Нейтральные оценки настроений, возвращенные в виде числового вектора. Функция возвращает один балл для каждого документа ввода. Стоимость neutralScores(i) соответствует баллу нейтральных настроений documents(i).

Ссылки

[1] Хатто, Клейтон Дж. и Эрик Гильберт. «Вейдер: Модель на основе правил для анализа настроений в социальных сетях». В восьмой международной конференции AAAI по блогам и социальным медиа. 2014.

Представлен в R2019b