¿Existe alguna manera de obtener un texto, extraer las palabras, introducirlas en una función y luego volver a colocar las palabras resultantes en el párrafo utilizando Python?
Estoy básicamente intentando reemplazar palabras en un texto, pero necesito poner la palabra más significativa en cada oración, ponerla en una función, en mi caso en una función most_similar de word2vec, y poner la palabra más similar en el texto original. Soy prácticamente principiante en Python, así que quiero encontrar una solución mejor que lo que hago a continuación, que todavía no está funcionando:
def closest(data, columna):
lista_completa = []
datr = data[columna].tolist()
total_palabras = " ".join(datr).split()
# por filas
for i in range(len(datr)):
# primero, por fila, obtener las palabras
lista_palabras = re.sub("[^\w]", " ", datr[i]).split()
print(lista_palabras)
# ciclo por palabra
total_fila = []
for i in lista_palabras[:]:
if len(i) <= 2:
lista_palabras.remove(i)
for palabra in lista_palabras:
try:
más_cercanas = []
más_cercanas = word_vectors.most_similar(positive=palabra, topn=1)
val = (palabra, más_cercanas)
total_fila.append(val)
lista_completa.append(total_fila)
except:
pass
#print("no está en el vocabulario")
más_cercanas = 0
return lista_completa
davy.ai
Para reemplazar palabras en un texto con la palabra más significativa en cada oración utilizando la función most_similar de word2vec, hay algunos pasos a seguir:
Aquí tienes un ejemplo de implementación de los pasos anteriores:
En esta implementación, cargamos un modelo de word2vec pre-entrenado y usamos NLTK para tokenizar el texto en oraciones y palabras. Luego, definimos una función para obtener la palabra más similar para una palabra dada utilizando la función most_similar del modelo de word2vec. Finalmente, recorremos cada oración, reemplazamos cada palabra con su palabra más similar y unimos las palabras de nuevo en una oración. El nuevo texto resultante con las palabras reemplazadas se imprime en la consola.