AnÃĄlisis de sentimientos con BERT en Python (Tutorial)

āđāļŠāļĢāđŒ
āļāļąāļ‡
  • āđ€āļœāļĒāđāļžāļĢāđˆāđ€āļĄāļ·āđˆāļ­ 19 āļ.āļĒ. 2024
  • ðŸ”ĨðŸ”ĨAcademia OnlineðŸ”ĨðŸ”Ĩ: cursos.codific...
    ðŸ”ĨðŸ”ĨAsesorías y formaciÃģn personalizadaðŸ”ĨðŸ”Ĩ: www.codificand...
    En este video veremos cÃģmo usar BERT para clasificar sentimientos. Al final tendremos una inteligencia artificial que serÃĄ capaz de determinar si un comentario sobre una película es positivo o negativo. Todo usando la librería PyTorch.
    ✅ ÂŋNo quieres perderte ningÚn video? Pues símplemente SUSCRÍBETE, ÂĄes GRATIS!: www.youtube.co...
    ✅ ÂĄSígueme en TWITTER!: / codificandobits
    ✅ ÂĄY tambiÃĐn en FACEBOOK!: / codificandobits
    ---------------------------
    El cÃģdigo fuente de este tutorial:
    ðŸ’ŧ github.com/cod...
    ---------------------------
    â–ķExplicaciÃģn detallada de BERT: â€Ē BERT: el inicio de una...

