首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在语料库中手动设置文档id?

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

Stack Overflow用户
提问于 2013-02-13 19:21:03
回答 3查看 2.8K关注 0票数 2

我正在从数据帧创建一个Copus。我将其作为VectorSource传递,因为只有一列希望用作文本源。然而,这项工作发现,我需要语料库中的文档I来匹配数据帧中的文档I。文档ids存储在原始数据帧中的单独列中。

代码语言:javascript
复制
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"]]))

运行这段代码会创建一个语料库,但是文档ids从1到6运行。有没有办法创建文档ids为1、3、5、7、8、10的语料库?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-13 19:28:33

好吧,一种简单但不是很优雅的方法可以在之后为您的文档分配您的ids:

代码语言:javascript
复制
for (i in 1:length(corpus)) {
   attr(corpus[[i]], "ID") <- df$ids[i]
}
票数 2
EN

Stack Overflow用户

发布于 2016-03-23 18:26:45

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

代码语言:javascript
复制
corpus = VCorpus(DataframeSource(df), readerControl = list(reader = readTabular(mapping = list(content = "textColumn", id = "ids"))))
票数 5
EN

Stack Overflow用户

发布于 2014-02-28 13:09:13

这里是一个解决这个问题的qdap方法,它可以在没有循环的情况下处理它:

从get go开始使用qdap version >= 1.1.0将数据帧转换为Corpus,ID标签将自动添加。

代码语言:javascript
复制
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)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14852357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档