3
$\begingroup$

I’ve coded a simple ELIZA chatbot for a high school coding competition. The chatbot is part of an app that’s designed to help its user cope with depression, anxiety, and similar mental health disorders. It uses sentiment analysis to identify signs of mental illness, and to track it's user's progress toward "happiness" over time.

My question is, what steps can I take to make it more realistic (without using some pre-existing software, library, etc, which isn't allowed)? Also, are there any existing tables of questions/responses I can add to my ELIZA bot's repertoire so that it can handle more conversations?

$\endgroup$
3
$\begingroup$

One 'easy' way would be to have some sort of conversational memory, where you track what the user has said already. I don't know how complex your patterns are, but if you could recognise names and track references, you could try and build up a mental model of the user's relationships with other people, and perhaps refer to that in your bots responses.

The latter will be quite advanced, but keeping track of things said earlier and referring back to them on occasion might make it appear a lot more capable.

As an added bonus, track changes in the user's sentiment scores, and see if you spot a pattern in the conversation (maybe over the course of multiple conversations) to see which bot utterance have the biggest (positive or negative) effect on the user's mood.

| improve this answer | |
$\endgroup$
  • $\begingroup$ Google Home already tries to do this to a very small extent, i.e. it tries to take into account the context or previously asked question. Although my knowledge of NLP and NLU is really reduced, I guess this type of capability will improve even further with time. $\endgroup$ – nbro May 15 at 22:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.