Settings

Theme

Ask HN: What are the possible approaches to develop a chatbot?

2 points by Envec83 9 years ago · 1 comment · 1 min read


Let's say we want to develop a chatbot whose objective is to be able to talk to people about cars (i.e., "What do you think about BMWs?", "What is the fastest sedan in the market?", etc.). I am narrowing the domain on purpose.

In order to build such a bot, some approaches come to mind:

1. Hardcoded answers: use NLP to understand the meaning of the user input, go through defined rules (if-else basically) to choose the appropriate answer from a set of hardcoded, pre-defined ones.

2. Machine learning on existing conversations about cars: if you have access to lots of conversations about cars, you could use machine learning to train the bot to understand the meaning of the user input and to formulate an answer based on the data.

3. Machine learning on generic information about cars: same idea as above, but using generic infomation about cars (i.e., wikipedia, magazines) to formulate answers. NLP would need to be used both to understand the user input and to formular syntatically and semantically correct answers.

Questions: Are these approaches indeed viable? Are there others? Are there examples of bots using 2 or 3 out there?

brudgers 9 years ago

To me, the example bot seems to have the potential to direct the search toward overly complex implementations. By which I mean, carrying on a intelligible chat about cars in general is along the lines of the Turing test. Yet, most chat bots are built to solve practical problems, and the 'chat' in 'chat bot' is often just a description of the technical context, a chat app and 'chat bot' is simply a bot that does something when chat text is directed at it. For example, a chat bot is more likely to compile the code than discuss compilers. Then again, people who want to discuss compilers or cars probably want to discuss them with other people more than a computer.

This means that most practical chat bots are along the lines of the first approach. Which makes them simpler to implement and less computationally intensive to run. It may or may not make them more fun to create from a developer's perspective.

Good luck.

Good luck.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection