Está en la página 1de 17

UNIVERSIDAD NACIONAL DE TRUJILLO

UNIVERSIDAD NACIONAL DE TRUJILLO


Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica

DISEÑO DE UN ASISTENTE VIRTUAL EN NETBEANS

Trabajo de Investigación formativa

PROGRAMACIÓN II

AUTOR(es) :

 GUERRA CRUZ, Gianella Joseline


 MARTELL TIRADO, Angel Renato
 MORALES PLASENCIA, Hover Antonio

DOCENTE :

Ing. CLAYDER GONZALEZ

CICLO : IV

Trujillo, Perú
12 de diciembre del 2019

INGENIERÍA MECATRÓNICA 1
UNIVERSIDAD NACIONAL DE TRUJILLO

TABLA DE CONTENIDOS

Capítulo 1 .............................................................................................................................3

1.4 Objetivos ..............................................................................................................3

Capítulo 2 Marco Referencial .............................................................................................4

2.2. Interfaces ..............................................................................................................4

2.2.1.3. Los resultados deben presentarse en una forma clara para el usuario. ...........5

2.2.1.4. Las preguntas y explicaciones deben ser comprensibles. ................................6

2.2.2. Interfase explicativa .........................................................................................7

2.2.3. Interfase de mantenimiento de la Base del Conocimiento ...............................8

Capítulo 3 Materiales y Métodos (o Caso de Estudio) .....................................................11

Capítulo 4 Resultados y Discusiones ................................................................................15

Capítulo 5 Conclusiones y Recomendaciones ...................................................................16

Referencias Bibliograficas .................................................................................................16

Anexos ...............................................................................................................................17

INGENIERÍA MECATRÓNICA 2
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 1

1.4 Objetivos

1.4.1 Objetivo General

Mejorar la interacción del usuario con el computador mediante el diseño de

un asistente virtual que permita gestionar y manipular un sistema mediante

sencillas órdenes de voz para así poder tener una experiencia más agradable y

disminuir largos tiempos de espera en nuestras búsquedas.

1.4.2 Objetivos Específicos

Implementar un pequeño intérprete que a partir de la frase reconocida ejecute

la orden correspondiente.

Adquisición de experiencia en la gestión, diseño y desarrollo de un proyecto

software.

Implementar diseños de interfaces gráficas.

Investigación de las tecnologías utilizadas en los asistentes virtuales

INGENIERÍA MECATRÓNICA 3
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 2

Marco Referencial

2.1.Inteligencia Artificial

La inteligencia artificial es la ciencia de construir máquinas para que hagan cosas que, si

las hicieran los humanos, requerirían inteligencia. Podemos pensar en Inteligencia

Artificial como en aquella ciencia que integra conocimiento a los procesos o actividades

para que éstos tengan éxito. Un ejemplo es el ajedrez. Es impensable que un computador

evalúe todas las posibles jugadas del ajedrez. En vez de esto, se incorpora conocimiento

en el proceso de búsqueda de la mejor jugada en forma de jugadas predefinidas o

procedimientos de evaluación “inteligentes”. (Ruiz, 2003)

2.2.Interfaces

2.2.1. Interface del usuario

Se utilizan con el fin de que el cliente realice consultas en un lenguaje lo más

fácil y sencillo posible. Este componente es la forma en la que el sistema se

presentará ante el usuario. Establece una comunicación sencilla entre el usuario

y el sistema.

El usuario puede consultar con el sistema a través de menús, gráficos, etc., y éste

le responde con resultados. También es interesante mostrar la forma en que

extrae las conclusiones a partir de los hechos. En sistemas productivos se cuida

la forma de presentar al operador las órdenes obtenidas del sistema experto,

debido a que información excesiva o confusa dificulta la actuación en tiempo


INGENIERÍA MECATRÓNICA 4
UNIVERSIDAD NACIONAL DE TRUJILLO

real. Requisitos o características de la interface de usuario que son importantes

