我在使用R中的STM包时遇到了问题。我在Quanteda中构建了一个语料库,我想将其转换为STM格式。我已将元数据保存为独立的CSV文件,我想要将文本文档与元数据合并的代码。 readCorpus()和" convert()函数不会自动将元数据信息添加到语料库中。
这是Quanteda的样子:
EUdocvars <- read.csv("EU_metadata.csv", stringsAsFactors = FALSE)
EUdocvars$Period <- as.factor(EUdocvars$Period)
EUdocvars$Country <-as.factor(EUdocvars$Country)
EUdocvars$Region <- as.factor(EUdocvars$Region)
EUCorpus <- corpus(textfile(file='PROJECT/*.txt'), encodingFrom = "UTF-8-BOM")
docvars(EUCorpus) <- EUdocvars
EUDfm <- dfm(EUCorpus)
有没有办法使用STM包做同样的事情?
答案 0 :(得分:2)
在解决https://github.com/kbenoit/quanteda/issues/209之后,最近才添加了对此的支持(v0.99)。
所以这应该有效:
<div className={this.props.className}>
{...children}
</div>
然后EUstm <- convert(EUdfm, to = "stm", docvars = docvars(EUCorpus))
包含了适合STM模型所需的所有元素,包括EUstm
。
答案 1 :(得分:0)
stm
对象(列表)有一个名为$meta
的元素,它采用维度number of documents x number of covariates
的数据框。所以对于你的问题:
EUCorpus$meta <- EUdocvars