es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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))
“`

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que el tipo de entrada para la función open() es incorrecto, espera un objeto str, bytes o os.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:

    import numpy as np
    import pandas as pd
    from google.colab import drive
    
    drive.mount('/content/drive/')
    
    EMBEDDING_FILE_PATH = '/content/drive/MyDrive/ML/paragram_300_sl999-2.txt'
    
    # Leer el archivo de incrustación como un DataFrame
    embedding_df = pd.read_csv(EMBEDDING_FILE_PATH, encoding='unicode_escape', sep=" ", header=None)
    
    # Crear un diccionario de incrustaciones de palabras
    embeddings_index = {}
    for row in embedding_df.itertuples():
        word = row[1]
        coef = np.asarray(row[2:], dtype='float32')
        embeddings_index[word] = coef
    

    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 utilizando pd.read_csv(). Finalmente, recorremos las filas del DataFrame utilizando el método itertuples(), extraemos la palabra y sus coeficientes correspondientes, y los almacenamos en un diccionario llamado embeddings_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).

Comments are closed.