def app(replace_dict, text):
for word in text.split():
if word.lower() in replace_dict:
tmp = list(word.replace(" ", ""))
value = replace_dict[word.lower()]
#print(value)
for index in range(len(value)):
if value[index] == " ":
tmp.insert(index, " ")
print(tmp)
text = text.replace(word, "".join(tmp))
#print(text)
return text
df["modified_text"]= df.apply(lambda x: app(x.replace_dict, x.text), axis =1)
если есть изменения, превышающие пробел и верхний регистр, вы можете использовать это
from collections import defaultdict as dd
def app1(replace_dict, text):
for word in text.split():
if word.lower() in replace_dict:
tmp = dd(list)
for char in word:
tmp[char.lower()].append(char)
value = replace_dict[word.lower()]
retrun_value = value
for char in value:
if char.lower() in tmp:
retrun_value = retrun_value.replace(char,tmp[char.lower()][0])
del tmp[char.lower()][0]
text = text.replace(word, retrun_value)
print(text)
return text
, но это не совсем безопасно, я могу вспомнить, что в нескольких случаях это не сработает