Нечеткая фильтрация / сопоставление больших данных ~ 2 миллиона наблюдений в R - PullRequest
0 голосов
/ 20 марта 2020

У меня очень большой набор данных, содержащий примерно 2 миллиона наблюдений (main). В наборе данных есть столбец «name», который очень шумный. У меня есть dictionary набор данных со списком всех правильных имен (6500 наблюдений). Я хотел бы иметь возможность повторять каждое из 2 миллионов наблюдений в наборе данных main и удалять все наблюдения, которые не соответствуют нечеткому совпадению ни одного из правильных имен, перечисленных в dictionary.

Я испробовал следующие подходы:

library(fuzzyjoin)
stringdist_left_join(main, dictionary, by = c("name" = "correct_name"), max_dist = 1)

Но из-за этого возникла ошибка:

Ошибка в stri_length (строка): длинные векторы еще не поддерживаются : stri_length. cpp: 96

Я также пробовал:

correct_names <- paste(dictionary$correct_name, collapse = "|")
agrep(correct_names, main$name)

, который выдает следующую ошибку:

Ошибка в agrep ( правильные имена, основное $ имя): ошибка regcomp: «Недостаточно памяти»

Существует ли подход к нечеткому сопоставлению такого рода, который работает с большими наборами данных?

...