top of page

Desarrollo del Motor Central para un Chatbot Conversacional Utilizando NLP

⭐ Tipo

NLP

Mi proyecto:

El lenguaje humano es sorprendentemente complejo y diverso. Al escribir, a menudo cometemos errores ortográficos, abreviamos palabras o omitimos signos de puntuación. Estamos rodeados de una gran cantidad de datos no estructurados. El Procesamiento del Lenguaje Natural (NLP) permite a los ordenadores comunicarse con los humanos en su propio idioma y realizar otras tareas relacionadas con el lenguaje.
Por ejemplo, el NLP posibilita que los ordenadores lean y entiendan textos, midan el sentimiento y determinen qué partes son importantes. Comprender esto nos habilita para construir el componente central de cualquier chatbot conversacional.

Resumen Ejecutivo

En este proyecto, he explorado y aplicado técnicas avanzadas de Procesamiento del Lenguaje Natural (NLP) para construir el motor central de un chatbot conversacional.


He abordado la complejidad inherente al lenguaje humano, reconociendo y procesando variaciones como errores ortográficos, abreviaturas y estructuras gramaticales.


Mediante el uso de NLP, he creado un sistema capaz de leer, interpretar y clasificar texto, lo que permite al chatbot entender y responder a consultas de manera precisa y relevante.


Este proyecto demuestra mi habilidad para aplicar NLP en el desarrollo de soluciones de IA que facilitan una comunicación efectiva entre humanos y computadoras, siendo un componente clave en el avance de los chatbots conversacionales.




Trabajo Realizado

Etapas Claves para el Desarrollo del chatbot:

1.       Preparación y Limpieza de los Datos


Subir Fichero:

filename = 'leaves.txt'

data = get_content(filename)

 

Lower case, Tokenize, Stopwords, Tagging, Lemmatize words, Stem words

def extract_feature(text):

    words = preprocess(text)

#     print('words: ',words)

    tags = nltk.pos_tag(words)

#     print('tags: ',tags)

    extracted_features = extract_tagged(tags)

#     print('Extracted features: ',extracted_features)

    stemmed_words = [stemmer.stem(x) for x in extracted_features]

#     print(stemmed_words)

    result = [lmtzr.lemmatize(x) for x in stemmed_words]

       return result

 

2.       Extracción de Características:


Función para la extracción de características del texto


def extract_feature_from_doc(data):

    result = []

    corpus = []

…..

 

3.       Función para la Clasificación de Entradas:


La función que procesa la entrada del usuario y la clasifica en una categoría

 

4.       Entrenamiento del Modelo:


Código para entrenar el modelo de clasificación, como Naive Bayes o Árboles de Decisión.


def train_using_decision_tree(training_data, test_data):

       classifier = nltk.classify.DecisionTreeClassifier.train(training_data, entropy_cutoff=0.6, support_cutoff=6)

    classifier_name = type(classifier).__name__

    training_set_accuracy = nltk.classify.accuracy(classifier, training_data)

    print('training set accuracy: ', training_set_accuracy)

    test_set_accuracy = nltk.classify.accuracy(classifier, test_data)

    print('test set accuracy: ', test_set_accuracy)

    return classifier, classifier_name, test_set_accuracy, training_set_accuracy

 

5.       Evaluación del Modelo:

Código para evaluar la precisión del modelo en los conjuntos de entrenamiento y prueba.


 training set accuracy:  0.9035087719298246

 test set accuracy:  0.8620689655172413

 

 6.       Función de Respuesta del Chatbot:

La función reply() que interpreta la entrada del usuario y devuelve una respuesta.

 

7.       Ejemplos de Interacción:

 

Ejemplos de cómo el chatbot responde a diferentes entradas:


print(reply("Hi"))


print(reply("How many annual leaves do I have left?"))

 

Te invito cordialmente a ver el video que está abajo, donde podrás descubrir la dinámica y las capacidades avanzadas de mi chatbot, desarrollado y ejecutado en un entorno Jupyter Notebook.

En este video, presento una demostración práctica que captura la interacción real con el chatbot, mostrando su respuesta a través de celdas de entrada y salida.

Esta visualización proporciona una comprensión clara y detallada de cómo el chatbot procesa y responde a diversas consultas, destacando así su inteligencia y eficacia.

Estoy seguro de que esta demostración te dará una perspectiva valiosa sobre el potencial y la funcionalidad de mi proyecto.

 

Visita este vídeo:




Tras desarrollar un modelo con un algoritmo que garantiza una precisión aceptable, este se puede integrar perfectamente en cualquier interfaz de usuario de chatbot, demostrando su versatilidad y eficacia en la comunicación interactiva.
bottom of page