如果句子包含指定的关键字,我想从段落中提取句子。例如,如果我有一堆句子(由句号定义)我想提取包含关键字“school”的句子
data: "sam goes to school. sam comes home and study. sam is a good boy."
keyword: "school"
Desired Result: "sam goes to school"
我知道您可以使用“str_locate_all”和“str_extract_all”提取单词及其位置
例如
str_extract_all("sam goes to school. sam comes home and study. sam is a good boy." regex("school", multiline = TRUE))
谁能帮我提取包含关键字的句子。或者提取关键字后面的 10 个前导或尾随单词。 谢谢
请您参考如下方法:
我们可以使用strsplit
来分割句子,然后用grep
得到想要的输出
grep("school", unlist(strsplit(str1, '(?<=\\.)\\s+',
perl=TRUE)), value=TRUE)
#[1] "sam goes to school."
如果我们不想要句末的.
,
grep("school", unlist(strsplit(str1, "\\.\\s+")), value=TRUE)
#[1] "sam goes to school"
更新
如果我们需要提取“学校”之前的两个词
library(stringr)
str_trim(str_extract_all(str1, "(\\w+\\s+){2}(?:school)")[[1]])
#[1] "goes to school"
数据
str1 <- "sam goes to school. sam comes home and study. sam is a good boy."