Está en la página 1de 83

Curso de

Bagde
Inteligencia
del curso Artificial con IBM
Watson
Isaac Carrada
Introducción
de Watson
A todo esto ¿Qué es Watson?
¿Cómo se come?
Watson es el nombre de los
servicios de AI de IBM

Yo
Formas de Consumo

● SDK
Existente para la mayoría de lenguajes
● API
Consumibles con peticiones REST
● UI
Dentro de algunos servicios, lo podemos
consumir desde su interfaz
Proyecto Final

Tendremos la implementación de un
“chatbot” asistente viajero que
puede escribir/consumir datos de
una base de datos
Personality Insights
Análisis de personalidad
Personality Insights

Servicio basado en la psicología del


lenguaje en combinación con algoritmos
de datos, analiza el contenido mandado
y regresa el perfil de personalidad. La
personalidad es inferida con 3 modelos.
Big Five

Es el modelo más usado para ver cómo una


persona interactúa con el mundo, 5 dimensiones:
● Agreeableness
● Conscientiousness
● Extraversion
● Emotional range
● Openness
Necesidades y Valores

● ¿Qué aspectos de un producto


resuenan con una persona?
- 12 características
● Factores que influencian la
decisión - 5 valores
Preferencias de consumo

● Compras ● Emprendimiento
● Películas ● Medio ambiente
● Música ● Voluntariado
● Lectura y
aprendizaje
● Salud y actividades
Casos de uso

● Mkt especializado
● Adquisición de clientes
● Atención a clientes
● Conexiones personales
● Escribir un CV
Interpretando Resultados

● El resultado es un percentil normalizado


comparado con una población base
● Probablemente - Quizá - Sí
Otras consideraciones

● El texto usado debe ser reflexivo


● Lo importante es que demuestre
qué palabras elige el usuario
● Alrededor de las 3000 palabras se
nivela el resultado
curl -X POST -u "apikey:{apikey}" \
--header "Content-Type:
text/plain;charset=utf-8" \
--header "Accept: application/json" \
--data-binary
@{path_to_file}profile.txt \
"{url}/v3/profile?version=2017-10-13"
Natural Language
Classifier
Clasificación de texto
Natural Language Classifier

Servicio que usa algoritmos de


aprendizaje automático para asignar una
clase a textos cortos. Estas clases son
dadas por el usuario desde un inicio y se
entrena con textos ejemplo.
Uso del Servicio

Preparar datos Crear y entrenar Consumir el Evaluar resultados y


De entrenamiento El clasificador clasificador actualizar datos

● Identificar las ● Usar el API para ● Usamos el API ● Actualiza los datos
clases subir los datos de para mandar texto de entrenamiento
entrenamiento al clasificador
● Adquirir textos ● Crea y entrena un
representativos El entrenamiento El servicio regresa la clasificador usando
comienza clase con mayor los datos de
● Asignar una clase
inmediatamente certeza y otras entrenamiento
a cada texto
opciones actualizados
Casos de Uso

● Clasificación de textos legales.


● Analiza CVs para asignar categorías
● Categorizar consultas de servicios
● Organizar textos en redes sociales.
● Categorizar ofertas
Lenguajes

● Ingles ● Japonés
● Árabe ● Coreano
● Francés ● Portugués
● Alemán ● Español
● Italiano
Otras consideraciones

● Entrene los clasificadores con frases


de texto, cada una de ellas con un
máximo de 60 palabras.
● 5-10 frases mínimo por clase
● Cree hasta 8 clasificadores con cada instancia
de servicio clasificador de lenguaje natural.
● Clasificar hasta 30 frases de texto
independientes en una sola solicitud.
curl -i -u "apikey:{apikey} \
-F training_data=@data_train.csv \
-F
training_metadata="{\"language\":\"es\"
,\"name\":\"TutorialClassifier\"}" \
"{url}/v1/classifiers"
Consumo

