grepl для поиска слов - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь в R найти испанские слова в нескольких словах. У меня есть все испанские слова из Excel, которые я не знаю, как прикрепить к сообщению (в нем более 80000 слов), и я пытаюсь проверить, есть ли на нем какие-то слова.

Например:

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

Я пытался использовать это решение :

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

Но есть слишком много испанских слов, и дает мне эту ошибку:

Error

Итак ... кто я могу это сделать? Я также попробовал это:

toupper(words) %in% toupper(spanish_words)

Результат

Как вы можете видеть, эта опция дает только TRUE в точных совпадениях, и мне нужно, чтобы "Sillas" также отображались как TRUE (это слово во множественном числе silla). По этой причине я сначала попробовал grepl, чтобы получить множественное число.

Есть идеи?

1 Ответ

1 голос
/ 11 июля 2019

Как df:

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

Вектор слов: слова <- c («Силла», «Виллы», «Перро», «asdfg») слова <- tolower (вставить (words, collapse = "|")) </p>

Затем используйте mutate и str_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    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...