Implementación de Pytorch de un modelo de lenguaje básico que usa atención en la red LSTM
Este repositorio contiene código para un modelo de lenguaje básico para predecir la siguiente palabra dada el contexto. La arquitectura de red utilizada es la red LSTM con atención. La longitud de la oración puede ser variable y esto se ocupa de los pasos adicionales en la secuencia. El modelo está entrenado con texto del libro The Mercer Boys at Woodcrest de Capwell Wyckoff disponible en http://www.gutenberg.org. Cualquier otro libro electrónico o TXT de otras fuentes también se puede utilizar para capacitar a la red.
Este repositorio es compatible con Python 2.
nltk que se pueden instalar utilizando PIP. Descargue cualquier libro electrónico disponible en http://www.gutenberg.org en formato .txt . Cree un nuevo directorio data y almacene el archivo TXT en él. Cualquier otra fuente de texto también se puede usar.
El archivo TXT se preprocesos primero para eliminar algunos tokens no deseados, filtrar palabras raramente usadas y convertirse en formato de diccionario. Además, los incrustaciones de los guantes también deben cargarse.
Para crear el diccionario, use el script preprocess_data/create_dictionary.py
python create_dictionary.py --data_path path_to_txt_file --dict_file dict_file_name.json --min_occ minimum_occurance_required
Para crear el diccionario de guantes, descargue el archivo de guante original y ejecute el script preprocess_data/create_gloves.py
wget http://nlp.stanford.edu/data/glove.42B.300d.zip -P data/
unzip data/glove.42B.300d.zip -d data/
python preprocess_data/create_gloves.py --data_path path_to_txt_file --glove_in data/glove.42B.300d.txt --glove_out data/glove_dict.pkl
Si hay un problema en la descarga del uso del script, entonces el archivo de guantes se puede descargar desde aquí.
Para entrenar el modelo, ejecute el siguiente script
python main.py --gpu gpu_id_to_use --use_cuda True --data_path path_to_txt_file --glove_path data/glove_dict.pkl --dict_path path_to_dict_file
Los otros parámetros a utilizar se especifican en main.py Consultelo para una mejor comprensión.
Los modelos guardados están disponibles aquí.