Documentando cómo hicimos #RevisaMiGrieta

Documentando cómo hicimos #RevisaMiGrieta

En el sismo del 19 de septiembre de 2017 en México creamos un hashtag para revisar de manera emergente edificios con daños potencialmente peligrosos. #RevisaMiGrieta se crea como un experimento para una posible herramienta de coordinación para la evaluación de grietas y riesgo a través de twitter.

Bd7f0e0118a2ea635b5a06d84cbab283?s=128

Noé Domínguez Porras

February 22, 2018
Tweet

Transcript

  1. Overview: #RevisaMiGrieta y Cómputo Humano Noé Domínguez 22 de Febrero

    de 2018
  2. Overview: #RevisaMiGrieta y Cómputo Humano Noé Domínguez 22 de Febrero

    de 2018
  3. El origen

  4. Pensamientos previos Pensamientos previos: • “La réplica acontecida un día

    después, la noche del 20 de septiembre de 1985, también tuvo gran repercusión para la capital al colapsar estructuras reblandecidas un día antes.” (Wikipedia: Terremoto_de_México_de_1985)
  5. El Problema Apoyar a Protección Civil de manera emergente en

    la evaluación y clasificación de casos urgentes en edificios que pudieran colapsar en las réplicas del sismo. Otras motivaciones • Dar tranquilidad a usuarios que no han sido atendidos por protección civil. • Filtrar la enorme cantidad de solicitudes e información.
  6. Trigger: 3 tweets.

  7. La reacción de la gente

  8. None
  9. None
  10. None
  11. Motivación: 3 tweets

  12. Motivación: 3 tweets

  13. Motivación: 3 tweets

  14. None
  15. None
  16. None
  17. Algunos voluntarios

  18. None
  19. None
  20. None
  21. None
  22. codersmexico.com

  23. Bot para #RevisaMiGrieta (by @poguez)

  24. El bot para #RevisaMiGrieta Fortune en Español, Edición octubre 2017.

  25. El bot para #RevisaMiGrieta https://github.com/codersmexico/revisa-mi-grieta-bot Proyecto para atender necesidades de

    evaluación en grietas después del SismoMX del 19 de Septiembre de 2017. Además ofrece un conjunto de preguntas con posibles respuestas para la información a los usuarios que busquen información relacionada a: - Albergues - Centros de Acopio - Donaciones Fortune en Español, Edición octubre 2017.
  26. El bot para #RevisaMiGrieta https://github.com/codersmexico/revisa-mi-grieta-bot 2 roles de usuario: -

    Voluntario - Afectado Premisa de los usuarios: - Todos deberían de actuar en buena voluntad. Fortune en Español, Edición octubre 2017.
  27. El bot para #RevisaMiGrieta https://github.com/codersmexico/revisa-mi-grieta-bot Features - Manejo de sesiones.

    - Asignación de apoyo. - Respuesta a preguntas conocidas. Fortune en Español, Edición octubre 2017.
  28. Bibliotecas utilizadas https://github.com/codersmexico/revisa-mi-grieta-bot Python - ChatterBot machine learning, conversational dialog

    engine for creating chat bots. http://chatterbot.readthedocs.io Fortune en Español, Edición octubre 2017.
  29. bot = ChatBot() bot = ChatBot( name = "Dora la

    coordinadora", storage_adapter='chatterbot.storage.SQLStorageAdapter', input_adapter="chatterbot.input.VariableInputTypeAdapter", output_adapter="chatterbot.output.OutputAdapter", output_format="text", # input_adapter="chatterbot.input.TerminalAdapter", # output_adapter="chatterbot.output.TerminalAdapter", logic_adapters=[ { "import_path": "chatterbot.logic.BestMatch", "statement_comparison_function": "chatterbot.comparisons.levenshtein_distance", "response_selection_method": "chatterbot.response_selection.get_first_response" }, { 'import_path': 'chatterbot.logic.SpecificResponseAdapter', 'input_text': '@revisamigrieta test', 'output_text': 'Puedes revisar tu estructura en: http://bit.ly/RevisaMiGrieta' }, { 'import_path': 'chatterbot.logic.LowConfidenceAdapter', 'threshold': 0.65, 'default_response': 'Puedo ayudarte con información para inspeccionar en: http://bit.ly/RevisaMiGrieta, espera mientras alguien te ayuda' } ], trainer='chatterbot.trainers.ListTrainer' ) list_trainer.trainer(bot,corpora.dora()) Source: https://github.com/codersmexico/revisa-mi-grieta-bot/blob/master/main.py
  30. bot = ChatBot( name = "Dora la coordinadora", storage_adapter='chatterbot.storage.SQLStorageAdapter', input_adapter="chatterbot.input.VariableInputTypeAdapter",

    output_adapter="chatterbot.output.OutputAdapter", output_format="text", # input_adapter="chatterbot.input.TerminalAdapter", # output_adapter="chatterbot.output.TerminalAdapter", logic_adapters=[ { "import_path": "chatterbot.logic.BestMatch", "statement_comparison_function": "chatterbot.comparisons.levenshtein_distance", "response_selection_method": "chatterbot.response_selection.get_first_response" }, { 'import_path': 'chatterbot.logic.SpecificResponseAdapter', 'input_text': '@revisamigrieta test', 'output_text': 'Puedes revisar tu estructura en: http://bit.ly/RevisaMiGrieta' }, { 'import_path': 'chatterbot.logic.LowConfidenceAdapter', 'threshold': 0.65, 'default_response': 'Puedo ayudarte con información para inspeccionar en: http://bit.ly/RevisaMiGrieta, espera mientras alguien te ayuda' } ], trainer='chatterbot.trainers.ListTrainer' ) list_trainer.trainer(bot,corpora.dora()) Source: https://github.com/codersmexico/revisa-mi-grieta-bot/blob/master/main.py BestMatch En nuestro corpora.py elige la respuesta más parecida. Para hacer la comparación de texto se usa levenshtein_distance y elige la primera que encuentre más parecida.
  31. bot = ChatBot( name = "Dora la coordinadora", storage_adapter='chatterbot.storage.SQLStorageAdapter', input_adapter="chatterbot.input.VariableInputTypeAdapter",

    output_adapter="chatterbot.output.OutputAdapter", output_format="text", # input_adapter="chatterbot.input.TerminalAdapter", # output_adapter="chatterbot.output.TerminalAdapter", logic_adapters=[ { "import_path": "chatterbot.logic.BestMatch", "statement_comparison_function": "chatterbot.comparisons.levenshtein_distance", "response_selection_method": "chatterbot.response_selection.get_first_response" }, { 'import_path': 'chatterbot.logic.SpecificResponseAdapter', 'input_text': '@revisamigrieta test', 'output_text': 'Puedes revisar tu estructura en: http://bit.ly/RevisaMiGrieta' }, { 'import_path': 'chatterbot.logic.LowConfidenceAdapter', 'threshold': 0.65, 'default_response': 'Puedo ayudarte con información para inspeccionar en: http://bit.ly/RevisaMiGrieta, espera mientras alguien te ayuda' } ], trainer='chatterbot.trainers.ListTrainer' ) list_trainer.trainer(bot,corpora.dora()) Source: https://github.com/codersmexico/revisa-mi-grieta-bot/blob/master/main.py SpecificResponseAdapter Si hay un texto de específico, no comparar para buscar el BestMatch. Dar una respuesta específica.
  32. bot = ChatBot( name = "Dora la coordinadora", storage_adapter='chatterbot.storage.SQLStorageAdapter', input_adapter="chatterbot.input.VariableInputTypeAdapter",

    output_adapter="chatterbot.output.OutputAdapter", output_format="text", # input_adapter="chatterbot.input.TerminalAdapter", # output_adapter="chatterbot.output.TerminalAdapter", logic_adapters=[ { "import_path": "chatterbot.logic.BestMatch", "statement_comparison_function": "chatterbot.comparisons.levenshtein_distance", "response_selection_method": "chatterbot.response_selection.get_first_response" }, { 'import_path': 'chatterbot.logic.SpecificResponseAdapter', 'input_text': '@revisamigrieta test', 'output_text': 'Puedes revisar tu estructura en: http://bit.ly/RevisaMiGrieta' }, { 'import_path': 'chatterbot.logic.LowConfidenceAdapter', 'threshold': 0.65, 'default_response': 'Puedo ayudarte con información para inspeccionar en: http://bit.ly/RevisaMiGrieta, espera mientras alguien te ayuda' } ], trainer='chatterbot.trainers.ListTrainer' ) list_trainer.trainer(bot,corpora.dora()) Source: https://github.com/codersmexico/revisa-mi-grieta-bot/blob/master/main.py LowConfidenceAdapter Si no hay una respuesta con un nivel de confianza x, responder con una respuesta por defecto.
  33. Otras dependencias

  34. Issues hacia el beta

  35. API para #RevisaMiGrieta (by @digaresc)

  36. API para #RevisaMiGrieta (by @digaresc) Una interfaz para almacenar, consumir

    y programar sobre la información obtenida de Redes Sociales.
  37. Guía rápida y optimizada para #RevisaMiGrieta (by @mike3run)

  38. Guía rápida y optimizada para #RevisaMiGrieta (by @mike3run)

  39. Guía rápida y optimizada para #RevisaMiGrieta (by @mike3run) Optimizada para

    ser ligera y visible en celulares.
  40. Interés académico

  41. None
  42. Interés académico

  43. None
  44. None
  45. Resumen • La manera en que usamos Twitter en el

    #Sismo19S fue ejemplar. • En México también sabemos usar la tecnología de manera eficiente y creativa. • Un algoritmo puede ser también un proceso humano. • Se puede utilizar la tecnología para coordinar un problema de manera más eficiente. • Hay trabajo por hacer, la inteligencia artificial puede hacer más eficiente este proceso. Agenda
  46. Trabajo Futuro • Mejorar el bot para la coordinación de

    voluntarios y usuarios. • Crear un Dataset de grietas para Machine Learning. Agenda
  47. @noe_dgz noe_dgz@kaist.ac.kr noedominguez.com