āļ„āļ§āļēāļĄāļ„āļīāļ”āđ€āļŦāđ‡āļ™ • 117

  • @codificandobits
    @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    ðŸ”ĨðŸ”ĨAcademia OnlineðŸ”ĨðŸ”Ĩ: cursos.codificandobits.com/
    ðŸ”ĨðŸ”ĨAsesorías y formaciÃģn personalizadaðŸ”ĨðŸ”Ĩ: www.codificandobits.com/servicios/

  • @carlosabcs
    @carlosabcs 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +9

    Probablemente el mejor vídeo que he encontrado sobre BERT en el tiempo que llevo estudiÃĄndolo. He leído y visto contenido en inglÃĐs que no se compara con lo que has venido haciendo, desde que explicaste las redes transformers, al video donde explicas cÃģmo funciona BERT y ahora este Tutorial. Felicidades, eres un excelente educador!

  • @damianquijano1706
    @damianquijano1706 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +8

    Me quito el sombrero, lo mejor que he visto , y eso que he visto muchos vídeos. Se nota un gran dominio en todos los aspectos. Para los que somos programadores, que aprendemos sobre temas desconocidos al programarlos, esto es una joya que vale la pena verla y reproducirla muchas veces. OjalÃĄ se pueda ver una demostraciÃģn en espaÃąol y otra en Twiter (anÃĄlisis de sentimiento). Felicitaciones.

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Gracias por tu comentario DamiÃĄn. El saber que encuentras Útil este contenido anima a continuar desarrollando videos de gran calidad. Ya tomÃĐ nota de tu sugerencia de anÃĄlisis de sentimientos en Twitter, espero pronto hacer un video sobre el tema. Un saludo!

  • @guillermoperalta6000
    @guillermoperalta6000 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    no sabes lo agradecido que estoy, esto me servirÃĄ para mi tesis, antes lo estaba haciendo con RNN pero me quedaba sin memoria GPU, acÃĄ se cumple el titulo del paper de transformers "Attention is all you need". Eres un grande!

  • @andrescamiloramirezgaita4998
    @andrescamiloramirezgaita4998 3 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Como siempre un crack. Muchas gracias!!!!!

  • @cristhian4513
    @cristhian4513 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    tus videos me motivan :) , la gente interesada debe conocerte mÃĄs

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      A mi me motivan los comentarios de todos ustedes. Gracias por ser un fiel seguidor cristhIAn. Un saludo!

  • @DANITO285
    @DANITO285 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Diossss q buen video explicas paso a paso y por que se hacen las cosas es increible muchas gracias

    • @codificandobits
      @codificandobits  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Con gusto, un saludo!

  • @fespinoza32
    @fespinoza32 6 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Excelente video, uno de los mejores que he visto. Una consulta es necesario la columna label que generas en base a la columna sentiment que tenias en el archivo csv original?, ya que en el caso que quiero aplicar tengo una lista de comentarios en ingles pero no tengo ninguna columna adicional? Gracias de antemano por tu respuesta.

  • @gilbertmurati2043
    @gilbertmurati2043 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Excelente tutorial. Muchísimas gracias por montar esta clase de videos. Me encantaría que pudieras hacer uno aplicado a contestar preguntas en espaÃąol. Saludos.

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hola Gilbert, me leíste la mente! El tema que propones es precisamente el tema del prÃģximo video! Un saludo!

    • @gilbertmurati2043
      @gilbertmurati2043 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@codificandobits Excelente!!! EstarÃĐ atento. Muchísimas gracias por leer y responder.

  • @silviarincon51
    @silviarincon51 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +10

    Hola, me ha encantado el vídeo, pero en la secciÃģn de Entrenamiento, cuando declaras las Épocas me sale el siguiente error: TypeError: dropout(): argument 'input' (position 1) must be Tensor, not str. He intentado agregar algunos comando que he encontrado como ayudas, pero sigue sin funcionar. Te agradezco algÚn tipo de ayuda!

    • @nicolasrodriguez5780
      @nicolasrodriguez5780 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +26

      Me pasÃģ igual. Sucede porque HugginFace se actualizÃģ a la versiÃģn 4 recientemente. Para que te funciones debes agregar el parÃĄmetro "return_dict=False" al Modelo, es decir, en la secciÃģn 15 donde se define el modelo debes cambiar esta linea y dejarla así: self.bert = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME,return_dict=False)

    • @gonzalosurribassayago4116
      @gonzalosurribassayago4116 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@nicolasrodriguez5780 Gracias me funciono

    • @joseluisgonzalezpartida5391
      @joseluisgonzalezpartida5391 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@nicolasrodriguez5780 Muchas gracias me funciono

    • @LuisAlbertoRamosRamirez
      @LuisAlbertoRamosRamirez āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@nicolasrodriguez5780 Excelente me funcionÃģ, gracias

    • @emmanueldavezac6645
      @emmanueldavezac6645 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@nicolasrodriguez5780 muchas gracias, no hubiera podido solucionarlo sin tu comentario

  • @kmilores1q2w
    @kmilores1q2w 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    muy buen video, excelente la explicaciÃģn de cada parte felicitaciones

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Gracias por tu comentario Camilo. Un saludo!

  • @salvadorcontreras8946
    @salvadorcontreras8946 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente vídeo y excelente explicaciÃģn.

  • @josemanuelmanesridaura8874
    @josemanuelmanesridaura8874 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Gracias por Compartir. Genial como SIEMPRE.

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      A ti JosÃĐ Manuel por seguir mis videos. Un saludo!

  • @alvarodepie6206
    @alvarodepie6206 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muy bueno y didÃĄctico ejemplo! Te sigo

  • @sebasgj1982
    @sebasgj1982 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola!! quiero agradecer por tan excelente y completo video Tutorial! He aprendido muchísimo y me gustaría saber si puedo utilizar DistilBERT con este mismo esquema?. Muchas gracias! y espero tu respuesta!

  • @samuelramirez2797
    @samuelramirez2797 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente video, muy explicativo, saludos!

  • @fernandorojasquezada8928
    @fernandorojasquezada8928 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente contenido! Gracias

  • @bryamblasrimac9945
    @bryamblasrimac9945 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola Miguel, gracias por la explicaciÃģn, siempre tus videos son muy didÃĄcticos y he aprendido bastante gracias a ello, tengo una duda acerca de que si en la capa de salida puedo usar una funciÃģn de activaciÃģn sigmoidea ya que se puede interpretar como una clasificaciÃģn binaria. Gracias.

  • @adrianaperez2134
    @adrianaperez2134 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Me sirvio muchisimo, gracias!

  • @capablancastyle
    @capablancastyle 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Felicitaciones, muy claro

  • @felipela2227
    @felipela2227 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Podrias hacer un tutorial para Clusterizar usando Bert, explicas bien tus temas.

  • @marsupilami125
    @marsupilami125 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buenísimo el tutorial

  • @josetaboada3796
    @josetaboada3796 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buen vídeo me encanta la inteligencia artificial!

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola JosÃĐ, creo que estamos en la misma barca! Un saludo!

    • @josetaboada3796
      @josetaboada3796 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@codificandobits Exactamente mi amigo, mi sueÃąo es crear una I.A con conciencia propia, aunque sea algo imposible realizarÃĐ muchos esfuerzos.

  • @sergioalonso7157
    @sergioalonso7157 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muchas gracias!! Gran vídeo! :)

  • @MegaDragonxD
    @MegaDragonxD 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Hola! Muchas gracias por el video. Tengo una pregunta. BERT solo procesa lenguaje ingles?

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      No, funciona prÃĄcticamente en cualquier idioma. Lo importante es que cuentes con un set de datos lo suficientemente grande para poderlo entrenar. En Hugging Face puedes encontrar varios modelos BERT entrenados para diferentes tareas en EspaÃąol. Un saludo!

  • @juancarlosgonzalez-avella361
    @juancarlosgonzalez-avella361 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Gracias son muy buenos tus turoriales

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Gracias por tu comentario Juan Carlos. Te envío un saludo!

    • @juancarlosgonzalez-avella361
      @juancarlosgonzalez-avella361 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      @@codificandobits Gracias a ti, por el esfuerzo que pones y lo que aportas

  • @juansolares7198
    @juansolares7198 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, muy bueno el curso. ÂŋEs posible ajustarlo para tener mas clasificaciÃģnes, es decir muy malo, malo, regular, bueno y muy bueno?

    • @codificandobits
      @codificandobits  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Claro que sí, aunque en este caso deberías cambiar el set de entrenamiento para incluir esas nuevas categorías. Un saludo!

  • @omarmillandelgado1641
    @omarmillandelgado1641 10 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    excelente material, me gustaría poder contactarlo para asesoría en alguno proyectos de investigaciÃģn,

  • @ArielotaPelot
    @ArielotaPelot āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Hola profe, donde puedo encontrar el CSV?

  • @mocatis
    @mocatis 4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™ +1

    Gracias no pude completar el elercicio:
    TypeError: dropout(): argument 'input' (position 1) must be Tensor, not str

    • @jessytopon4260
      @jessytopon4260 4 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      Disculpa tal vez hubo alguna forma de arreglar el error?

  • @josecarlosquinonespuma4339
    @josecarlosquinonespuma4339 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    quede asombrado con el tuturial...!!! tengo la siguiente duda... si yo quiero que analice comentarios en espaÃąol, debo tener el set de datos en espaÃąol? tengo que descargar de HUGGING FACE en espaÃąol? que debo hacer? GRACIAS

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hola. Sí, el primer requisito es que el modelo que uses (puede ser uno entrenado por ti mismo, o descargado por ejemplo de Hugging Face) debe estar entrenado con un corpus en espaÃąol. Un saludo!

  • @danielochoa2300
    @danielochoa2300 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, quería preguntarte como puedo acelerar la ejecuciÃģn del cÃģdigo sabiendo que tengo una tarjeta AMD Radeon (TM) RX Vega 10 Graphics, ya que tengo entendido que CUDA es para NVIDIA. Muchas gracias y Saludos.

  • @guillermoperalta6000
    @guillermoperalta6000 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Que puedo hacer para buscar la tasa de aprendizaje optima? por ejemplo, en este tutorial usas lr=2e-5, Âŋcomo se que ese valor es el Ãģptimo? Saludos

  • @camiloalejandroahumadagome6195
    @camiloalejandroahumadagome6195 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    excelente video

  •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, sería fantÃĄstico si generases un vídeo usando BertForSequenceClassification en un problema de clasificaciÃģn multiclase.... Âŋte atreves con el reto?

  • @daniel_edu7
    @daniel_edu7 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Podemos hacer una demostraciÃģn con tÃĐcnicas previas a BERT?

  • @raulangeljimenezhernandez3342
    @raulangeljimenezhernandez3342 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muy buen video! Muchas gracias, solo una pregunta si no estoy usando google colab hay alguna forma en la que pueda de igual manera desde el jupyter notebook obtener los dato? o en ese caso si tocaria descargarlos?

  • @DeyvisGarcia-cm2vk
    @DeyvisGarcia-cm2vk 10 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

    Buenas tardes el archivo de Excel de donde lo saca o si nos puede pasar

  • @gutlopmi
    @gutlopmi 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

    Me sale insistentemente este error y no se que hacer ya.
    ---------------------------------------------------------------------------
    RuntimeError Traceback (most recent call last)
    in ()
    5 print('-------------------')
    6 train_loss,train_loss = train_model(
    ----> 7 model, train_data_loader, loss_fn, optimizer, device, scheduler,len(df_train)
    8 )
    9 test_loss, test_loss = eval_model(
    4 frames
    /usr/local/lib/python3.6/dist-packages/torch/_utils.py in reraise(self)
    426 # have message field
    427 raise self.exc_type(message=msg)
    --> 428 raise self.exc_type(msg)
    429
    430
    RuntimeError: Caught RuntimeError in DataLoader worker process 0.
    Original Traceback (most recent call last):
    File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop
    data = fetcher.fetch(index)
    File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/fetch.py", line 47, in fetch
    return self.collate_fn(data)
    File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in default_collate
    return {key: default_collate([d[key] for d in batch]) for key in elem}
    File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 73, in
    return {key: default_collate([d[key] for d in batch]) for key in elem}
    File "/usr/local/lib/python3.6/dist-packages/torch/utils/data/_utils/collate.py", line 55, in default_collate
    return torch.stack(batch, 0, out=out)
    RuntimeError: stack expects each tensor to be equal size, but got [129] at entry 0 and [200] at entry 1

  • @Henrry0
    @Henrry0 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, excelente video, me podria decir cual es la difrencias entre los algoritmos BERT, NER Y POT TAGGING y cuales funcionan mejor o peor uno del otro? por favor.

    • @codificandobits
      @codificandobits  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola RamÃģn. BERT es como tal un modelo de Deep Learning que permite analizar el lenguaje (acÃĄ en el canal encontrarÃĄs un video donde lo explico en detalle).
      Por otra parte NER y POS (Part of Speech) Tagging son tareas propias del procesamiento del lenguaje natural. NER viene del inglÃĐs "Named Entity Recognition" que busca extraer del texto elementos como nombres de personas, nombres de organizaciones, ubicaciones, fechas, etc.; mientras que POS intenta encontrar los elementos que componen una frase escrita: verbo, adverbio, conjunciones, artículos. etc.
      Un saludo!

  • @felipegfd1
    @felipegfd1 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, hay alguna forma de subir este modelo a huggingface para utilizarlo con la librería de transformers?
    Es que lo estoy tratando de hace, pero dice que espera un archivo .bin y este es un archivo .pth

  • @jalbarracin
    @jalbarracin 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente y felicitaciones por contenidos de valor como este y todos los videos :)
    -> Me gustaría ver: como grabar el modelo y luego cargarlo para usarlo en producciÃģn (model.save/load)

    • @acecomia7723
      @acecomia7723 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      se refiere a guardar los pesos? torch.save(model.state_dict(), 'BERT_sentimientos.pth') podria ser

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola Javier, quÃĐ bueno saber de tí! Sí, es algo parecido a como lo menciona ACECOM IA en el comentario de abajo. AcÃĄ mÃĄs informaciÃģn: pytorch.org/tutorials/beginner/saving_loading_models.html

  • @softlucionsfreesoft2064
    @softlucionsfreesoft2064 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muchas gracias, como siempre ;)

  • @unavidamasporconocer7159
    @unavidamasporconocer7159 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Vale, muchas gracias por tu ayuda, cuando ya tengo el resultado, como puedo hacer que el codigo me ayude con 100 reviews?

  • @wilfredomartel7781
    @wilfredomartel7781 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Excelente video. ÂŋPodrías usar spanberta? Y de paso entrenar con tu propio corpus?

    • @wilfredomartel7781
      @wilfredomartel7781 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Entrenar con set de data en espaÃąol, por favor.

  • @wilsonalbertdiazvargas9645
    @wilsonalbertdiazvargas9645 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    En espaÃąol hay algÚn data set con muchos datos?

  • @albixtor89
    @albixtor89 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Torch seria muy bueno profe. Muchas gracias

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola. Tienes razÃģn. Desde hace un tiempo tengo pensado un video sobre Pytorch, espero pronto poderlo publicar. Un saludo!

  • @eduardoalves4772
    @eduardoalves4772 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Melhor vídeo, parabÃĐns!!

  • @omarmillandelgado1641
    @omarmillandelgado1641 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    hola, excelente material, es posible utilizar Bert par anÃĄlisis de sentimientos de varios sitios web la vez?

    • @codificandobits
      @codificandobits  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Claro que sí. El problema no es tanto BERT sino mÃĄs bien la interfaz que usarÃĄs. Es decir: debes usar una API que tome los datos de los sitios web y la envíe a la API del servicio donde tengas montado BERT para hacer el anÃĄlisis de sentimientos. Un saludo!

    • @omarmillandelgado1641
      @omarmillandelgado1641 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      @@codificandobits gracias mil por su respuesta, cÃģmo me podría ayudar en un proceso investigativo? me interesa publicar y podríamos ser coatores, quedo atento

  • @katastrofabian
    @katastrofabian 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buena tarde, estoy tratando de implementar este programa para practicar, practicamente todas las líneas corren bien, excepto la 44 que me muestra BrokenPipeError: [Errno 32] Broken pipe, de casualidad sabe por que?

  • @diegofernandomartinezherre9081
    @diegofernandomartinezherre9081 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola Miguel. Muy bueno su video. Le comento yo ando replicando uno igual para detectar maltrato de clientes. Sin embargo, no sÃĐ si la data la debo meter al espaÃąol o inglÃĐs?

    • @codificandobits
      @codificandobits  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola Diego. Todo depende del idioma que vayas a usar en la aplicaciÃģn final, que debe coincidir con el idioma que uses para entrenar el modelo. Un saludo!

  • @rafaelguzman5874
    @rafaelguzman5874 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Buenos días una pregunta este modelo tambiÃĐn sirve para comentarios es espaÃąol

    • @codificandobits
      @codificandobits  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola Rafael. Realmente no, porque el modelo usado en el video estÃĄ entrenado específicamente para el idioma InglÃĐs.
      Lo que debes hacer es usar un modelo en EspaÃąol (lo puedes encontrar en Hugging Face) y afinarlo con un set de datos con comentarios tambiÃĐn en EspaÃąol.
      Un saludo!

  • @adriangranados3066
    @adriangranados3066 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Muchas gracias!
    Sería posible hacer un ejemplo con espaÃąol.

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +2

      Claro que sí AdriÃĄn. El prÃģximo video es un ejemplo con BETO (BERT en EspaÃąol). Un saludo!

    • @rogersjavier
      @rogersjavier 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola, ya estÃĄ publicado el video de beto?

  • @acecomia7723
    @acecomia7723 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    yo todo esperanzado lo monte en mi 1050ti, memoria llena en cuda, menos hilos, xd tus 15min me esperanzaron falsamente, buen video jajaja

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Realmente en Google Colab fueron casi 50 minutos. Aunque no tengo los datos de la GPU usada en el video. Un saludo!

  • @hugoapaz7
    @hugoapaz7 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    buen dia, tengo una duda, quise hacer tokens de una frase en espaÃąol pero no la reconoce. sabe de alguna soluciÃģn?

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola Hugo, Âŋme puedes compartir el cÃģdigo que estÃĄs desarrollando para entender mejor y poder responderte?

  •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, en primer lugar quiero felicitarte por tus vídeos. VerÃĄs he trabajado con embeddings, he creado redes neuronales y usado algoritoms de ML, pero hasta el momento no he usado transformers, y me piden en el pryecto que se empleen en diferentes idiomas (espaÃąol, inglÃĐs y chino). ÂŋHe entendido bien al pensar que BERT es multilingÞe? Porque... por otro lado he visto diferentes versiones de BERT, para francÃĐs, aleman, espaÃąol,.... y ya me entran dudas. Por cierto, ÂŋcÃģmo se podría especificar el uso de una versiÃģn concreta? Gracias anticipadas.
    JerÃģnimo

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Hola JerÃģnimo y muchas gracias por tu comentario.
      Con respecto hasta pregunta: el uso de BERT depende de las características de tu proyecto. En tÃĐrminos generales puedes usar BERT para tareas como comprensiÃģn de texto, anÃĄlisis de sentimientos o pregunta respuesta (por ejemplo). Pero no funciona para generaciÃģn de texto.
      En tÃĐrminos generales hay que mirar las necesidades de tu proyecto y escoger la variante de redes transformer que mÃĄs se adecÚe. En todo caso todas las variantes pueden ser entrenadas para que funcionen en diferentes idiomas.
      Un saludo!

    •  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      @@codificandobits Muchas gracias, y de nuevo felicidades

  • @guillotus2279
    @guillotus2279 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola, hay alguna red neuronal que haga lo mismo pero en idioma EspaÃąol?

  • @juanjosecerquera5855
    @juanjosecerquera5855 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola!, excelente video!, pero tengo unas dudas, me sale un pequeÃąo error, quÃĐ puedo hacer para resolverlo ?
    dropout(): argument 'input' (position 1) must be Tensor, not str

    • @angelbeltran6274
      @angelbeltran6274 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Pudiste resolverlo? tambien me sale a mi

    • @lnnbravo
      @lnnbravo 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      #Codificacion para introducir a BERT
      encoding = tokenizer.encode_plus(
      sample_txt,
      max_length = 10,
      truncation = True,
      add_special_tokens = True,
      return_token_type_ids = False,
      #pad_to_max_length = True,
      padding = 'max_length',#este corregido
      return_attention_mask = True,
      return_tensors ='pt'
      )
      #tambien
      #DAta Loader:
      def data_loader(df,tokenizer,max_len,batch_size,num_workers):
      dataset = IMDBDataset(
      reviews = df.review.to_numpy(),
      labels = df.label.to_numpy(),
      tokenizer = tokenizer,
      max_len = MAX_LEN
      )
      return DataLoader(dataset,batch_size=BATCH_SIZE,num_workers = num_workers)
      #tambien
      train_data_loader = data_loader(df_train, tokenizer, MAX_LEN, BATCH_SIZE, num_workers=2)
      test_data_loader = data_loader(df_test, tokenizer, MAX_LEN, BATCH_SIZE, num_workers=2)
      #tambien
      def eval_model(model, data_loader, loss_fn, device, n_examples):
      model.eval()
      losses = []
      correct_predictions = 0
      with torch.no_grad():
      for batch in data_loader:
      input_ids = batch['input_ids'].to(device)
      attention_mask = batch['attention_mask'].to(device)
      labels = batch['label'].to(device)
      outputs = model(input_ids=input_ids, attention_mask=attention_mask)
      _, preds = torch.max(outputs, dim=1)
      loss = loss_fn(outputs, labels)
      correct_predictions += torch.sum(preds == labels)
      losses.append(loss.item())
      return correct_predictions.double() / n_examples, np.mean(losses)

    • @lnnbravo
      @lnnbravo 7 āļŦāļĨāļēāļĒāđ€āļ”āļ·āļ­āļ™āļāđˆāļ­āļ™

      self.bert = BertModel.from_pretrained(PRE_TRAINED_MODEL_NAME,return_dict=False)
      o inenta esto

  • @hugoarmandopazvivas5013
    @hugoarmandopazvivas5013 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    buen día, estoy entrando en el mundo de AI, y quería saber si despuÃĐs de entrenar un modelo con BERT, como el del video; como puedo acceder a ese modelo despuÃĐs de entrenado;
    es decir, entreno el modelo y lo uso, si luego de un tiempo lo quiero volver a usar debo entrenar de nuevo o Âŋexiste alguna manera de guardar los resultados de ese entrenamiento?

    • @xeazy_gunz1058
      @xeazy_gunz1058 2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      De casualidad encontraste la respuesta?

  • @juancarlosbarajas2091
    @juancarlosbarajas2091 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    puede usarse con 3 clases? positivo, neutro, negativo

    • @codificandobits
      @codificandobits  āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§ +1

      Sí claro. Lo importante es contar con un set de datos de entrenamiento/prueba/validaciÃģn que contenga esas 3 categorías. Un saludo!

  • @leantin9907
    @leantin9907 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Donde puedo acceder al dataset que usas para replicar tu codigo ?

    • @codificandobits
      @codificandobits  3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      En la descripciÃģn del video encuentras el enlace: github.com/codificandobits/Analisis_de_sentimientos_con_BERT
      Un saludo!

  • @DianaFarfanasdqwe
    @DianaFarfanasdqwe āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Hola BERT , es capaz de analizar texto en espaÃąol?

  • @danielsoto8889
    @danielsoto8889 3 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    Tengo un archivo de Excel de 500 comentarios como puedo clasificar esos comentarios ya hice este tutorial y excelente pero quiero tener los sentimientos de todos los 500 comentarios

    • @codificandobits
      @codificandobits  2 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      Hola Daniel. Depende, si estÃĄn en InglÃĐs puedes usar el cÃģdigo que muestro en el video sin modificaciÃģn alguna. Simplemente debes llevar los comentarios de Excel a Python (usando por ejemplo la librería Pandas) y preprocesarlos para que queden en el mismo formato requerido por el modelo.
      Pero si estÃĄn en EspaÃąol debes: (1) usar un modelo BERT pre-entrenado en EspaÃąol (puedes descargar uno de Hugging Face); (2) afinarlo para anÃĄlisis de sentimientos; (3) usar el modelo afinado para generar predicciones sobre tu dataset. En el paso (2) necesitas usar tambiÃĐn un dataset en EspaÃąol.
      Un saludo!

  • @acecomia7723
    @acecomia7723 4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

    hubieses guardado los pesos y compartido :(

    • @codificandobits
      @codificandobits  4 āļ›āļĩāļ—āļĩāđˆāđāļĨāđ‰āļ§

      ðŸĪ” ðŸĪ” tienes razÃģn!