Как сопоставить строки с большим словарем и избежать проблем с памятью - PullRequest
0 голосов
/ 09 июля 2020

У меня есть фрейм данных с такими строками, как эти, некоторые из которых являются существующими английскими sh словами, а другие - нет:

df <- data.frame(
  strings = c("'tis"," &%#@","aah", "notexistingword", "823942", "abaxile"))

Теперь я хотел бы проверить, какие из них настоящие слова путем сопоставления их с большим словарем, таким как GradyAugmented;

library(qdapDictionaries)
df$inGrady <- grepl(paste0("\\b(", paste(GradyAugmented[1:2500], collapse = "|"), ")\\b"), df$strings)
df
          strings inGrady
1            'tis    TRUE
2            &%#@   FALSE
3             aah    TRUE
4 notexistingword   FALSE
5          823942   FALSE
6         abaxile    TRUE

К сожалению, это работает нормально, пока я ограничиваю размер GradyAugmented (точка отсечения, от которой он больше не работает, это примерно размер 2500). Как только я использую словарь весь , я получаю сообщение об ошибке, подтверждающее наличие invalid regular expression. Я догадываюсь, что это не регулярное выражение, а проблема с памятью. Как можно решить эту проблему?

1 Ответ

0 голосов
/ 09 июля 2020

вы ищете что-то подобное?

df$inGrady <- df$strings %in% GradyAugmented

#           strings inGrady
# 1            'tis    TRUE
# 2            &%#@   FALSE
# 3             aah    TRUE
# 4 notexistingword   FALSE
# 5          823942   FALSE
# 6         abaxile    TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...