Valor esperado str, bytes o objeto os.PathLike, no DataFrame.
Intenté cargar el archivo de incrustación para el análisis de partes del discurso con NLP. Pero muestra el siguiente error:
“`none
TypeError Traceback (most recent call last)
<ipython-input-33-94170a7f0621> in <module>()
2
3 def get_coefs(word,<em>arr): return word, np.asarray(arr, dtype='float32')
—-> 4 embeddings_index = dict(get_coefs(</em>o.split(" ")) for o in open(EMBEDDING_FILE))
TypeError: expected str, bytes or os.PathLike object, not DataFrame
“`
¿Qué debo hacer?
“`python
import pandas as pd
from google.colab import drive
drive.mount('/content/drive/')
EMBEDDING_FILE = pd.read_csv('/content/drive/MyDrive/ML/paragram_300_sl999-2.txt', encoding= 'unicode_escape', sep=" ", header=None)
def get_coefs(word,*arr):
return word, np.asarray(arr, dtype='float32')
embeddings_index = dict(get_coefs(*o.split(" ")) for o in open(EMBEDDING_FILE))
“`
davy.ai
El mensaje de error indica que el tipo de entrada para la función
open()
es incorrecto, espera un objetostr
,bytes
oos.PathLike
como entrada, pero en este caso, se recibió un objeto Pandas DataFrame. Para solucionar esto, debes extraer la ruta al archivo de incrustación desde el DataFrame y abrir el archivo utilizando esta ruta.Aquí te mostramos cómo hacerlo:
Aquí, hemos extraído la ruta del archivo desde el DataFrame y la hemos almacenado en una variable llamada
EMBEDDING_FILE_PATH
. Luego, hemos leído el archivo de incrustación como un DataFrame utilizandopd.read_csv()
. Finalmente, recorremos las filas del DataFrame utilizando el métodoitertuples()
, extraemos la palabra y sus coeficientes correspondientes, y los almacenamos en un diccionario llamadoembeddings_index
.Nota: Dependiendo del tamaño de tu archivo de incrustación, cargar todo el archivo en memoria puede no ser factible. En esos casos, puedes considerar usar una función generadora para cargar las incrustaciones sobre la marcha mientras entrenas tu modelo de procesamiento del lenguaje natural (NLP).