R 如何在语料库中手动设置文档id?

R 如何在语料库中手动设置文档id?,r,tm,R,Tm,我正在从一个数据帧创建一个Copus。我将其作为VectorSource传递,因为我只想将一列用作文本源。但是,我需要语料库中的文档ID来匹配数据框架中的文档ID。文档ID存储在原始数据框中的单独列中 df <- as.data.frame(t(rbind(c(1,3,5,7,8,10), c("text", "lots of text", "too much text", "where will it end", "giv

我正在从一个数据帧创建一个Copus。我将其作为
VectorSource
传递,因为我只想将一列用作文本源。但是,我需要语料库中的文档ID来匹配数据框架中的文档ID。文档ID存储在原始数据框中的单独列中

df <- as.data.frame(t(rbind(c(1,3,5,7,8,10), 
                        c("text", "lots of text", "too much text", "where will it end",         "give peas a chance","help"))))
colnames(df) <- c("ids","textColumn")
library("tm")
library("lsa")
corpus <- Corpus(VectorSource(df[["textColumn"]]))

df好吧,一种简单但不是很优雅的方法可以在以后将ID分配给文档:

for (i in 1:length(corpus)) {
   attr(corpus[[i]], "ID") <- df$ids[i]
}
for(1中的i:长度(语料库)){

attr(corpus[[i]],“ID”)这里有一种解决这个问题的qdap方法,可以在不使用循环的情况下处理它:

从get go开始使用右键将数据帧转换为
语料库
,ID标记将自动添加

with(df, as.Corpus(textColumn, ids))

## <<VCorpus>>
## Metadata:  corpus specific: 0, document level (indexed): 3
## Content:  documents: 6


## Look around a bit
meta(with(df, as.Corpus(textColumn, ids)), tag="id")
inspect(with(df, as.Corpus(textColumn, ids)))
with(df,as.Corpus(textColumn,id))
## 
##元数据:特定于语料库的:0,文档级别(索引):3
##内容:文件:6
##四处看看
meta(带有(df,as.Corpus(textColumn,id)),tag=“id”)
检查(使用(df,as.Corpus(textColumn,id)))

我知道@user1098798可能已经晚了,但是有一种方法可以让您在创建语料库时直接指定ID。您需要将数据加载为
DataframeSource()
并向列添加映射:

corpus = VCorpus(DataframeSource(df), readerControl = list(reader = readTabular(mapping = list(content = "textColumn", id = "ids"))))

这是有效的!我会等一等,看看是否有人能想出更优雅的东西,也许在实际语料库创建过程中分配给他们。但是如果他们不能,我会很乐意接受这一点,如果不仅仅是因为你的回答速度;)@user1098798谢谢!我巧妙地修改了我的答案,因为显然你可以直接重用来自原始dat的IDa、 ..
df2tm\U语料库
已被弃用;您可以编辑您的答案并将其替换为
as.corpus
吗?这不起作用!我的结果中总是有空值