передача значения из searchTwitter со значением textInput в get_nrc_sentiment - PullRequest
0 голосов
/ 10 ноября 2018

Я планирую создать онлайновый анализатор настроений в Твиттере, чтобы пользователь мог ввести поисковый запрос самостоятельно, используя flexdashboard. Вот код.

#Getting search term
textInput("data", label = "Enter search term", value = "", width = NULL, placeholder = NULL)
sliderInput("maxTweets", "Number of recent tweets to use for analysis:", min = 10, max = 1000, value = 500)
actionButton("enter", label = "Enter")

twt <- reactive({
  if(input$enter!=0){
      isolate({
        twt <- searchTwitter(input$data, n=input$maxTweets, lang = "en", resultType = "recent")
      })
    }
  })

#print tweets searched
twt

Вот проблема. Когда я запускаю приведенный ниже код, произошла ошибка «Ошибка в get_nrc_sentiment: данные должны быть символьным вектором». Я пробовал map_chr и as.character раньше, но у меня нет столбца для выбора.

#Get sentiment 
s <- reactive({
  s<- get_nrc_sentiment(twt())
  })

#Print output
s 

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Это мой ответ.

```{r}
#Getting search term
textInput("data", label = "Enter search term", value = "")
actionButton("enter", label = "Enter")

twt <- reactive({
  if(input$enter!=0){
      isolate({
        return(search_tweets(input$data, n=100, lang = "en", include_rts = FALSE))
      })
    }
  })
```  

````{r}
#Get sentiment score of tweets
s <- reactive({
  return(get_nrc_sentiment(twt()$text))
  })
#Print sentiment score
renderTable(head(s()))
```
0 голосов
/ 13 ноября 2018

Как уже упоминалось в моем комментарии, я настоятельно рекомендую перейти на rtweet , как указано на странице twitteR Github :

Это начало относительно неторопливого периода устаревания для twitteR, в пользу использования rtweet. Пожалуйста, начните искать, чтобы переключиться на этот пакет. Если у вас есть какие-либо вопросы, свяжитесь со мной или @ mkearney

Последний коммит в этом хранилище был 2 года назад.

Если вы хотите использовать twitteR, тем не менее.

twt <- searchTwitter(input$data, n=100, lang = "en", resultType = "recent")
twt <- twiListToDF(twt) # turn data.frame into a list
twt$text <- as.character(twt$text) # ensure it's a character vector

class(twt)
class(twt$text)

syuzhet::get_nrc_sentiment(txt$text)

Вы должны были убедиться, что это 1) вектор 2) типа символа

syuzhet::get_nrc_sentiment(as.factor(c("Hello", "World")))
#> Error in syuzhet::get_nrc_sentiment(as.factor(c("Hello", "World"))) : 
  Data must be a character vector.
syuzhet::get_nrc_sentiment(list("Hello", "World"))
#> Error in syuzhet::get_nrc_sentiment(list("Hello", "World")) : 
  Data must be a character vector.
...