如何通过考虑它们在文本中的位置来挖掘多词?
How to mine multiwords by taking into account their position in the text?
我想提取给定文本中位于年份和后面逗号之间的某些词。虽然术语 Mining
出现在 text
中的 2020
之前和之后,但我需要在 (2020)
和 ,
之间找到的后者。同样的概念适用于以下 text
.
中的术语 Computer Science
library(stringr)
text <- "This is text Mining exercise (2020) Mining, p. 628508; Computer Science text analysis (1998) Computer Science, p.345-355; Introduction to data mining (2015) J. Data Science, pp. 31-33"
comp <- c("Mining", "Computer Science", "J. Data Science")
pattern <- str_c(comp,collapse ="|")
data <- str_extract_all(text, pattern)
上面代码的最后一行给出了输出:
[1] "Mining" "Mining" "Computer Science" "Computer Science" "J. Data Science"
我正在寻找的输出是:
[1] "Mining" "Computer Science" "J. Data Science"
注意:这些词的位置很重要。非常感谢任何帮助!
如果我们需要在数字后的 )
和 ,
之间进行提取,请创建一个正则表达式环视
library(stringr)
str_extract_all(text, str_c("(?<=\(\d{4}\)\s)(", pattern, ")(?=,)"))[[1]]
#[1] "Mining" "Computer Science" "J. Data Science"
我想提取给定文本中位于年份和后面逗号之间的某些词。虽然术语 Mining
出现在 text
中的 2020
之前和之后,但我需要在 (2020)
和 ,
之间找到的后者。同样的概念适用于以下 text
.
Computer Science
library(stringr)
text <- "This is text Mining exercise (2020) Mining, p. 628508; Computer Science text analysis (1998) Computer Science, p.345-355; Introduction to data mining (2015) J. Data Science, pp. 31-33"
comp <- c("Mining", "Computer Science", "J. Data Science")
pattern <- str_c(comp,collapse ="|")
data <- str_extract_all(text, pattern)
上面代码的最后一行给出了输出:
[1] "Mining" "Mining" "Computer Science" "Computer Science" "J. Data Science"
我正在寻找的输出是:
[1] "Mining" "Computer Science" "J. Data Science"
注意:这些词的位置很重要。非常感谢任何帮助!
如果我们需要在数字后的 )
和 ,
之间进行提取,请创建一个正则表达式环视
library(stringr)
str_extract_all(text, str_c("(?<=\(\d{4}\)\s)(", pattern, ")(?=,)"))[[1]]
#[1] "Mining" "Computer Science" "J. Data Science"