Found in 1 comment on Hacker News
eindiran · 2019-10-16 · Original thread
I assume you want to use a text interface rather than a voice interface?

Do you have any constraints on the programming language you'll use? I'm going to assume that you'll be okay using Python in my answer.

Are there any particular things that you know your chatbot will need to be able to do? Extract and recognize product names in the user's response? Handle ambiguity/anaphora resolution? Respond correctly to commands and questions from the user? The behaviors you want from your bot will help shape how you go about building it, so I'll assume what you want is quite straightforward.

If you were looking in to a voice interface, I'd highly recommend checking out "Designing Voice User Interfaces: Principles of Conversational Experiences" by Cathy Pearl[0], but you should know it's not really a how-to guide for hackers, but a set of principles for designing the interface/what the user experience should be like.

For text-based interfaces, there appear to be a few similar books, but I haven't read any of them and can't recommend them. For example, see "Designing Chatbots: Creating Conversational Experiences" by Amir Shevat.[1]

For the technical/implementation side of things, I'd recommend that you start searching using search terms like NLP and NLU, rather than "chatbot" on its own. A great place to start is with a toolkit like Rasa or spaCy for Python and look up some tutorials on how to use them.

If the chatbot is quite basic, I'd recommend starting with bare spaCy and using the built-in models. A tutorial like this should get you started: https://apps.worldwritable.com/tutorials/chatbot/

If the required bot is a little more involved, you can use Rasa NLU as well. Check out this tutorial for an example: https://towardsdatascience.com/building-a-conversational-cha...

[0] https://www.amazon.com/Designing-Voice-User-Interfaces-Conve...

[1] https://www.amazon.com/Designing-Bots-Creating-Conversationa...

Fresh book recommendations delivered straight to your inbox every Thursday.