La respuesta nos da un Classifier


ID y un estatus.
Podemos consultar el estado del
entrenamiento al igual.
curl -u "apikey:{}” \
"{url}/v1/classifiers/{CID}"

curl -G -u "apikey:{apikey}" \
"{url}/v1/classifiers/{classifier_id}/c
lassify" \
--data-urlencode "text={texto}"
Watson NLU

Análisis de sentimiento
Natural Language
Understanding

Servicio pre entrenado que extrae


categorías, conceptos, emociones,
entidades, palabras clave, metadata,
relaciones, roles semánticos y obtiene
el sentimiento dado cualquier texto.
Categorias

Cada categoría tiene subcategorías y todas


estas son vistas por niveles. Pueden existir
hasta 5 niveles. Por ejemplo:

● Art and entertainment


○ books and literature
■ best-sellers
Conceptos

Identifica conceptos generales


relacionados que no hayan sido
necesariamente referenciados
en el texto.
Emoción

Analiza la emoción en frases/documentos

También podemos obtener la emoción


de una entidad. Ejemplo:

Texto: Amo las manzanas, odio las naranjas


Target: manzana, naranja
Respuesta: manzana: felicidad, naranja: furia
Entidades
Identifica personas, lugares, eventos y algunos
otros tipos de entidades. Por ejemplo:

Enunciado:
IBM es una compañía transnacional con
sede en Nueva York

Resultado:
IBM - compañía
Nueva York - Localización
Palabras Clave

Nos trae palabras relevantes y su


relevancia. Ejemplo:

Respuesta: Nueva York, IBM, compañía


Metadata

Cuando el input fue un URL o un


HTML nos trae el autor de la página
web, el título de la página y la fecha
de publicación.
Relaciones

Identificar cuando dos entidades están


relacionadas y el tipo de relación que
tienen. Ejemplo:

“El Premio Nobel de Física en


1921 se le otorgó a Albert Einstein”

AwardedTo
TimeOf
Roles Semánticos

Estructura la oración en
verbo-sujeto-objeto y nos dice
cuál es el rol de cada objeto/sujeto
en relación con el verbo.
Sentimiento

Analiza el sentimiento de
frases/documentos (positivo o negativo).
También podemos obtener el
sentimiento adjunto a las
entidades/palabras clave.
curl -X POST -u "apikey:{apikey}" \
"{url}/v1/analyze?version=2019-07-12" \
--header "Content-Type: application/json" \
--data '{
"url":
"https://www.unotv.com/noticias/portal/tecnologia/detal
le/conoce-a-cimon-primer-astronauta-hecho-de-inteligenc
ia-artificial-394114/",
"features": {
"sentiment": {},
"categories": {},
"concepts": {},
"entities": {},
"keywords": {}
}
}'
curl -X POST -u "apikey:{apikey}" \
"{url}/v1/analyze?version=2019-07-12" \
--request POST \
--header "Content-Type: application/json" \
--data '{
"text": "¡Esta en una super ubicacion! El servicio pesimo,
gente grosera",
"features": {
"sentiment": {
"targets": [
"ubicacion",
"servicio",
]
},
"keywords": {
"emotion": true
}
}
}'
Watson Discovery
Discovery

Habilita la creación de aplicaciones


cognitivas y de exploración en la nube
mientras enriquece la información oculta
en los datos no estructurados (pueden ser
privados o públicos)
Discovery

Solo toma unos pocos pasos preparar tu


data no estructurada, crear una consulta
de lo que necesitas e integrar esos
hallazgos en tu aplicación
Arquitectura de la solución
Data Ingesta
Los documentos se convierten y
enriquecen automáticamente
utilizando servicios de watson para
añadir la metadata de NLP a tu
contenido, haciendo más sencillo
explorar y aprender del mismo.

Almacenamiento Consultas Salida


