Сочетание качественных пользовательских данных с результатами анализа текста

У меня есть пары данных отзывов клиентов в CSV, обозначающие, рекомендовал ли клиент полученную услугу (1 или 0), «rec» и связанный комментарий «comment». Я пытаюсь сравнить отзывы клиентов между теми, кто рекомендовал услугу, и теми, кто этого не сделал.

Я использовал пакет tm, чтобы просто прочитать все строки в CSV с комментариями only и выполнить дополнительный анализ текста для всех комментариев, что сработало:

>file_loc <- "C:/Users/..(etc)...file.csv"    
x <- read.csv(file_loc, header = TRUE)   
require(tm)   
fdbk <- Corpus(DataframeSource(x))

Теперь я пытаюсь сравнить комментарии тех клиентов, которые рекомендуют, и тех, кто не делает, включая столбец "rec", но мне не удалось создать корпус из одного столбца CSV - я пробовал следующее:

>file_loc <- "C:/Users/..(etc)...file.csv"    
x <- read.csv(file_loc, header = TRUE)   
require(tm)   
fdbk <- Corpus(DataframeSource(x$comment))

Но я получаю сообщение об ошибке

"Error in if (vectorized && (length <= 0))
stop("vectorized sources must have positive length") : 
missing value where TRUE/FALSE needed"

Я также пытался привязать коды «rec» к комментариям после создания тематической модели, но некоторые комментарии в конечном итоге фильтруются функцией «topic», поэтому столбец «rec» длиннее, чем количество документов в результирующей тематической модели.

Если это что-то, что я могу просто сделать с пакетом tm? Я вообще не работал с пакетом qdap, но подходит ли он здесь?


person user2407054    schedule 05.08.2013    source источник
comment
Что произойдет, если вы попробуете VectorSource вместо DataframeSource?   -  person Ben    schedule 05.08.2013
comment
VectorSource будет считывать один столбец, но у меня все еще есть та же проблема: мой окончательный список документов после того, как функция тем короче, чем первоначально связанный столбец записи, т.е. я получаю сообщение Длина членства в вашей группе не соответствует омеге.   -  person user2407054    schedule 05.08.2013
comment
Можете ли вы опубликовать свои данные или некоторые примеры данных? И уточните, что именно вы имеете в виду под «сравнить»? Что именно вы хотите здесь сделать?   -  person Ben    schedule 05.08.2013
comment
Данные представляют собой два столбца в формате CSV, которые выглядят следующим образом:   -  person user2407054    schedule 05.08.2013
comment
Отредактируйте свой вопрос и вставьте head(dput(x))   -  person Ben    schedule 05.08.2013
comment
Данные представляют собой два соседних столбца в CSV, один столбец rec, который содержит всего одну цифру в ячейке, например. 1,0,1,0,0,1,1,1 и т. д., а комментарий во втором столбце — это просто одна короткая фраза на ячейку, например. Отличный опыт, у меня были проблемы с поиском местоположения и т. Д.   -  person user2407054    schedule 05.08.2013
comment
Так в чем собственно вопрос? Вы упоминаете что-то о тематической модели... что именно вы хотите сделать с comments$rec и вашей тематической моделью. Попробуйте удалить этот вопрос и задать другой, более целенаправленный и конкретный вопрос с воспроизводимым примером.   -  person Ben    schedule 05.08.2013
comment
Извините, что не очень хорошо объяснил. Например, я хотел бы иметь возможность кодировать мою модель темы цветом в зависимости от того, рекомендовал ли клиент услугу или нет, чтобы визуализировать разницу в темах/тенденциях между этими двумя группами, но я не могу этого сделать, если у меня нет 0/1 рекомендуют кодировать в паре с каждым комментарием на протяжении всего процесса. Тем не менее, я могу задать другой вопрос, показывающий все это более четко.   -  person user2407054    schedule 06.08.2013
comment
Пожалуйста, сделай! Я буду следить за этим. Чем больше усилий и конкретики вы включите в свой вопрос, тем быстрее и полезнее будут ответы.   -  person Ben    schedule 07.08.2013


Ответы (1)


... как Бен упомянул:

vec <- as.character(x[,"place of comments"])
Corpus(VectorSource(vec))

возможно, какой-то идентификатор клиента в качестве метаданных был бы хорош...

чт

person holzben    schedule 05.08.2013