y que debemos tener en cuenta al desarrollar un sistema (Gobierno de España,

2013):

2.2.1.1.El aprendizaje del manejo debe ser rápido. El cliente no tiene que

permanecer demasiado tiempo al manejo del sistema, necesita intuición,

agilidad en su manipuleo. No se debe olvidar que es sistema aparenta una

conducta de experto, debe resultar de comodidad y sencillez en cuando a su

manejo.

2.2.1.2.Debe evitarse en lo posible la entrada de datos errónea. Ejemplo: Ponerse

en circunstancias de que el sistema es un médico. Cuando se acude al médico,

se le cuenta detalladamente los síntomas y él relaciona con sus preguntas, las

respuestas logradas, para diagnosticas una "enfermedad". . Al imaginar una

visita al médico para decirle sobre un dolor de pierna en lugar del brazo, se

obtendría un diagnóstico equivocado. Este resulta un ejemplo un poco

exagerado, pero denota la relevancia de la introducción correcta de los datos en

el sistema.

2.2.1.3.Los resultados deben presentarse en una forma clara para el usuario.

Volviendo al ejemplo con el médico. Si el médico diagnostica un

medicamento, pero en la receta no escribe cada cuanta hora debe

tomarse, por muy bueno que sea el medicamento, no existirá una

solución

INGENIERÍA MECATRÓNICA 5
UNIVERSIDAD NACIONAL DE TRUJILLO

ompleta al problema, es esta la razón por la que se insiste en que los

resultados deben tener claridad y concisión.

2.2.1.4. Las preguntas y explicaciones deben ser comprensibles.

“Con estas cuatro reglas se puede crear la interface con grandes

probabilidades de éxito“ (Olivares & Sánchez, S.f.). La implantación de

un sistema experto completo impone al progreso de cada uno de los

elementos anteriores mediante lenguajes o herramientas de desarrollo.

Existen cuatro posibilidades para implementar un sistema experto:

Lenguajes de alto nivel (HLL): son de propósito general (C, Fortran, Basic,...).

Su ventaja es la eficiencia, familiaridad y portabilidad a un entorno cualquiera,

pero el problema es no estar listos para una programación basada en símbolos.

Lenguajes simbólicos: esencialmente, LISP y PROLOG. Constituyen lenguajes

de un nivel muy alto y son los más usados por su fácil adaptabilidad a la lógica

de la base de conocimientos caracterizada a través de símbolos; además, por el

mecanismo para sacar deducciones. Su eficiencia se incrementa en zonas de

trabajo establecidas para ese tipo de lenguaje.

Herramientas de desarrollo ("shells"): está constituido por programas

organizados para el avance de sistemas expertos, ya que integran el motor de

inferencia, independientemente de las bases de hechos y de conocimiento. La

INGENIERÍA MECATRÓNICA 6
UNIVERSIDAD NACIONAL DE TRUJILLO

persona que programa, debe limitarse a realizar la traducción de dichas bases a

un determinado lenguaje dispuesto para el efecto, se puede enlazar con otros

lenguajes para

alcanzar el desarrollo de otras funciones. Generalmente se desarrollan en LISP

o PROLOG para incrementar su eficacia. Es menor la flexibilidad, a pesar de

que acostumbran introducir procesadoras de texto, instrumentos de análisis y

gráficos.

Entornos de desarrollo ("environments"): agregan a los "shells" el empleo de un

contexto graficado (ventanas, iconos,...) que agiliza el desenvolvimiento del

sistema experto. Poseen el beneficio de reducir el tiempo de desarrollo, pero

generalmente son costosos y de poca flexibilidad. Los "shells" corresponden a

los más empleados para el avance de sistemas expertos, mientras el PROLOG

está extendiéndose en Europa y Japón, el LISP está en Estados Unidos. Los

entornos todavía se encuentran ocupando un sector menor, pero tienden a que se

incremente su uso.

2.2.2. Interfase explicativa

Otorga una explicación al cliente sobre la estrategia encontrada para solucionar

