在R中向STM添加元数据

时间:2016-06-30 12:04:02

标签: r text-mining tm corpus quanteda

我在使用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包做同样的事情?

2 个答案:

答案 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