exponenta event banner

ratioSentimentScores

Оценки настроений с правилом соотношения

Описание

Использовать ratioSentimentScores оценить настроения в токенизированном тексте с помощью правила соотношения. ratioSentimentScores функция по умолчанию использует лексикон настроения VADER.

пример

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

[compoundScores,positiveScores,negativeScores] = ratioSentimentScores(documents) также возвращает суммы положительных и отрицательных оценок маркеров документов соответственно.

пример

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

Примеры

свернуть все

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

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

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

compoundScores = ratioSentimentScores(documents)
compoundScores = 2×1

     1
    -1

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

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

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

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    

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

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

     1
    -1

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

свернуть все

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

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

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

Пример: Threshold,0.5 устанавливает порог отношения 0,5

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

  • Token - токен, указанный как строковый скаляр.

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

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

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

Порог отношения, заданный как неотрицательный скаляр.

Если отношение положительного балла к отрицательному баллу documents(i) больше, чем Threshold, то compoundScores(i) равно 1. Если отношение отрицательного балла к положительному баллу documents(i) больше, чем Threshold, то compoundScores(i) равно -1. В противном случае compoundScores(i) равно 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

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

Если отношение положительного балла к отрицательному баллу documents(i) больше, чем Threshold, то compoundScores(i) равно 1. Если отношение отрицательного балла к положительному баллу documents(i) больше, чем Threshold, то compoundScores(i) равно -1. В противном случае compoundScores(i) равно 0.

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

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

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