【发布时间】:2018-09-24 06:56:28
【问题描述】:
我有一些不同长度的大字符向量,我需要将它们分成更小的长度以便在 spacyr 中进行处理。我目前在 lapply() 中使用 substr() 拆分为一个列表,其中每个列表项的长度为 500K 个字符。
但是,我想在大约 500K 个字符后分割下一个空格,以避免将一个单词切成两半。不知道如何修改我到目前为止的想法。我当前的代码有点像这样:
#Pretend 'text' is my list of words
chars = c(letters, " ", ".")
text<-paste0(sample(chars, 3000000, replace=TRUE), collapse="")
#split to list of smaller vectors
text_segments<-laply(seq(1,nchar(text),500000), function(i) substr(text, i, i+499999))
#do something with each
for(i in unique(text_segments)){
parsedtxt <- spacy_parse(i)
...
}
上例中的每个假单词都是 3 个字母长,但在我的真实文件中,单词的长度各不相同。
任何有关解决空间问题的建议将不胜感激。代码速度不是问题,但我确实很欣赏效率方面的建议。
【问题讨论】:
-
请添加您的数据样本和您希望输出的样例,以便可以重现此问题...现在,没有人可以在自己的会话中运行它,所以它是很难帮你。谢谢:)
-
我刚刚在原始问题中添加了一个假样本。
标签: r string loops vector char