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.

¿Subir un modelo pre-entrenado de vectores de palabras en idioma español y luego reentrenarlo con oraciones personalizadas? (GENSIM – FASTTEXT)

Estoy tratando de cargar vectores de palabras en español preentrenados y luego volver a entrenarlos con oraciones personalizadas:

!pip install fasttext
import fasttext
import fasttext.util

descargar vectores de palabras preentrenados en español

fasttext.util.download_model('es', if_exists='ignore')  # Español
ft = fasttext.load_model('cc.es.300.bin')

Pero una vez que intento actualizar el vocabulario, me da este AttributeError:

# Actualizar vocabulario
ft.build_vocab(sentences, update=True)
AttributeError: El objeto '_FastText' no tiene el atributo 'build_vocab'

¿Alguna recomendación?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el método build_vocab no está disponible para el objeto _FastText cargado. Esto se debe a que build_vocab es un método de la clase FastText en el módulo fasttext, y el objeto cargado es de la clase _FastText (que es una subclase de FastText).

    Para superar esto, puedes crear un objeto FastText en lugar de cargar el modelo pre-entrenado usando el método load_model. Aquí tienes cómo hacerlo:

    from gensim.models.fasttext import FastText
    
    # descargar vectores de palabras pre-entrenados en español
    fasttext.util.download_model('es', if_exists='ignore')
    
    # crear un objeto FastText con el modelo pre-entrenado
    ft = FastText.load_fasttext_format('cc.es.300.bin')
    
    # actualizar el vocabulario
    ft.build_vocab(sentences, update=True)
    

    Esto debería permitirte actualizar el vocabulario con tus propias oraciones.

Comments are closed.