[R STM - 提供文本和建模不匹配
问题描述:
我从摘要文本数据的工作,我试图用stm
(结构性主题建模)有非监督提取的主题一看,施工前的文件数数我自己的字典(用于监督分析)。 我处理一个问题,我不知道是否有人遇到过同样的问题。 当运行findThoughts()
我得到以下错误:[R STM - 提供文本和建模不匹配
Error in findThoughts(out.stm, topics = 27, texts = corpus$documents$texts, : Number of provided texts and number of documents modeled do not match
我不知道这有什么错我的数据。我认为它可能有与语料库中的那些空行NA
值做其中我没有抽象的,但删除NA
行(与后同样的情况如下:
df[!is.na(df$abstract),]
如果你对任何想法事,请让我知道。
答
的findThoughts函数返回错误“提供文本和建模文件数数不匹配”时长(文本)!= out.stm的行数。
这是来自用于处理文档的textProcessor函数的错误在调用'stm'函数之前。
这就是为什么会发生这种情况: 临时输出有一个属性temp $ docs.removed,它列出了已删除的行。所以“临时文件$”的长度会比温度$ docs.removed的长度“意见”较小。
所以STM对象“a”和它使用的临时文件$将具有相同长度的临时文件$建模的$ THETA(与文件专题概率矩阵)。
temp<-textProcessor(comments, metadata=NULL, lowercase=TRUE, removestopwords=TRUE, removenumbers=TRUE, removepunctuation=TRUE, stem=TRUE, wordLengths=c(3,Inf), sparselevel=1, language="en", verbose=TRUE, onlycharacter= FALSE, striphtml=FALSE, customstopwords=NULL, onlytxtfiles=TRUE)
meta<-temp$meta
vocab<-temp$vocab
docs<-temp$documents
a<-stm(documents=docs, vocab=vocab, K=7,data=meta, max.em.its=800)
解决方案:删除在“临时”的对象被拆除从“文本”的对象,这些文件。下面的代码通过创建一个新的向量z来删除temp $ docs.removed中引用的索引。
z<-comments[-temp$docs.removed,]
length(z)
thoughts3 <- findThoughts(a,texts=z,topics=3, n=10,thresh=0.0)