我正在尝试使用R中的topicmodels包运行LDA。本手册中给出的示例使用了Associated Press数据,效果很好。但是,当我在自己的数据上尝试时,我得到的术语是文档名称。我已经将问题追溯到这样一个事实,即我的术语文档矩阵应该是(行 - >列)的转置。
示例TDM:
str(AssociatedPress)
List of 6
$ i : int [1:302031] 1 1 1 1 1 1 1 1 1 1 ...
$ j : int [1:302031] 116 153 218 272 299 302 447 455 548 597 ...
$ v : int [1:302031] 1 2 1 1 1 1 2 1 1 1 ...
$ nrow : int 2246
$ ncol : int 10473
$ dimnames:List of 2
..$ Docs : NULL
..$ Terms: chr [1:10473] "aaron" "abandon" "abandoned" "abandoning" ...
- attr(*, "Weighting")= chr [1:2] "term frequency" "tf"
- attr(*, "class")= chr [1:2] "DocumentTermMatrix" "simple_triplet_matrix"
然而,我的TDM将条款作为行,文档作为列:
List of 6
$ i : int [1:10489] 1 3 4 13 20 24 25 26 27 28 ...
$ j : int [1:10489] 1 1 1 1 1 1 1 1 1 1 ...
$ v : num [1:10489] 1 1 1 1 2 1 67 1 44 3 ...
$ nrow : int 5903
$ ncol : int 9
$ dimnames:List of 2
..$ Terms: chr [1:5903] "\u2439aa" "aars" "\u2439ab" "\u242dab" ...
..$ Docs : chr [1:9] "art111130.txt" "art111131.txt" "art111132.txt" "art111133.txt" ...
- attr(*, "class")= chr [1:2] "TermDocumentMatrix" "simple_triplet_matrix"
- attr(*, "Weighting")= chr [1:2] "term frequency" "tf"
这导致LDA(art_tdm,3)
根据文档名称而不是文档中的术语来构建主题。这是tm包的代码库中的变化吗?我无法想象在我的代码中我会做什么来导致这种转置:
art_cor<-Corpus(DirSource(directory = "tmptxts"))
art_tdm<-TermDocumentMatrix(art_cor)
任何帮助将不胜感激。
答案 0 :(得分:3)
一方面,你有一个“TermDocumentMatrix”类的对象,另一方面你有一个“DocumentTermMatrix”。
你可能只需要这样做:
art_tdm<-DocumentTermMatrix(art_cor)