【发布时间】:2019-01-03 18:42:04
【问题描述】:
我有一个字符串向量(“句子”),其中每个句子中包含不同数量的不同单词:
sentences <- c("word01 word02",
"word01 word04 word03",
"word10",
"",
"word02 word07 word08 word09",
...)
我还有一个感兴趣的词向量:
wordsOfInterest <- c("word01", "word02", ...)
我想知道每个句子中是否至少找到一个 wordsOfInterest。输出应该是一个逻辑向量,其长度与句子向量的长度相同。因此,给定上面的向量,输出向量应该有值
TRUE TRUE FALSE FALSE TRUE ...
句子的数量取决于数据集,可以是从几到十万之间的任意值,每个句子中的单词数可以是从零到一百左右的任意值,wordsOfInterest 的数量可以是从一到任意值到一百左右。
此外,我有几个数据集要分析,每个数据集都有几个单独的句子向量。然后我需要将几组 wordsOfInterest 向量应用于每个数据集中的每个句子向量,因此累积的计算需求开始累加。
到目前为止,我提出的唯一成功的解决方案是对每个 wordsOfInterest 逐个使用 str_detect 并将其应用于各种句子向量,但我当然想找到另一种解决方案。我尝试使用原生矢量化以及 R 中的 FOR 循环来解决这个问题,但无济于事。所以我有两个问题,如何开始,然后如何尽可能快地(计算和打字)。感谢所有帮助。
【问题讨论】:
-
你可以使用
greplgrepl(paste(wordsOfInterest, collapse="|"), sentences)