Получить значение all.polarity из результатов пакета qdap в R

Скриншот результата фрейма данныхЯ хотел провести сентиментальный анализ в R, используя пакет qdap. Он выдает кадр данных, содержащий all.all, all.wc, all.polarity, all.pos.words, all.neg.words и т. д.

Я хочу извлечь значения all.polarity, all.pos.words, all.neg.words, но когда я использую сентимент $ all.polarity или сентимент $ all.pos.words,

В результате получаю NULL.

dput (голова (настроение))

list(structure(list(all = c("all", "all", "all"), wc = c(44L, 
1L, 1L), polarity = c(-0.422115882408869, 0, 0), pos.words = list(
    "-", "-", "-"), neg.words = list(c("disappointed", "issue"
), "-", "-"), text.var = c("list(list(content = \"  misleaded  icici bank customer care  branch excutive    really disappointed   bank dont know  steps   take  get  issue fixed\", meta = list(author = character(0), datetimestamp = list(sec = 20.097678899765, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), heading = character(0), id = \"1\", language = \"en\", origin = character(0))))", 
"list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
"wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"), 
    structure(list(all = c("all", "all", "all"), wc = c(61L, 
    1L, 1L), polarity = c(0, 0, 0), pos.words = list("led", "-", 
        "-"), neg.words = list("expire", "-", "-"), text.var = c("list(list(content = \" didnt know   customer banking  icici   years will  led    people   looking  student travel card   staff  mg road     treat customers  tried  offer  card  wud expire  one year n told  get  new card  one year    dont know\", meta = list(author = character(0), datetimestamp = list(sec = 20.3989679813385, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), heading = character(0), id = \"1\", language = \"en\", origin = character(0))))", 
    "list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
    "wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"), 
    structure(list(all = c("all", "all", "all"), wc = c(58L, 
    1L, 1L), polarity = c(0, 0, 0), pos.words = list("top", "-", 
        "-"), neg.words = list("worst", "-", "-"), text.var = c("list(list(content = \"  asked   staff    can upgrade  platinum  coral card   documentation  fee will  involoved  even  receiving  card poeple sill keep calling   top      levied  rs joining fee    interested  paying     card  one   worst customer care   experienced\", meta = list(author = character(0), datetimestamp = list(sec = 20.648964881897, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), heading = character(0), id = \"1\", language = \"en\", \n    origin = character(0))))", 
    "list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
    "wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"), 
    structure(list(all = c("all", "all", "all"), wc = c(59L, 
    1L, 1L), polarity = c(-0.494717861727131, 0, 0), pos.words = list(
        "-", "-", "-"), neg.words = list(c("long time", "long time", 
    "disappointed"), "-", "-"), text.var = c("list(list(content = \" applied   credit card   corporate scheme long time back got  verification call also long time back initially   getting  least  response   executive  now    longer picking   call neither letting  know  status   application extremely disappointed   service\", meta = list(author = character(0), datetimestamp = list(sec = 20.8989698886871, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), heading = character(0), id = \"1\", \n    language = \"en\", origin = character(0))))", 
    "list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
    "wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"), 
    structure(list(all = c("all", "all", "all"), wc = c(66L, 
    1L, 1L), polarity = c(0.0246182981958665, 0, 0), pos.words = list(
        c("work", "support"), "-", "-"), neg.words = list("disappointed", 
        "-", "-"), text.var = c("list(list(content = \" otp service   working    used  work   month     decided  change everything im  getting  otp sms   registered mobile number ive tried contacting  customer support several times   keep asking   send  sms   despite  done  several times  several days  havent received  otps ever really disappointed\", meta = list(author = character(0), datetimestamp = list(sec = 21.1935319900513, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), \n    heading = character(0), id = \"1\", language = \"en\", origin = character(0))))", 
    "list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
    "wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"), 
    structure(list(all = c("all", "all", "all"), wc = c(50L, 
    1L, 1L), polarity = c(-0.282842712474619, 0, 0), pos.words = list(
        "-", "-", "-"), neg.words = list(c("pathetic", "lied"
    ), "-", "-"), text.var = c("list(list(content = \"  pathetic service  behavior  icici bank   facing  past  days icici executive lied  luring   upgrade  debit card terms  conditions  just opposite   booklet   received    told  phone\", meta = list(author = character(0), datetimestamp = list(sec = 21.4258019924164, min = 51, hour = 11, mday = 6, mon = 6, year = 115, wday = 1, yday = 186, isdst = 0), description = character(0), heading = character(0), id = \"1\", language = \"en\", origin = character(0))))", 
    "list()", "list()")), row.names = c(NA, -3L), .Names = c("all", 
    "wc", "polarity", "pos.words", "neg.words", "text.var"), class = "data.frame"))

Кто-нибудь может подсказать, как это сделать?


person Bitanshu Das    schedule 06.07.2015    source источник
comment
Пожалуйста, покажите некоторые воспроизводимые примеры данных. Рекомендации см. здесь   -  person akrun    schedule 06.07.2015
comment
Использование функции полярности пакета qdap для любого текста создает один и тот же фрейм данных.   -  person Bitanshu Das    schedule 06.07.2015
comment
Может быть, это так. Не могли бы вы обновить свой пост текстом?   -  person akrun    schedule 06.07.2015
comment
я пытался опубликовать скриншоты, но не имел необходимых привилегий   -  person Bitanshu Das    schedule 06.07.2015
comment
Пожалуйста, не публикуйте изображения, так как другим приходится вручную вводить их с изображений. Ссылка, которую я прокомментировал выше, дает идеи о публикации.   -  person akrun    schedule 06.07.2015
comment
Это результат после использования функции полярности   -  person Bitanshu Das    schedule 06.07.2015
comment
Я попробовал пример со страницы справки ?polarity. то есть poldat2 <- with(mraja1spl, polarity(dialogue,list(sex, fam.aff, died))), но это не дает all.poswords или all.neg.words. Можете ли вы показать код, который вы использовали, или если вы можете процитировать пример со страницы справки, было бы здорово   -  person akrun    schedule 06.07.2015
comment
Это был текстовый файл с именем data. Я использовал настроенность = полярность (данные) после удаления пробелов, стоп-слов, чисел и т. д. Выходная таблица показана на рисунке выше. Мне просто нужны негативные слова и полярность. Я использовал сентимент $ all.polarity, но это дало NULL.   -  person Bitanshu Das    schedule 06.07.2015
comment
Как я уже упоминал, я не получаю тот же вывод, что и пример на странице справки. Может быть лучше опубликовать вывод dput. то есть dput(head(sentiment))   -  person akrun    schedule 06.07.2015
comment
Можете ли вы попробовать head(sentiment[[1]][1]) Если вы получите all.all, то, вероятно, вы можете расширить его до sentiment[[1]][2] и т. д.   -  person akrun    schedule 06.07.2015
comment
head(sentiment[[1][3]]) работает. Спасибо   -  person Bitanshu Das    schedule 06.07.2015
comment
Вы можете опубликовать это как решение и закрыть это.   -  person akrun    schedule 06.07.2015
comment
Это список, а не фрейм данных. Используйте str, чтобы увидеть. Примеры дают больше информации о доступе к частям.   -  person Tyler Rinker    schedule 07.07.2015


Ответы (1)


Для меня работает следующее:

 library(qdap)

 text <- "I am liking the work "  # the text for which polarity score is needed

 sentiment <- polarity(text) #make the call 

 sentiment$all$pos.words # returns the positive words detected by the algo
 #[[1]]
 #[1] "liking" "work"  

 sentiment$all$polarity # returns the sentence polarity score 
 #[1] 0.8944272
person Indi    schedule 23.09.2016
comment
Или, по крайней мере, немного вывода - person sebastian-c; 23.09.2016