问题: 我有一个从网页下载句子的循环 - 并且每次迭代都会将它们添加到不断增长的角色向量中。
从概念上讲,输出如下:
myVec
[1] "bla"
[2] "blablabla"
[3] "blabla"
[4] " blablablablabla"
等...
每个数字代表我下载的一个句子。对于每次迭代,循环将向量附加更多句子。
但是我没有把结果放到矢量中 - 我想将它保存到不断增长的txt文件中。原因是我需要下载的数据量很大。所以我需要让循环运行一段时间(1000次迭代),然后休息 - 然后在第二天再次运行它。
我希望txt文件有一些结构 - 这样它仍然可以很容易地按句子分割。这是因为我后来想创建一个DTM,每个句子都作为一个单独的文档。
所以我需要
1:一种写入文件的方法,可以在整个循环中附加新句子。
2:使用tm包读取该文件的方法,以便稍后我可以根据我下载的句子创建DTM。
我尝试了什么:
我最接近我想要的是使用write.table()函数。
write.table(MyVec, file = "output.txt",row.names=FALSE, col.names = FALSE, append= TRUE)
这似乎给了我一个文本,其中句子用引号分隔: “喇嘛” “blablabla” “布拉布拉” 等
但我不知道如何利用tm将其读入语料库时使用它 - 以便稍后根据句子创建DTM。也许有更好的方法?
我也尝试过write()函数:
write(MyVec, file="output.txt",append=TRUE)
这给了我一个不断增长的txt文件,但它似乎没有将句子分开。我不知道如何将其读入语料库并根据句子创建DTM。
我考虑过writeLines() - 但它似乎没有附加选项 - 而且无论如何:我不想在行中打破文本。我只想分开句子。
答案 0 :(得分:0)
一种方法是将您的句子列表存储(或加载)为数据框,并使用tm()将其解析为矢量源。
library(tm)
Sentences <- c("First Sentence BLA", "Second Sentence BLA BLA", "Nth Sentence [...] Bla^n")
SentencesDF <- as.data.frame(Sentences)
Corpus <- VectorSource(SentencesDF)
在前面的例子中,你不需要将“Sentence”向量写入txt或cvs来获得语料库。如果由于其他原因仍需要这样做,只需运行:
write.csv(SentencesDF, file = "NameofFile.csv")