Сравнение двух групп с использованием сравнения облаков слов R - PullRequest
0 голосов
/ 14 октября 2018

Заранее спасибо за помощь.У меня есть файл CSV, в котором каждая строка является респондентом (n = 612), и я хотел бы сравнить текст, который состоит из ответов в предложениях между двумя столбцами, один из которых описывает хороший опыт против плохого опыта, используя облако слов сравнения,

 ##First I merged my response columns
 mydata2= mydata%>% 
 gather(response, text, Good, Bad)

mydata2$text <- sapply(mydata2$text,function(row) iconv(row, "latin1","ASCII", sub=""))

mydata2<-data.frame(mydata2)

## Calculate Corpus
docs<-Corpus(VectorSource(mydata2$text)) %>%
tm_map(removePunctuation) %>%
tm_map(removeNumbers) %>%
tm_map(tolower)  %>%
tm_map(removeWords, stopwords("english")) %>%
tm_map(stripWhitespace) %>%
tm_map(PlainTextDocument)

inspect(docs)

tdm <- TermDocumentMatrix(docs)  

Однако это не позволило бы мне сгенерировать tdm.Это лучший способ сравнения текстовых переменных в столбцах или мне следует создать два разных корпуса (один для хорошего и один для плохого) и сравнить их таким образом?

Спасибо

1 Ответ

0 голосов
/ 17 октября 2018

Если вы хотите сделать это в quanteda , вы должны:

  1. Создать корпус, используя corpus().
  2. Убедитесь, что он содержалпеременная документа (с использованием docvar <-), связывающая каждый документ с категорией настроения (хорошая или плохая).(Нет необходимости объединять их на этом этапе.)
  3. Создайте dfm и сгруппируйте вывод, используя аргумент groups = со значением, названным как ваш группирующий документ.
  4. Вызов textplot_wordcloud(yourdfm, comparison = TRUE)на dfm, созданном на предыдущем шаге.

Чтобы продемонстрировать это на воспроизводимом примере, используя встроенный объект data_corpus_inaugural corpus:

library("quanteda")
obama_trump_dfm <- data_corpus_inaugural %>%
    corpus_subset(President %in% c("Obama", "Trump")) %>%
    dfm(remove = stopwords("english"), remove_punct = TRUE, groups = "President") %>%
    dfm_trim(min_termfreq = 3)

textplot_wordcloud(obama_trump_dfm, comparison = TRUE, 
                   max_words = 100, color = c("blue", "red"))

enter image description here

В этом примере корпус помещен на свой документ President, чтобы выбрать только Обаму и Трампа;затем создается dfm с удаленными стоп-словами и пунктуацией и группируется в соответствии с президентом;и тогда слова с частотами меньше 3 удаляются.Затем этот dfm отправляется на textplot_wordcloud() с флагом сравнения, установленным на TRUE, и выводится максимум 100 слов.Цвета также установлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...