r-从扫帚中整理,从拓扑模型中找不到LDA的方法



直接从"带R的文本挖掘"、运行此脚本

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

我收到这个错误消息:

as.data.frame.default(x)中的错误:无法将类"structure("LDA_VEM",package="topicmodels")"强制为>data.frame此外:警告消息:在整洁默认(ap_lda)中:没有使用as.data.frame 整理LDA_VEM类S3对象的方法

packageVersion("broom")

`.4.3'

packageVersion("topicmodels")

'0.2.7'

sessionInfo()

R版本3.4.3(2017-11-30)平台:x86_64-w64-mingw32/x64(64位)运行环境:Windows>=8x64(内部版本9200)

矩阵产品:默认

附加的基本包:[1] 统计图形grDevices实用程序数据集方法基础

其他附加包裹:[1] 扫帚_0.4.3主题模型_0.2-7

通过命名空间加载(未附加):[1] NLP_0.1-11 Rpp_0.12.15 compiler_3.4.3 pilla_1.1.0 ply_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_.20-35 pkgconfig_2.0.1
[16]rlang_0.1.6 psych_1.7.8 yaml2.1.16 parallel_3.43 bindrcpp_0.2
[21]字符串_1.2.0dplyr_07.4 xml2_1.2.0 stats4_3.4.3 grid_3.4.3
[26]网状物_1.4胶水_1.2.0 R6_2.2.2外国_0.8-69 tidyr_08.0
[31]purrr_0.2.4重塑2_1.4.3 magrittr_1.5搅拌器_0.3-2 tfruns_1.2
[16]模型工具_0.2-21组件_0.2.0 mnormt_1.5-5 tensorflow_1.5字符串_1.1.6
[41]slam_0.1-42 tm_0.7-3

tidytext包似乎正在扩展broom包中使用的一些方法。。。

因此,使用tidytext中的tidy函数确实有效:

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

当我加载了tidytext:library(tidytext)时,这将自动为我工作,而无需指定。即tidy(ap_lda, ...)。我可以从您的会话信息中看到tidytext没有加载。

对于未来我再次遇到相同问题时遇到的问题:

如果Henderson的解决方案不起作用,请更具体地使用tidytext:::tidy.LDA

最新更新