tidy from broom not finding method for LDA from topicmodels

拜拜、爱过 提交于 2020-01-16 15:26:51

问题


Running this script, straight from 'Text mining with R',

library(topicmodels)
library(broom)

data("AssociatedPress")
ap_lda <- LDA(AssociatedPress, k = 2, control = list(seed = 1234))
tidy(ap_lda)

I get this error message:

Error in as.data.frame.default(x) : cannot coerce class "structure("LDA_VEM", package = "topicmodels")" to a >data.frame In addition: Warning message: In tidy.default(ap_lda) : No method for tidying an S3 object of class LDA_VEM , using as.data.frame

packageVersion("broom")

‘0.4.3’

packageVersion("topicmodels")

‘0.2.7’

sessionInfo()

R version 3.4.3 (2017-11-30) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [1] broom_0.4.3 topicmodels_0.2-7

loaded via a namespace (and not attached): [1] NLP_0.1-11 Rcpp_0.12.15 compiler_3.4.3 pillar_1.1.0 plyr_1.8.4
[6] bindr_0.1 base64enc_0.1-3 keras_2.1.3 tools_3.4.3 zeallot_0.1.0
[11] jsonlite_1.5 tibble_1.4.2 nlme_3.1-131 lattice_0.20-35 pkgconfig_2.0.1
[16] rlang_0.1.6 psych_1.7.8 yaml_2.1.16 parallel_3.4.3 bindrcpp_0.2
[21] stringr_1.2.0 dplyr_0.7.4 xml2_1.2.0 stats4_3.4.3 grid_3.4.3
[26] reticulate_1.4 glue_1.2.0 R6_2.2.2 foreign_0.8-69 tidyr_0.8.0
[31] purrr_0.2.4 reshape2_1.4.3 magrittr_1.5 whisker_0.3-2 tfruns_1.2
[36] modeltools_0.2-21 assertthat_0.2.0 mnormt_1.5-5 tensorflow_1.5 stringi_1.1.6
[41] slam_0.1-42 tm_0.7-3


回答1:


The tidytextpackage appears to be extending some of the methods used in the broom package...

So using the tidy function from tidytext does work:

broom::tidy(ap_lda, matrix = "beta")

Error in as.data.frame.default(x) : 
  cannot coerce class "structure("LDA_VEM", package = "topicmodels")" to a data.frame
In addition: Warning message:
In tidy.default(ap_lda, matrix = "beta") :
  No method for tidying an S3 object of class LDA_VEM , using as.data.frame

tidytext::tidy(ap_lda, matrix = "beta")

# A tibble: 20,946 x 3
   topic term                                        beta
   <int> <chr>                                      <dbl>
 1     1 aaron      0.00000000000169                     
 2     2 aaron      0.0000390                            
 3     1 abandon    0.0000265                            
 4     2 abandon    0.0000399                            
 5     1 abandoned  0.000139                             
 6     2 abandoned  0.0000588                            
 7     1 abandoning 0.00000000000000000000000000000000245
 8     2 abandoning 0.0000234                            
 9     1 abbott     0.00000213                           
10     2 abbott     0.0000297                            
# ... with 20,936 more rows

When I have loaded tidytext : library(tidytext) then this works automatically for me without specifying .i.e. tidy(ap_lda, ...). I can see from your session info that tidytext is not loaded.



来源:https://stackoverflow.com/questions/48638405/tidy-from-broom-not-finding-method-for-lda-from-topicmodels

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!