Преобразовать переменную во фрейме данных в матрицу терминальных документов - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть фрейм данных, который содержит параграфы, которые я хотел бы выполнить для скрытого распределения Дирихле.Для этого мне нужно создать матрицу терминальных документов.Этот пример кода показывает ошибку:

library(qdap)
library(topicmodels)

remove(list=ls())
doc <- c(1,2,3,4)
text <- c("The Quick Brown Fox Jumped Over The Lazy Dog",
        "The Cow Jumped Over The Moon",
        "Moo, Moo, Brown Cow Have You Any Milk",
        "The Fox Went Out One Moonshiny Night")
works.df <- data.frame(doc,text)

works.tdm <- as.tdm(text.var = works.df$text,  grouping.var = works.df$doc)
works.lda <- LDA(works.tdm, k = 2, control = list(seed = 1234))

, где

works.tdm <- as.tdm (text.var = works.df $ text, grouping.var = works.df $ doc) Ошибка в .TermDocumentMatrix (x, взвешивание): отсутствует аргумент «взвешивание» без значения по умолчанию </p>

Я думал, что получу разреженную матрицу, где, например:термин «the» появляется в документах 1 (с частотой 2), 2 (с частотой 2) и 4 (с частотой 1);термин «корова» появляется в документах 2 и 3 (обе частоты 1);...

Чен, кто-нибудь посоветует, чего не хватает или есть ли лучший способ решить мою задачу?Благодарю.

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Похоже, мне нужно было сначала превратиться в корпус и использовать более распространенный, DocumentTermMatrix ()

> remove(list=ls())
> doc<-c(1,2,3,4)
> text<-c("The Quick Brown Fox Jumped Over The Lazy Dog",
+         "The Cow Jumped Over The Moon",
+         "Moo, Moo, Brown Cow Have You Any Milk",
+         "The Fox Went Out One Moonshiny Night")
> works.df<-data.frame(doc,text)
> corp <- VCorpus(VectorSource(works.df$text))
> works.tdm <- DocumentTermMatrix(corp, control=list(weighting=weightTf))
> works.tdm
<<DocumentTermMatrix (documents: 4, terms: 20)>>
Non-/sparse entries: 27/53
Sparsity           : 66%
Maximal term length: 9
Weighting          : term frequency (tf)
> as.matrix(works.tdm)
    Terms
Docs any brown cow dog fox have jumped lazy milk moo, moon moonshiny night one out over quick the went
   1   0     1   0   1   1    0      1    1    0    0    0         0     0   0   0    1     1   2    0
   2   0     0   1   0   0    0      1    0    0    0    1         0     0   0   0    1     0   2    0
   3   1     1   1   0   0    1      0    0    1    2    0         0     0   0   0    0     0   0    0
   4   0     0   0   0   1    0      0    0    0    0    0         1     1   1   1    0     0   1    1
    Terms
Docs you
   1   0
   2   0
   3   1
   4   0

0 голосов
/ 26 февраля 2019

Вам необходимо указать вес, так как R запросов:

library(tm)
works.tdm <- as.tdm(text.var = works.df$text,  grouping.var = works.df$doc, weighting = weightTf)
...