如果句子包含指定的关键字,我想从段落中提取句子。例如,如果我有一堆句子(由句号定义)我想提取包含关键字“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." 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!