Cómo reemplazar una cadena usando un diccionario que contiene múltiples valores para una clave en python

Tengo diccionario con Word y sus palabras relacionadas más cercanas.

Quiero reemplazar las palabras relacionadas en la cadena con la palabra original. Actualmente puedo reemplazar palabras en la cadena que tiene solo valor por clave, no puedo reemplazar cadenas porque una clave tiene varios valores. ¿Cómo se puede hacer esto?

Ejemplo de entrada

North Indian Restaurant South India Hotel Mexican Restrant Italian Hotpot Cafe Bar Irish Pub Maggiee Baar Jacky Craft Beer Bristo 1889 Bristo 188 Bristo 188. 

Como se hace el diccionario

 y= list(word) words = y similar = [[item[0] for item in model.wv.most_similar(word) if item[1] > 0.7] for word in words] similarity_matrix = pd.DataFrame({'Orginal_Word': words, 'Related_Words': similar}) similarity_matrix = similarity_matrix[['Orginal_Word', 'Related_Words']] 

Sus 2 columnas dentro de un dataframe con listas.

 Orginal_Word Related_Words [Indian] [India,Ind,ind.] [Restaurant] [Hotel,Restrant,Hotpot] [Pub] [Bar,Baar, Beer] [1888] [188, 188., 18] 

Diccionario

 similarity_matrix.set_index('Orginal_Word')['Related_Words'].to_dict() {'Indian ': 'India, Ind, ind.', 'Restaurant': 'Hotel, Restrant, Hotpot', 'Pub': 'Bar, Baar, Beer' '1888': '188, 188., 18'} 

Rendimiento esperado

 North Indian Restaurant South India Restaurant Mexican Restaurant Italian Restaurant Cafe Pub Irish Pub Maggiee Pub Jacky Craft Pub Bristo 1888 Bristo 1888 Bristo 1888 

Cualquier ayuda es apreciada

Creo que puede replace por nuevo dict con regex de esta respuesta :

 d = {'Indian': 'India, Ind, ind.', 'Restaurant': 'Hotel, Restrant, Hotpot', 'Pub': 'Bar, Baar, Beer', '1888': '188, 188., 18'} d1 = {r'(? 

EDITAR (Función para el código anterior):

 def replace_words(d, col): d1={r'(? 

EDIT1:

Si obtienes errores como:

regex error-missing), subpattern sin terminar en la posición 7

Es necesario escapar los valores de expresiones regulares en las claves:

 import re def replace_words(d, col): d1={r'(?