los problemas y el motivo de la toma de esas decisiones. Las conclusiones

tomadas por los expertos tienen que ser repetitivas, por el ingeniero de

conocimiento en la etapa de comprobación como por el cliente. La precisión en

las deducciones, únicamente podrán controlar los expertos.

INGENIERÍA MECATRÓNICA 7
UNIVERSIDAD NACIONAL DE TRUJILLO

A pesar de la insistencia acerca de la relevancia del componente explicativo,

resulta muy complejo y aún no se ha logrado alcanzar todos los requerimientos

de un buen componente explicativo, representando gráficamente, el avance de

la consulta al sistema.

Además, estos componentes tratan de explicar su función explorando hacia atrás

el camino de la componenda. Tratar de hallar la manera de que finalmente se

represente en un texto que sea comprensible totalmente, las conexiones

encontradas ofrecen mayores problemas. Los componentes explicativos logran

ser suficientes para el ingeniero del conocimiento, debido a que ya está

habituado con el ambiente del procesamiento de datos y en muchas ocasiones

son suficientes para el experto, pero para el cliente que generalmente no conoce

las sutilezas del procesamiento de datos, los componentes explicativos

existentes resultan aún no muy satisfactorios.

2.2.3. Interfase de mantenimiento de la Base del Conocimiento

El conocimiento es cargado en lenguaje natural mediante un formato convertido

en operativo (susceptible de tratamiento automático). Las Bases de datos,

contienen el conocimiento sobre los problemas en curso y todas las conclusiones

que el programa inteligente ha derivado, el mejor diagnóstico de fallas. Alguien

debe tomar la responsabilidad de mantener la base de conocimiento.

INGENIERÍA MECATRÓNICA 8
UNIVERSIDAD NACIONAL DE TRUJILLO

En el curso del tiempo para el cambio de reglas, se introducen nuevas formas de

la aplicación, agregando más conocimiento, etc. Alguien debe transformar las

reglas para acomodar los cambios externos que ocurren.

2.3.Contenedores

Cada aplicación Swing debe tener al menos un contenedor de alto nivel (Top-level

Container), el cual podemos ver como un tablero del cuál se podrán colgar los objetos

gráficos que queremos mostrar en la interfaz. (NIEVA, 2017) Los contenedores en Java

son:

JWindow: representa un panel de ventana que no tiene bordes ni elementos visibles

JFrame: Es la clase que representa una ventana típica con bordes, botones de cerrar, etc. y

es la que típicamente usaremos para crear nuestras aplicaciones, entre otras cosas, porque

a su vez permite que se le cuelguen otros contenedores, como JInternalFrame o JPanel.

JPanel: Esta clase es utilizada como un contenedor genérico para agrupar componentes,

sin que generalmente sea visible (Algo así como la herramienta agrupar en MS Word)

JDialog: Esta clase permite crear un cuadro de diálogo común.

JApplet: Este contenedor permite agrupar componentes que serán mostrados en un

navegador.

INGENIERÍA MECATRÓNICA 9
UNIVERSIDAD NACIONAL DE TRUJILLO

2.4.ChatBots

Los motores de Inteligencia Artificial de los chatbots han mejorado notoriamente con el

paso del tiempo. Actualmente tienen la capacidad de reconocer las intenciones y las

entidades y a raíz de esto proporcionan respuestas, hacen preguntas y guían a los usuarios

a través de la conversación. Los chatbots utilizan inteligencia artificial, por ejemplo,

cuando necesitan reconocer las intenciones de las frases que intercambian con los

usuarios en un diálogo. Pero también utilizan la Inteligencia Artificial cuando, después de

reconocer determinadas intenciones por parte de los usuarios, responden con entidades,

que son, por ejemplo, 29 las variaciones de los pedidos que puede hacer un cliente,

dependiendo del rubro en el que nos manejemos. Todo esto lo hacen sobre el diálogo, que

es la estructura propia de la conversación (CLIENGO, 2018).

