如何在语料库中的文档中添加单词?

时间:2014-04-05 23:06:50

标签: r algorithm data-mining topic-modeling

我正在使用tm包在我的语料库上运行LDA。我有一个包含10,000个文档的语料库。

rtcorpus.4star <- Corpus(DataframeSource(rt.subset.4star)) ##creates the corpus
rtcorpus.4star[[1]] ##accesses the first document

我正在尝试编写一段代码,在某些单词后添加“specialword”一词。基本上:对于我选择的单词(好的,好的,快乐的,有趣的,爱的)的向量,我希望代码循环遍历每个文档,并在任何这些单词之后添加单词“specialword”。

例如,鉴于此文件:

I had a really fun time

我希望结果如下:

I had a really fun specialword time

问题是我不知道该怎么做,因为我不知道如何让代码在语料库中读取。我知道我应该做一个for循环(或者可能不是),但我不确定如何遍历每个文档中的每个单词,以及语料库中的每个文档。我也想知道我是否可以使用在tm_map中工作的“翻译”功能。


编辑::

做了一些尝试。该代码将“test”返回为NA。你知道为什么吗?

special <- c("poor", "lose")
for (i in special){
test <- gsub(special[i], paste(special[i], "specialword"), rtcorpus.1star[[1]])
}

编辑:弄清楚!!感谢

special <- c("poor", "lose")
for (i in 1:length(special)){
rtcorpus.codewordtest <-gsub(special[i], paste(special[i], "specialword"), rtcorpus.codewordtest)
}

2 个答案:

答案 0 :(得分:1)

如果你尝试过类似的东西怎么办?

corpus <- read("filename.txt")
special <- c("fun","nice","love")
for (w in special) {
    gsub(w, w + " specialword", corpus)}

这将加载文件,遍历您的单词列表,并将单词替换为单词本身后跟&#34; specialword&#34; (注意空格)。

编辑:我刚看到你有多个文件。要遍历语料库中的文件,您可以执行以下操作:

 corpus <- "filepath/desktop/wherever/folderwithcorpus/"
 special <- c("fun","nice","love")

 for (file in corpus){
      data <- read(file)
      for (w in special){
           gsub(w, w + " specialword", corpus)}
      }

答案 1 :(得分:0)

也许这不是一个tm包功能,但你可以为你的某些单词的向量做一个简单的paste()函数,然后立即添加“specialword”。如果您的文档可以在列表中(我认为),或者stringr包中的str_replace()会执行此操作。

然后创建语料库。