Glory85 / Friends_Dialogue_Generator_NLP

GNU General Public License v3.0
1 stars 1 forks source link

Enfoque Proyecto - La Predicción no está funcionando #1

Open Glory85 opened 3 years ago

Glory85 commented 3 years ago

Hola Alberto, estuve intentando hacer lo del transformador (tb lo probé con el código de Julia), y la Accuracy, si hacia una prueba con solo 2 personajes era de un 60%, los resultados eran bastante malos. Realmente creo que es imposible predecir quién ha dicho qué con un buen resultado... y no sé si vale la pena seguir intentando esto. Ahora para cambiar de rumbo estoy intentando "plot" las conversaciones entre los diferentes personajes (conversaciones de 2), conversaciones entre los personajes principales y alguno más (que ha aparecido bastante). El problema es que en el dataset aparece quien habla pero no con quien hablan, así que lo estoy haciendo de forma manual con excel porqué realmente me tengo que leer el diálogo. Y me está llevando mucho tiempo... No creo que pueda hacerlo de todo el dataset. De momento lo he hecho de los primeros 24 capítulos (primera temporada). He mantenido solo las conversaciones entre: Rachel, Ross, Monica, Chandler, Joey, Phoebe, Mike, Richard, Janice, Charlie, Carol, Emily . He intentado representar (de momento de forma bastante manual) las conversaciones entre ellos y la idea tb es contar el las palabras o conjunto de palabras más dichas entre las diferentes "parejas", el tema es que esto de machine learning no tiene nada, y la visualización de momento no es la mejor. En todo caso te dejo el issue y el martes si puedes comentamos

alabarga commented 3 years ago

Una temporada seria suficiente. Una variacion del proyecto sería un generador, es decir, dadas las dos primeras frases de un dialogo, que continue el dialogo, luego vemos

alabarga commented 3 years ago
Glory85 commented 3 years ago

Hola Alberto, he estado mirando los dos links que me mandaste. El tema es que en ninguno de los dos parece que lo que se entrene sea un diálogo.

En el de las recetas alemanas es más "completar el texto" y el otro es más un diálogo con la máquina misma. Guiándome por el segundo, he intentado de alguna forma crear un torch.Tensor alimentándome de los diálogos de Ross (para poder entrenar el modelo) - No sé si es correcto. He tenido que crear un excel adaptado, ya que entiendo que para que el modelo funcione, el diálogo tiene que ser: Ross --> Rachel --> Ross: No puede ser Ross --> Ross --> Rachel --> Ross (a veces hay dos líneas seguidas de la misma persona) Y además entiendo que la primera línea de todo el diálogo tiene que ser de un personaje que no sea Ross (lo que sería el input) En Github he subido el excel que he utilizado "script_ross".

No acabo de entender de donde puede venir este error. En principio la "max_length" no afecta, si que hay un "index out of range" pero no entiendo de donde viene...

Te paso el link a mi doc de colab... a ver si mañana por favor lo podemos ver https://colab.research.google.com/drive/15NmiDMwQOOwKYYeepdx1o8gnDqVqeKXr?usp=sharing

HE copiado en el notebook los tres casos, para que veas a qué me refiero.

Gracias!

alabarga commented 3 years ago

puedes usar el DialoGPT directamente (es lo que estas haciendo, o hacer un fine-tuning, es decir un segundo entrenamiento con tus dialogos de friends

aqui tienes dos ejemplos de este segundo escenario

https://nathancooper.io/i-am-a-nerd/chatbot/deep-learning/gpt2/2020/05/12/chatbot-part-1.html https://towardsdatascience.com/make-your-own-rick-sanchez-bot-with-transformers-and-dialogpt-fine-tuning-f85e6d1f4e30

usando un enfoque un poco antiguo

el nuevo enfoque seria usar un Trainer() como viene en este ejemplo

https://github.com/huggingface/transformers/blob/master/examples/pytorch/language-modeling/run_clm.py