La data es “indexeada” Podemos tener un nos da información
en una colección como mejor entendimiento implementable o que
parte de tu ambiente en de los datos haciendo nos ayuda
la nube consultas
Con Assistant

Discovery habilita la implementación


de una habilidad de búsqueda, en un
nodo de Watson Assistant
(únicamente en Assistant Plus)
Watson Discovery News

Set de datos previamente enriquecido e


indexado:
● Keyword Extraction
● Entity
● Semantic Role
● Sentiment
● Relation
● Category
● Crawl and Publication date
Watson Discovery News

● Búsqueda histórica tiene una


profundidad de 60 días
● En español: 60,000 nuevos artículos
diario
Knowledge Studio
Knowledge Studio

Knowledge Studio permite crear un


modelo de ML o reglas personalizado para
nuestro NLU / Discovery
Roles

● Admin
● Project Manager
● Human Annotator
Modelos

● Machine Learning
● Reglas
Type system

Controla la forma en la que el contenido


puede ser anotado dependiendo de
entidades y relaciones previamente
definidas
Menciones, Entidades y
Relaciones

● Mención: texto relevante en tu dominio


● Tipo de Entidad: categorías asignadas a
objetos de la vida real
● Entidad: Menciones clasificadas en tipos
de entidades
● Relación: entre dos entidades, misma
oración
Watson
Assistant
Assistant

Watson assistant es la
herramienta que tiene IBM para
hacer un bot conversacional
Elementos

● Intent
La intención que tiene el usuario
al interactuar con el bot
● Entity
“Variables”. Objetos
● Dialog
Programación del flujo de diálogo
Speech to Text
Speech

API que nos permite transcribir


audio en texto, generalmente se
utiliza integrado con Assistant
Interacciones

● Síncrono (http)
● Asíncrono (http)
● Websocket
Text to Speech
Text

API que nos permite “leer” o


“hablar” un texto, generalmente se
utiliza en implementación con
Assistant y Speech to Text
Voice Agent
Voice Agent

Solución de IBM que contempla el uso de


proveedor SIP - Text To Speech - Assistant -
Speech to Text

Podemos usar SMS y llamadas, se puede


integrar de otras formas
Watson Studio
AI vs ML

¿Es lo mismo Inteligencia


Artificial que Machine Learning?
Aprendizaje Supervisado

● Regresión
Números
● Clasificación
Clases (Binario o palabras)
Aprendizaje no Supervisado

● Clusterización
Encontrar la estructura interna
dentro de nuestros datos
Watson Studio

Watson Studio es la suite que tiene IBM


para todo lo que es Ciencia de Datos
Visual Recognition
Visual Recognition

Utiliza algoritmos de aprendizaje


profundo para analizar imágenes de
escenas, objetos y otros contenidos
Modelos

● General
Entrenado con miles de clases
● Explícito
Si una imagen es apta para uso
general
● Comida
Elementos de comida
● Personalizado
Modelos

● Personalizado
Clasificación y Detección de Objetos
Limitaciones en
Entrenamiento

● Máximo 10,000 imágenes/100 MB por zip


● Mínimo 10 imágenes por zip
● Máximo 256MB por entrenamiento
● Mínimo recomendado: 32x32px
Limitaciones en Consumo

● Máximo 10 MB por imagen


● Mínimo 100MB por zip con hasta 20
imágenes
Buenas Prácticas

● Mínimo 224x224 px por imagen


● Mínimo 100MB por zip con hasta 20
imágenes
● Al menos 50 imágenes por clase positiva
● De 150-200 logra balance de
tiempo/certeza
Buenas Prácticas

● Mismo número de clases negativas que


positivas
● Fondos que sean parecidos a lo que
clasificarás
● Objeto a clasificar: ⅓ mínimo de la imagen
Modelos

● Personalizado
Clasificación y Detección de Objetos
Cloudant
Cloudant

Cloudant es la Base de Datos


no relacional que tiene IBM.
Está basada en Couch DB
Integración

También podría gustarte