Ever wanted to build a chatbot and encountered some blockers along the way relating to data privacy or supported languages? Do you wish to reduce chatbot response time or run them without an active data connection?

If that’s the case or if you’re just curious and want to learn more, give NLP.js a try.

Natural Language Processing & NLP.js

Natural Language Processing or NLP is a field combining linguistics and computing, as well as artificial intelligence. Correctly understanding natural language is critical for virtual assistants, chatbots, voice assistants, and a wide range of applications based on a voice or text interface with a machine. …


Introduction

When developing an NLU one of the big decissions is how to implement the tokenizer and the stemmer.

The tokenizer defines how to split sentences into words. The problem is that exists different approachs to do it. Imagine the sentence “You can’t”, some split it into [you, can, t], others into [you, ca, n’t] and others into [you, can, not].

The stemmer is how to calculate the stem or root of a word, i.e, if you have the words “developer”, “developed”, “developing”, “development” is easy to detect that are derived words from the stem “develop”.

Some of the commercial products…


Introduction

Usually we use the Conversational AIs for building chatbots as black-boxes, without knowing how they work inside. While benchmarking the different NLPs with a big corpus, there are some technical findings that can help us to understand better what is inside those black boxes, and also to understand a bit better the results of the benchmark.

You can see here the results of the benchmark.

The importance of “de”

One the most remarkable things is the false positives. There are sentences that return positives for intents which training does not contains any word from the tested sentence. …


Introducción

A la hora de hacer un bot una de las decisiones más importantes es qué inteligencia artificial conversacional utilizar, y para ello hay que evaluar cómo se comportan. Para ello, actualmente, uno de los papers más relevantes es el SIGDIAL22 que propone 3 corpus (conjuntos de datos) para probarlas. El problema con esto es que la cantidad de datos utilizados para el estudio distan mucho de un caso real. Una descripción de los tres corpus:


Introduction

When starting the development of a chatbot, one of the critical decissions is to choose the conversational artificial intelligence to use, and to take that decission we have to evaluate how they behave. One of the most relevant papers around this topic is SIGDIAL22 that propose 3 corpus (sets of data) to test that. The problem around that is that the amount of data used for the study is far from a real bot. A description of the three corpus:

  • Chatbot: Train using 100 sentences classified into 2 intents.
  • Ask Ubuntu: Train using 53 sentences classified into 5 intents.
  • Web…


Introduction

When building a chatbot, one of the most important parts is the NLP (Natural Language Processing), that allows us to understand what the user wants and match it into an intent (action) of our chatbot.

This part that is really important, usually becomes a “black box” provided by a third party like Google DialogFlow, Microsoft LUIS or IBM Watson, that also means to lost privacy of our clients. There is a lot of unknows around those “black boxes” and how they work internally, and this causes fear of implementing one in-house.

Through this article you’ll learn theory, and later you’ll…


Viene de Cómo desarrollar tu propio NLP para Chatbots (I).

Introducción

En el artículo anterior veíamos cómo con poco código se podía llegar a un NLP tan bueno o mejor que los comerciales, basándonos en el paper SIGDIAL22, que evalúa con tres corpus muy diferentes entre ellos. Sin embargo, ¿por qué quedarse ahí y no seguir mejorándolo hasta que sea mejor en los tres corpus y en el global y rompa todos los records?

Sustitución de Entidades

Ahora mismo para las puntuaciones el resto de NLP cuentan con una ventaja que no se ha aplicado en el nuestro: se han entrenado teniendo en cuenta…


TL; DR:

En tan solo 23 líneas de código se puede construir, en javascript, un sistema NLP para detectar el intent de una frase utilizando un stemmer de la librería Natural, y la librería brain.js para la red neuronal. Este NLP daría los siguientes resultados comparándolo con otras herramientas comerciales, siguiendo el paper SIGDIAL22 que propone utilizar 3 corpus diferentes para medirlo:

El código se puede ver en el sandbox que está al final del artículo.

Introducción

A la hora de desarrollar un chatbot, una de las piezas fundamentales es el NLP (Natural Language Processing), en concreto cómo conseguir entender qué es lo…


Introducción

Cuando queremos construir chatbot inteligentes, una de las decisiones más complicadas es que herramienta o plataforma de NLP (Natural Language Processing) utilizar. Y normalmente solemos llegar a una pregunta: ¿usar una comercial? ¿Una open source on premise? ¿Cuáles aciertan mejor?

Uno de los criterios para elegir un NLP u otro suele ser cuán bueno es su NLU (Natural Language Understanding) relacionando las frases que dicen los usuarios con los intents, es decir, cuán buena es su inteligencia.

En este artículo veremos cómo evaluar un NLU, y además los resultados de la evaluación de varios NLP usuales. …

Jesús Seijas

New Tech Team Lead at AXA Group Operations. Chatbot and voice agent expert, AI advocate.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store