Sentiment analysis

Boas.

Sou um principiante em matéria de R, mas gostaria da vossa ajuda para a construção de algumas linhas de código.

Com alguma ajuda, construí este código para a analisar comentários das redes sociais:

setwd(“C:/Users/Utilizador/Desktop/teste”)
df <- read.csv(“comments.csv”, sep = “;”, stringsAsFactors = FALSE)
library(sentimentr)
df$sentimentscore <- 0
for (i in 1:nrow(df)) {
df[i,]$sentimentscore <- sentiment_by(df[i,1])$ave_sentiment
}
write.csv2(df, file=“output.csv”, row.names=FALSE)

O que pretendia agora era criar as linhas de código que indicassem a contagem de palavras dos diversos comentários.

Poderiam ajudar?

Obrigado!

1 curtida

Supermassive, boas!!!

Eu sugiro você colocar esse livro https://www.tidytextmining.com/tidytext.html debaixo do braço e ir devorando ele.

Um pedaço de código que faz contagens de palavra:

library(tidytext)
library(dplyr)

text <- c("Because I could not stop for Death -",
          "He kindly stopped for me -",
          "The Carriage held but just Ourselves -",
          "and Immortality")

text_df <- tibble(line = 1:4, text = text)

text_df %>%
  unnest_tokens(word, text) %>%
  count(word, sort = TRUE)

vai falando!

1 curtida

Muito bom!

Obrigado pela dica :wink:

O meu problema com o código que enviou é que eu tenho cerca de 4000 comentários para analisar.
É impraticável ter de colar todos os comentários na folha de texto…

Há alguma forma de o R ir beber o conteúdo ao ficheiro em CSV e indicar posteriormente a contagem de palavras da mesma forma que o seu código fez?

Obrigado!

ah, sim!

Mas daí teria que substituir o vetor de textos que eu usei no exemplo por um código que carrega os textos que estao no seu csv. Tipo assim:

library(tidytext)
library(dplyr)
text_df <- read.csv(“comments.csv”, sep = “;”, stringsAsFactors = FALSE)

text_df %>%
  unnest_tokens(word, text) %>%
  count(word, sort = TRUE)

Obrigado!

Quando corro a linha

Surge o erro:
Error in check_input(x) :
Input must be a character vector of any length or a list of character
vectors, each of which has a length of 1.

Como corrigir este erro?

Supermassive,

Quais são os nomes das colunas do seu text_df? provavelmente vc não tem uma coluna chamada text. No lugar do text você precisa colocar o nome da coluna que contem os textos.

Olá, dfalbel.

Coloquei o nome de text na coluna do ficheiro CSV e resultou!
Obrigado!

No entanto, apenas aparecem os primeiros 10 resultados das palavras mais frequentes.

Há maneira de ver todos os resultados?

vc pode salvar o resultado:

results <- text_df %>%
  unnest_tokens(word, text) %>%
  count(word, sort = TRUE)

e depois rodar para ver tudo

View(results)
1 curtida

Brilhante!

Obrigado a ambos!

Está na altura de me inscrever nos vossos cursos para começar a entender melhor esta linguagem :wink:

Até breve.

Abraços

2 curtidas