данные
У меня есть вектор имен разных людей и текст.
задания:
а) какое имя в тексте - наиболее близкое совпадение (учитывая, что имя в тексте может быть введено с ошибкой). Возвращает совпадение из вектора имен и найденное совпадение.
b) получить начальное и конечное расположение строки в тексте (аналогично charAt () в Java)
names <- c("Hannigan, Mike", "Bing, Chandler", "Geller, Ross", "Buffay, Phoebe")
text <- "He's not an accountant but a statistician. He is Chandlur bing"
желаемый результат:
> matchFrom
"Bing, Chandler"
> matchTo
"Chandlur bing"
> start
50
> end
62
исследования
Я пробовал agrep, но agrep будет сопоставлять шаблон с вектором символов. Мне нужен элемент в именах, чтобы соответствовать целому блоку текста.
В качестве альтернативы, разделение имен и использование цикла for является опцией; мой вектор имен не большой.
for (i in 1:length(names)){
print(agrepl(names[i], text, ignore.case = TRUE))
}
Возвращение матча является наиболее важным
Если я использую agrep, как мне узнать, где он находится?