2.4.1. Tipos de chatbot

Los ChatBot son mecanismos que han avanzado conforme a la inteligencia artificial, el

aprendizaje automático y el procesamiento del lenguaje natural, tal ha sido su crecimiento

que ahora es posible categorizarlos de acuerdo con el servicio que prestan, estos tipos de

ChatBot son:

✓ ChatBot de ventas, los cuales están orientados a la comercialización de productos o

servicios de las diferentes empresas que han deseado implementar estos asistentes

(GUSCHAT, 2017).

INGENIERÍA MECATRÓNICA 10
UNIVERSIDAD NACIONAL DE TRUJILLO

✓ ChatBot de servicio al cliente, se han orientado a la resolución de dudas que los

clientes tienen en cuanto a un determinado servicio (GUSCHAT, 2017).

✓ ChatBot de noticias y contenido, estos se han logrado implementar mediante canales

de mensajería instantánea, su principal objetivo se ha centrado en él envió de contenido

masivo mediante estos diferentes canales (GUSCHAT, 2017). De igual manera la

evolución de estos sistemas ha generado diferentes aplicaciones en el mundo actual,

diariamente el mundo se ve inmerso en su uso gracias a sistemas como lo son Siri de

Apple, Google now de Google, entre otros (Cogniapps, 2016).

Capítulo 3

Materiales y Métodos (o Caso de Estudio)

PROGRAMAS UTILIZADOS

Neatbeans

NetBeans es un programa que sirve como IDE (un entorno de desarrollo integrado) que

nos permite programar en diversos lenguajes.

El desarrollo de software se ha diversificado mucho basándonos en la cantidad de

lenguajes que existen para la programación. Sin embargo, hay lenguajes que van

imponiéndose como estándares, entre ellos tenemos a Java, PHP, HTML, C++, C#, Ruby.

El problema que se presenta a la mayoría de los programadores es contar con un entorno

de desarrollo que sea completo, eficaz, fácil de usar y sea en lo posible gratuito. Todos

esos requerimientos los podemos encontrar en NetBeans. (sf, 2018)

INGENIERÍA MECATRÓNICA 11
UNIVERSIDAD NACIONAL DE TRUJILLO

NetBeans es ideal para trabajar con el lenguaje de desarrollo JAVA (y todos

sus derivados), así como también nos ofrece un excelente entorno para programar en

PHP. También se puede descargar una vez instalado NetBeans, los complementos para

programar en C++. La IDE deNetBeans es perfecta. Tiene un excelente balance entre una

interfaz con múltiples opciones y el editor puede autocompletar nuestro código. (sf, 2018)

Interfaz Gráfica de Usuario con Netbeans

Esta es la primera entrada de una serie de publicaciones sobre el manejo de los objetos

del paquete javax.swing para crear la Interfaz Gráfica de Usuario usando el IDE Netbeans

y por supuesto el lenguaje de programación Java. (NIEVA, 2017)

GUI

El acrónimo GUI proviene de “Graphic User Interface” o Interfaz Gráfica de Usuario. Es

la abreviatura que define la interfaz gráfica de cualquier aplicación, y considero que es lo

que permite que cualquier usuario pueda utilizar fácilmente un programa. (NIEVA, 2017)

En primer lugar, pensemos un poco en el pasado de la computación, en épocas donde se

tenía una interfaz sólo texto para ejecutar comandos. En consecuencia, podemos

reconocer lo importante que es ofrecerle al usuario una forma fácil e intuitiva de navegar

y realizar el trabajo en la aplicación que vamos a crear. (NIEVA, 2017).


INGENIERÍA MECATRÓNICA 12
UNIVERSIDAD NACIONAL DE TRUJILLO

METODOS

Para el desarrollo del proyecto se utilizaron diversos métodos debido a que con cada

acción que se realice cuando el código se esté ejecutando, esta llama a mas métodos para

solucionar cada problema específico y permitir que la interacción humano-maquina sea

