Ошибка при импорте данных CSV в R для интеллектуального анализа текста - PullRequest
0 голосов
/ 20 мая 2019

Я получаю эту ошибку, когда пытаюсь импортировать документ CSV в R и пытаюсь разработать корпус для моделирования тем. Я успешно использовал этот подход в 4 других проектах, но не могу обойти эту ошибку. Мой источник данных имеет столбец doc_id и текстовый столбец. Ошибка Ошибка:

all (! Is.na (match (c ("doc_id", "text"), names (x)))) не TRUE

Я пытался импортировать, используя несколько разных предложений, таких как Ошибка при использовании VCorpus пакета TM в R

file_loc <- "C:\\Users\\mdlawrence\\Desktop\\Test2.csv "

 x <- read.csv(file_loc, header = TRUE, stringsAsFactors = F)

 require(tm)
 Loading required package: tm

 Loading required package: NLP

 corp <- Corpus(DataframeSource(x))

Ошибка: все (! Is.na (match (c ("doc_id", "text"), имена (x)))) не TRUE

docs <- DocumentTermMatrix(corp)

Ошибка в TermDocumentMatrix (x, control): объект 'corp' не найден

Я ожидаю увидеть корпус с одним документом на строку в файле .csv. Любые предложения приветствуются.

1 Ответ

1 голос
/ 20 мая 2019

Это проблема с именами столбцов. Предоставленные вами dput также показывают это (X.doc_id) и (X.text). Таким образом, выполнение следующего выдает ту же ошибку, что и вы.

x <- structure(list(X.doc_id. = c("1A", "2A"), 
                    X.text. = c("I think a conversation needs to be had to bring all employee groups up to the same … 0 feet" )),
               .Names = c("X.doc_id.", "X.text."), class = "data.frame", row.names = c(NA, -10L))


library(tm)
VCorpus(DataframeSource(x))

Ошибка в наследовании (x, "Source"): все (! Is.na (match (c ("doc_id", "текст"), имена (х)))) не ИСТИНА

Выполнение следующего дает правильный результат, который вы ищете.

colnames(x) <- c("doc_id", "text") 
library(tm)
Y <- VCorpus(DataframeSource(x))
Y

<> Метаданные: специфичные для корпуса: 0, уровень документа (проиндексированный): 0 Содержание: документы: 10

Продолжительность:

content(Y)
content(Y[[1]])

Дает:

content (Y [[1]]) [1] «Я думаю, что необходимо провести разговор, чтобы привести все группы сотрудников к одинаковым ... 0 футам»

Создание documenttermmatrix:

dtm <- DocumentTermMatrix(Y)
dtm

<> Не / разреженные записи: 11/99 Sparity: 90% Максимальная длина члена: 12 Взвешивание
: частота термин (тс)

Где-то в вашем коде или при загрузке данных у вас могут быть повторяющиеся имена столбцов, и при чтении данных автоматически создается столбец X.doc_id, чтобы предотвратить повторяющиеся имена столбцов.

...