grepl寻找单词

时间:2019-07-11 07:01:45

标签: r regex grepl multiple-matches

我正在R中尝试从多个单词中找到西班牙语单词。我有一个我不知道该如何附加的excel中的所有西班牙语单词(超过80000个单词),并且我正在尝试检查其中是否有某些单词。

例如:

words = c("Silla", "Sillas", "Perro", "asdfg")

我尝试使用此solution

grepl(paste(spanish_words, collapse = "|"), words) 

但是西班牙语单词过多,给了我这个错误:

Error

那...我能做得到吗?我也尝试过:

toupper(words) %in% toupper(spanish_words)

Result

如您所见,使用此选项仅在完全匹配时给出TRUE,我需要“ Sillas”也显示为TRUE(这是silla的复数形式)。这就是我首先尝试使用grepl的原因,也是为了获得复数形式。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

作为df:

df <- tibble(text = c("some words", 
                      "more words", 
                      "Perro", 
                      "And asdfg", 
                      "Comb perro and asdfg"))

向量词:     单词<-c(“ Silla”,“ Sillas”,“ Perro”,“ asdfg”)     单词<-tolower(paste(words,crash =“ |”))

然后使用mutatestr_detect

df %>% 
  mutate(
   text = tolower(text), 
   spanish_word = str_detect(text, words)
 )

返回:

text                 spanish_word
  <chr>                <lgl>       
1 some words           FALSE       
2 more words           FALSE       
3 perro                TRUE        
4 and asdfg            TRUE        
5 comb perro and asdfg TRUE