Я не мог найти никаких предыдущих вопросов, размещенных на этом, так что, возможно, вы можете помочь.R: tm package, aggregate/join docs
Что такое хороший способ агрегирования данных в tm corpus на основе метаданных (например, совокупные тексты разных авторов)?
Есть по крайней мере два очевидных способа это может быть сделано:
- Встроенная функция в тм, что позволило бы DocumentTermMatrix быть построен на функции метаданных. К сожалению, я не смог раскрыть это.
- Способ объединения документов внутри корпуса на основе некоторых внешних метаданных в таблице. Он просто использовал метаданные для замены идентификаторов документов.
Таким образом, вы бы таблица, которая содержит: DocumentId, AUTHORNAME
И тм встроенного корпус, который содержит некоторое количество документов. Я понимаю, что нетрудно представить таблицу как метаданные для объекта corpus.
Матрица может быть построена со следующей функцией.
library(tm) # version 0.6, you seem to be using an older version
corpus <-Corpus(DirSource("/directory-with-texts"),
readerControl = list(language="lat"))
metadata <- data.frame(DocID, Author)
#A very crude way to enter metadata into the corpus (assumes the same sequence):
for (i in 1:length(corpus)) {
attr(corpus[[i]], "Author") <- metadata$Author[i]
}
a_documenttermmatrix_by_DocId <-DocumentTermMatrix(corpus)
Как бы вы построили матрицу, которая показывает частоты для каждого автора, возможно, для объединения нескольких документов вместо документов? Было бы полезно сделать это только на этом этапе, а не в пост-обработке с несколькими терминами.
a_documenttermmatrix_by_Author <- ?
Большое спасибо!