У меня есть два кадра данных панд. Один содержит текст, другой набор терминов, которые я хотел бы найти и заменить в тексте. Существует много вариантов текста, в которых одно и то же слово может встречаться в тексте несколько раз и иметь несколько терминов.
Я создал цикл, который может заменить каждое слово в тексте термином, однако он очень медленный, особенно если учесть, что он работает над большим корпусом.
Мой вопрос:
Есть ли способ запустить нижеприведенную функцию в распараллеленном для скорости? Или же функция могла бы использовать Numba или какой-либо другой тип оптимизации, чтобы ускорить ее? Обратите внимание, что в тексте может быть много перестановок, которые необходимо заменить.
Пример текстового фрейма данных:
d = {'ID': [1, 2, 3], 'Text': ['here is some random text', 'random text here', 'more random text']}
text_df = pd.DataFrame(data=d)
Пример условия dataframe:
d = {'Replace_item': ['<RANDOM_REPLACED>', '<HERE_REPLACED>', '<SOME_REPLACED>'], 'Text': ['random', 'here', 'some']}
replace_terms_df = pd.DataFrame(data=d)
Пример текущего решения:
def find_replace(text, terms):
for _, row in terms.iterrows():
term = row['Text']
item = row['Replace_item']
text.Text = text.Text.str.replace(term, item)
return text
find_replace(text_df, replace_terms_df)
Пожалуйста, дайте мне знать, если что-то выше требует уточнения. Спасибо,