STM:从DFM

STM:从DFM

问题描述:

启动时运行基于Quanteda的STM模型后估计元/主题关系DFM,我想估计对某些专题我的协变量的影响。STM:从DFM

运行STM模型运行正常,产生预期的主题,但是当使用estimateEffect(在下面的脚本的最后一步)时,R会话被中止,通知有一个'致命错误'。

我如何估计我的协变量的影响,从DFM启动时? STM手册提供了从dfm运行STM模型的建议,但是我无法在此阶段后找到如何处理协变量。

下面的代码:

# Read texts with Quanteda 
texts <- (readtext("C:/Users/renswilderom/Documents/Stuff Im working on at the moment/Newspaper articles DJ/test data/*.txt", 
     docvarsfrom = "filenames", dvsep = "_", 
     docvarnames = c("Date of Publication", "Length LexisNexis", "source"), 
     encoding = "UTF-8-BOM")) 

mycorpus <- corpus(texts) 

tokens <- tokens(mycorpus, remove_punct = TRUE, remove_numbers = TRUE, ngrams = 1) 

mydfm <- dfm(tokens, remove = stopwords("english"), stem = TRUE) 


# Run the STM model - Metadata is called with 'data = docvars(mycorpus)' 
stm_from_dfm <- stm(mydfm, K = 10, prevalence =~ Date.of.Publication + source, gamma.prior='L1', data = docvars(mycorpus)) 

# Estimate effects 
prep <- estimateEffect(1:10 ~ Date.of.Publication + source, stm_from_dfm, 
         meta = docvars(mycorpus), uncertainty = "Global") 

另外,我从我的DFM文集作出了STM语料库,利用STMcorpus <- asSTMCorpus(mydfm)。但后来我无法运行STM模型,因为它没有识别我的元数据。遵循这种替代策略会更好吗? (所以我需要在运行STMcorpus <- asSTMCorpus(mydfm)后以某种方式将元数据与STMcorpus相关联)。

+0

这是很难没有重现的示例 - 你能提供一个诊断?另外,我认为当你做'asstMCorpus(mydfm)'时,quanteda包含了数据。元数据只是在一个名为'data' – bstewart

+0

肯定列表中的对象,这里是我使用的实际报纸文章的一个样本:https://wetransfer.com/downloads/a50d8b8fd524359751e8aa68bac3256c20171016160720/3f3bb29e40362434594f44aeee1e67f720171016160720/b425d8 I'dd喜欢从'stm_from_dfm'工作,但如果需要的话,我当然也可以从'asSTMCorpus(mydfm)工作'。我只是试着通过list数据来访问元数据。 – Rens

+0

我无法用你给我的数据样本复制你的错误。如果你想分享你打电话之前工作区的副本'estimateEffect()'我可以尝试从那里 - 复制但除此之外没有太多而不能重现问题,我可以做的。 – bstewart

我们通过这个工作通过的电子邮件 - 但我会在这里回答为别人谁可能遇到某种形式的问题。

有一个在matrixStats包这导致R键与仅在Windows大矩阵崩溃的问题。错误和解决方案在此处详述:https://github.com/HenrikBengtsson/matrixStats/issues/104。此问题包含对问题的简单测试以及如何安装修复该问题的开发版本matrixStats的说明。这是版本matrixStats 0.52.2中的一个问题,大概可以通过下一个CRAN版本解决。