Академический Документы
Профессиональный Документы
Культура Документы
OFICINA DE TIC
ALUMNOS:
Nombre
Cargo
Firma
Nombre
Cargo
Firma
Contenido
1. DESCRIPCIÓN DEL SISTEMA ................................................................................... 4
2. DESCRIPCIÓN DEL PROBLEMA ............................................................................... 4
3. ALCANCE DEL SISTEMA ........................................................................................... 6
4. SELECCIÓN TECNICA PARA RESOLVER EL PROBLEMAS .................................... 7
5. PLAN PARA EL DESARROLLO DEL SISTEMA: ...................................................... 11
6. DESCRIPCIÓN DE LA ARQUITECTURA DEL SISTEMA: ........................................ 13
7. DESCRIPCIÓN DE LOS DATOS DEL SISTEMA ...................................................... 15
7.1. Descripción de Datos:......................................................................................... 15
8. DESCRIPCIÓN DEL PROTOTIPO DEL SISTEMA ................................................... 16
8.1. Interacción usuario – chatbot .............................................................................. 17
9. DESCRIPCIÓN DETALLADA DEL SISTEMA............................................................ 19
9.1. Descripción del Dataset ...................................................................................... 19
9.1.2. Preparación del Dataset .................................................................................. 19
9.1.3. Embedding de inputs ....................................................................................... 21
9.1.4. Red Neuronal Convolucional ........................................................................... 22
10. RESULTADOS DEL SISTEMA IA ........................................................................... 24
11. TRABAJOS FUTUROS ........................................................................................... 25
1. DESCRIPCIÓN DEL SISTEMA
El proyecto planteado por el grupo tiene como finalidad desarrollar un sistema capaz de
reconocer preguntas frecuentes del negocio de las AFP, para ello tendremos un banco de
preguntas y respuestas, así como flujos conversacionales definidos.
No es difícil vaticinar que los robots serán en los próximos años los protagonistas en
las relaciones entre las compañías y sus clientes. El cambio en el perfil de usuario de
ciertos servicios ha hecho que las empresas empiecen a preocuparse por querer estar
donde los clientes están.
Actualmente, los usuarios buscan inmediatez a la hora de realizar cualquier trámite y de ahí
que la utilización de los chatbots integrados en redes sociales, por parte de las compañías,
sea una apuesta segura y adaptada a sus potenciales clientes. La implantación de los bots
en las estrategias de las empresas va a ser otro gran paso en su revolución tecnológica.
Como bien indicó recientemente el CEO de Microsoft, Satya Nadella, los bots se están
convirtiendo en las nuevas apps. Así, las conversaciones de persona a persona quedarán
a un lado dejando paso a la relación entre personas y robots basada en la inteligencia
artificial.
Para comprender esta revolución tecnológica y cómo afectará tanto a compañías como a
usuarios, es importante conocer ciertos puntos que desarrollaremos a continuación.
El hecho de que los chatbots estén en el punto de mira de las empresas se debe a que son
escalables. Un dato significativo que apoya esto son los 1.600 millones de personas que
usaron aplicaciones de mensajería móvil en 2016; un número que se prevé que
aumentará notablemente llegando al 80% de los usuarios de teléfonos inteligente en 2018.
Así, la popularidad de los bots va en aumento pero hay que tener en cuenta que, como
todo, debe adaptarse al perfil del usuario consiguiendo la eficiencia que tanto empresa
como cliente buscan. Debemos tener en cuenta que alrededor del 60% de los usuarios de
los chatbots son los conocidos como Millennials, tienen entre 13 y 19 años, y han
crecido utilizando tecnologías bajo demanda a las que ahora se suman los chatbots. Las
compañías deben tener claro cuál es el objetivo y a quién quieren llegar con este tipo de
servicios para que sean totalmente eficientes. La incorporación de los chatbots facilita, por
un lado, la reducción de costos en la atención al cliente de las empresas, y por otro, facilita
la comunicación entre el cliente y la empresa.
4. SELECCIÓN TECNICA PARA RESOLVER EL PROBLEMAS
Los árboles de decisión es una de las herramientas más útiles y utilizadas para la
toma de decisiones adecuadas teniendo varias alternativas posibles de acción. El
árbol de decisión es una buena ayuda para elegir entre varios cursos de acción. El
nombre de árbol de decisión proviene de la forma que adopta el modelo, semejante
a un árbol. Está formado por múltiples nodos cuadrados, que representan los puntos
de decisión, y de los cuales surgen ramas que representan las distintas alternativas.
Características
o Es una forma gráfica y analítica de representar todos los sucesos
posibles a partir de una decisión asumida.
o Ayuda a tomar la decisión más acertada, desde el punto de vista
probabilístico, ante todas las posibles soluciones.
o Permite visualizar todas las posibles soluciones a un problema.
Corpus:
Que es una AFP? Las AFP son instituciones financieras privadas que tienen como único fin la
q es una afp? administración de los Fondos de Pensiones bajo la modalidad de cuentas
k es una AFP? personales.
Como funciona una AFP? Las AFP brindan prestaciones de jubilación, invalidez, sobrevivencia y gastos de
Como trabaja una AFP? sepelio, en conformidad con el Texto Único Ordenado de la Ley del Sistema
Privado de Pensiones (SPP) Decreto Supremo 054-97-EF.
corpus =
pd.read_excel("C:/Users/Computer/Downloads/Habitat_Habi_PreguntasRespuesta
s_v1.1-2.xlsx")
le = LabelEncoder()
le.fit(corpus.Respuesta)
corpus.Respuesta = le.transform(corpus.Respuesta)
corpus.Pregunta=corpus.Pregunta.astype("str")
spanish_stopwords = stopwords.words('spanish')
non_words = list(punctuation)
non_words.extend(['¿', '¡'])
vectorizer = CountVectorizer(lowercase = True, stop_words = spanish_stopwords)
a = corpus.Pregunta.tolist()
tf = vectorizer.fit_transform(a)
b = vectorizer.transform(a).toarray()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X_train, y_train)
predict_test = clf.predict(X_test)
metrics.accuracy_score(predict_test, y_test)
Resultados:
5. PLAN PARA EL DESARROLLO DEL SISTEMA:
Se procederá a utilizar la siguiente metodología
1. Identificación
2. Conceptualización
3. Formalización
4. Implementación
5. Testeo
6. Revisión del prototipo
FASE 1: IDENTIFICACIÓN
Desde la lectura de libros o artículos, como así también la definición de cuáles son
las funciones o tarea más idóneas para ser realizadas por el sistema experto. Esas
tareas son importantes para determinar que lenguaje y que sistema se usará:
1. Cumplir con todo los objetivos que se planteo
FASE 2: CONCEPTUALIZACIÓN
Se realizan entrevistas con el experto, con el objetivo de identificar y caracterizar el
problema informalmente. El experto de campo y el grupo definen el alcance del
sistema experto, es decir, que problemas va a resolver concretamente el sistema
experto.
FASE 3: FORMALIZACIÓN
Con el problema adecuadamente definido el grupo empieza a determinar los
principales conceptos del dominio que se requieren para realizar cada una de las
tareas que va a resolver el sistema, tratando de entender conceptos que son
relevantes e importantes solicitándole al experto que explique y justifique los
razonamientos que utiliza para resolver los problemas. Esto es importante para la
tarea de definición del sistema experto y para mantener una adecuada
documentación del mismo, ya que es útil para la tarea de diseño, construcción y
para posteriores modificaciones del sistema.
La estructura del conocimiento indica que tareas y que términos está usando y la
estrategia indica cómo y cuándo el sistema experto debe establecerlas.
FASE 4: IMPLEMENTACIÓN
Crear un prototipo del CHATBOT para así comprobar si hemos conceptualizado
bien la solución del problema.
Formalizar el conocimiento obteniendo del experto y elegir la organización y el
lenguaje de programación, en nuestro caso se podría usar Python para el
procesamiento de lenguaje natural y Microsoft Bot Framework para el Diseño del
bot.
FASE 5: PRUEBA
Se refina el sistema prototipo, depurado la base de conocimiento, refinando reglas,
rediseñando la estructura del conocimiento, o reformulando conceptos básicos, con
el objetivo de capturar información adicional que haya proporcionado el experto.
También se consultan en esta etapa otros expertos para, corroborar, controlar,
ampliar y refinar el prototipo.
Los usuarios interactuan con el canal el cual puede ser una página web, correo electronico,
alguna aplicación de mensajería, entre otros; los cuales son llamados proveedores.
En el siguiente punto tenemos la UX, en los chatbots se aplica como la capa intermedia,
Se tienen 2 tipos de UX:
EL FACILITADOR:
Incluye API's y servicios que se van a integrar al chatbot para realizar tareas
determinadas, pueden ser usadas como fuente de datos, herramientas de
procesamiento, etc.
Además, tenemos las BD las cuales son responsables de almacenar informacion
propia de los usuarios o del chatbot, esta información debe estar disponible en todo
momento.
BD: Sql
7. DESCRIPCIÓN DE LOS DATOS DEL SISTEMA
- Batch Size: Es el tamaño del lote que define el número de muestras que se
propagarán a través de la red. Por ejemplo, supongamos que tiene 1050
muestras de entrenamiento y desea configurar batch_size igual a 100.
Algorithm toma las primeras 100 muestras (del 1 ° al 100 °) del conjunto de
datos de entrenamiento y la red de trenes. Luego toma el segundo 100
muestras (del 101º al 200º) y vuelve a entrenar la red. Podemos seguir
haciendo este procedimiento hasta que propaguemos a través de las redes
todas las muestras. El problema generalmente ocurre con el último conjunto
de muestras. En nuestro ejemplo, hemos usado 1050 que no es divisible por
100 sin residuo. La solución más simple es solo obtener 50 muestras finales
y entrenar a la red.
- Epoch: Una época consiste en un ciclo de entrenamiento completo en el
conjunto de entrenamiento. Una vez que se ve cada muestra en el conjunto,
comienza de nuevo, marcando el comienzo de la segunda época.
CANAL
ES BOT
CONNECTOR /
BOT SERVICE
SERVICIO WEB
(Servicio web creado a Código fuente del
partir del modelo de chatbot
intenciones (desarrollado en C#
desarrollado en .NET)
Python)
Luego las oraciones pasan a ser arrays de los códigos de las palabras.
Lista Codificadas
["hay", "alguien", "aquí", "\TAB", "\TAB", "\TAB", [121, 14, 23, 1, 1, 1, 1,
"\TAB", "\TAB"] 1]
["buen", "dia", "\TAB", "\TAB", "\TAB", "\TAB",
"\TAB", "\TAB"] [35, 72, 1, 1, 1, 1, 1, 1]
["cuentame", "ha", "crecido", "mi", "dinero", "en", [64, 114, 57, 151, 74,
"ustedes", "\TAB"] 82, 225, 1]
["he", "perdido", "mi", "dinero", "en", "ustedes", [122, 180, 151, 74, 82,
"\TAB", "\TAB"] 225, 1, 1]
["cuanto", "he", "pagado", "\TAB", "\TAB", "\TAB", [62, 122, 174, 1, 1, 1,
"\TAB", "\TAB"] 1, 1]
El primer paso del modelo consiste en pasar a vectores cada una de las palabras.
Esta capa permite detectar y cuantificar la semejanza semántica entre las palabras.
Luego dos palabras con significados similares tendrán similar representación
(vectorial). Como parámetro se definió que estos vectores sean de dimensión 15.
Como resultado, cada oración pasaría a ser una matriz de 8 x 15. Por ejemplo, la
primera oración seria:
[[-0.10606, 0.3080 , 0.2166, -0.0153, -0.0188, 0.13356, 0.0544, 0.1002, 0.1248, -0.0542 , -0.1735, 0.24042, -
0.02885, -0.00254, -0.11876],
[-0.2384, -0.09884, -0.19226, 0.2699, -0.2412, 0.2589, 0.2256, -0.25463, 0.1967 , 0.25486, -0.23068, 0.2601 ,
0.05362, 0.0310, 0.0574],
[-0.1019, -0.1787, -0.1463, -0.18758, -0.1018, 0.06210, -0.27183,-0.1826, 0.2142, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.19032, -0.12414],
[-0.1019, -0.1787, -0.14630, -0.18758, -0.1018, 0.0621, -0.2718, -0.1826, 0.21429, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.1903, -0.1241],
[-0.1019, -0.1787, -0.14630, -0.18758, -0.1018, 0.0621, -0.2718, -0.1826, 0.21429, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.1903, -0.1241],
[-0.1019, -0.1787, -0.14630, -0.18758, -0.1018, 0.0621, -0.2718, -0.1826, 0.21429, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.1903, -0.1241],
[-0.1019, -0.1787, -0.14630, -0.18758, -0.1018, 0.0621, -0.2718, -0.1826, 0.21429, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.1903, -0.1241],
[-0.1019, -0.1787, -0.14630, -0.18758, -0.1018, 0.0621, -0.2718, -0.1826, 0.21429, -0.1465, 0.2007, 0.16138, -
0.1538 , -0.1903, -0.1241]]
Las salidas de cada filtro tienen la dimensión de 6x1, 5x1, 4x1. Cada capa posee
60 filtros y se tienen 150 oraciones. Por lo que las dimensiones de salida serian:
Luego se pasan cada salida por sus respectivas capas de max pooling, de forma
que de cada filtro se queda con la mayor activación de cada una de las
convoluciones. (El máximo de o1, o2, o3, o4, o5, o6 para el caso del ejemplo.