Я новичок в R и нуждаюсь в предложениях. У меня есть dataframe с 1 текстовым полем в нем. Мне нужно исправить слова с ошибками в этом текстовом поле. Чтобы помочь в этом, у меня есть второй файл (словарь) с 2 столбцами - слова с ошибками и правильные слова для их замены.Заменить строки в тексте на основе словаря
Как вы рекомендуете это делать? Я написал простой цикл «for», но производительность - проблема. Файл имеет ~ 120K строк, а словарь имеет ~ 5k строк, и программа работает в течение нескольких часов. Текст может иметь не более 2000 символов.
Вот код:
output<-source_file$MEMO_MANUAL_TXT
for (i in 1:nrow(fix_file)) { #dictionary file
target<-paste0(" ", fix_file$change_to_target[i], " ")
replace<-paste0(" ", fix_file$target[i], " ")
output<-gsub(target, replace, output, fixed = TRUE)
'merge'? Может быть, соединение с 'data.table', если слияние слишком медленное? – joran
@joran не уверен, если я понимаю. Текст может содержать несколько слов, требующих замены. Вы предполагаете, что он будет работать быстрее, если оба файла данных будут объединены в один? – user3100939
Я предлагаю левое соединение, за которым следует заполнение отсутствующих значений из исходного фрейма данных, как это можно сделать в SQL. Это выполняется с помощью 'merge' или также с помощью' data.table', но с другим синтаксисом. data.table может даже быть в состоянии сделать это один раз, используя скользящее соединение. – joran