Вот мой код, который я использовал для создания объекта termdocumentmatrix для обучающих данных:
text_train = iconv(data_train$SentimentText, "UTF-8", "ASCII", sub = "")
corpus_train = Corpus(VectorSource(text_train))
tdm_train = TermDocumentMatrix(
corpus_train,
control = list(
removePunctuation = TRUE,
removestopWords = TRUE,
stemming = FALSE,
removeNumbers = TRUE,
tolower = TRUE,
weighting = weightTfIdf)
)
и это работает! к машинам претензий нет.
ОДНАКО, когда я использую ТАКОЙ ЖЕ метод для создания набора данных для проверки, машина жалуется!
вот мой код, который я использовал для создания объекта termdocumentmatrix для набора валидаторов. обратите внимание, что ЕДИНСТВЕННАЯ разница в том, что я добавил аргумент «словарь» в элемент управления:
text_val = iconv(data_val$SentimentText, "UTF-8", "ASCII", sub = "")
corpus_val = Corpus(VectorSource(text_val))
tdm_val = TermDocumentMatrix(
corpus_val,
control = list(
removePunctuation = TRUE,
removestopWords = TRUE,
stemming = FALSE,
removeNumbers = TRUE,
tolower = TRUE,
weighting = weightTfIdf,
dictionary = tdm_train$dimnames$Terms
)
)
однако я продолжаю получать следующее сообщение об ошибке:
Ошибка в simple_triplet_matrix(i = i, j = j, v = as.numeric(v), nrow = length(allTerms), : 'i, j, v' разной длины
Я прочитал много сообщений, в том числе:
- DocumentTermMatrix завершается со странной ошибкой только тогда, когда # терминов › 3000
- Анализ данных Twitter — ошибка в матрице терминального документа
- данные Twitter ‹- ошибка в termdocumentmatrix
- Анализ данных Twitter — ошибка в матрице терминального документа
и я попробовал ВСЕ предложенные ими решения, но ни одно из них не работает.
одно примечание, которое я хотел бы добавить, заключается в том, что проблема возникает только тогда, когда я использую более 2000 твитов.
примечание о входных данных:
входные данные — это таблица данных с двумя столбцами, один из которых называется «SentimentText» (который вы видите в моем коде выше).
в этом столбце каждая строка представляет собой один твит, а каждый твит представляет собой текстовую строку, также известную как character().
пример твита, он же строка данных, выглядит так: «у меня сегодня был такой замечательный день! :>»
любая помощь очень ценится!