más fluida, entendible y fácil para el usuario.

Ejemplos de Métodos:

Botón, cada botón usado en las interfaces es un Método, ya que estos realizan

operaciones ya grabadas como abrir otra interfaz, o almacenar variables

La voz del Asistente Virtual, el A.V. interactúa con el usuario, y para hacer más real la

experiencia, se utiliza una voz, en el siguiente método se puede ver que el asistente

responderá de acuerdo al nombre del usuario, y le dará la bienvenida

INGENIERÍA MECATRÓNICA 13
UNIVERSIDAD NACIONAL DE TRUJILLO

La interconexión entre interfaces, para el desarrollo del proyecto decidimos crearle

seguridad, para lo cual utilizamos otro método en el cual si se ingresaba una contraseña

incorrecta el asistente no se iniciaría

INGENIERÍA MECATRÓNICA 14
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 4

Resultados y Discusiones

Resultados

Se elaboró un asistente virtual que ayuda al uso e implementa la velocidad a usar el

computador.

Los autores del asistente virtual aprendimos a trabajar con GitHub, con el software

desarrollamos más rápido y de manera paralela el proyecto, sin necesidad de trabajar en

un mismo lugar.

Se aumentó la capacidad en términos de programación en cada integrante del equipo,

debido a la complejidad de los problemas que resolvíamos.

Discuciones

La voz del asistente virtual generaba problemas en el código, y cuando se le ordenaba

abrir un programa, este al repetir el nombre reconocía su propia voz y entraba en un bucle

infinito.

Cuando un usuario implementaba una nueva librería en el código, esta generaba errores y

teníamos problemas al ejecutar, ya que, a pesar de agregar la librería, esta seguía

arrojando error.

INGENIERÍA MECATRÓNICA 15
UNIVERSIDAD NACIONAL DE TRUJILLO

Capítulo 5

Conclusiones y Recomendaciones

Se mejoró significativamente la interacción usuario-maquina, debido a la implementación

del asistente virtual, con comando sencillos de voz disminuye tiempo de para realizar una

acción como abrir un programa, a su vez se logró que el usuario tenga una experiencia

más amena al usar su computador.

Se adquirió experiencia en la gestión, diseño y desarrollo de un proyecto software.

Se implementó y mejoró el diseño de interfaces gráficas.

Se investigó las tecnologías actuales en los asistentes virtuales

Referencias Bibliograficas

CLIENGO. (2018). Obtenido de

https://www.cliengo.com/?utm_source=Google&utm_medium=Search&utm_cam

paign=Cleingo_Brand_LATAM&utm_term=Cliengo&gclid=Cj0KCQiAiNnuBR

D3ARIsAM8KmlsUyD_nqkuaVZTP6pmQezLVg8qe48Q46_bJ8qIWdhxf0fl5Tz

H1CA0aAnbfEALw_wcB&gclsrc=aw.ds

Cogniapps. (2016).

GUSCHAT. (2017). Obtenido de https://gus.chat/

INGENIERÍA MECATRÓNICA 16
UNIVERSIDAD NACIONAL DE TRUJILLO

Menos Plástico Más Vida. (2018). Obtenido de http://www.minam.gob.pe/menos-

plastico-mas-vida/cifras-del-mundo-y-el-peru/

NIEVA, G. (17 de Mayo de 2017). Interfaz Gráfica de Usuario con Netbeans -

dCodinGames. Obtenido de dCodinGames: https://dcodingames.com/interfaz-

grafica-de-usuario-con-netbeans/

Ruiz, E. Q. (2003).

sf. (11 de noviembre de 2018). Que es NetBeans - Portafolio Netbeans. Obtenido de

https://sites.google.com/site/portafolionetbeans/que-es-netbeans

Anexos

Enlace de GitHub, donde los integrantes del proyecto Asistente Virtual desarrollábamos
el código:

https://github.com/HoverMorales/AsistenteVirtual

INGENIERÍA MECATRÓNICA 17

También podría gustarte