Skills¶
The -b glossary
skill enables qary
to answer basic “what is” questions about data science for healthcare terms and concepts.
qary -b QA
¶
It can even answer general factual questions like “What is Barak Obama’s Birthday?”. But if the answer isn’t explicitly stated on Wikipedia somewhere it will make something up:
YOU: When was Barak Obama born?
qary: August 4, 1961
YOU: Who invented the perceptron?
qary: Everett Rogers
YOU: -1 #shouldbe Frank Rosenblatt
YOU: Who invented the first perceptron neural network?
qary: Gustav Kirchhoff
YOU: -1 #shouldbe Frank Rosenblatt
YOU: Where do babies come from?
qary: industrialized countries
YOU: #goodone
Others¶
The current version of qary
can imitate the classic therapist bot “Eliza” and carry on a relatively entertaining conversation based on lines it’s read from movie scripts.
You can select any or all of these skills with command line args and the configuration file ~/qary.ini
in your user directory.
You can also expand the complicated questions that qary can answer by adding Q/A pairs to yaml text files in data/faq
.
We’ll use that to train deep learning networks as well as actual answers if the questions are close enough to your wording in that training file.
qary -b your_name_here
¶
And soon qary
will be able to detect your mood and carry on more meaningful conversations, to give you encouragement and emotional support.
We’ll have something like this online in a couple months:
bot: How are you doing?
YOU: not so great
bot: I'm really sorry to hear that. What do you think about doing 10 pushups to get your blood flowing?
YOU: not so much
bot: Would you like to chat about it?
YOU: sure
bot: So what are you feeling right now? How does your body feel?
...
qary
personalities¶
Travis’s probabilistic conversation manager is working nicely to chose a reply from the possiblities generated by the bots:
qa
(qa_bots.py
): BERT and ALBERT Wikipedia Question Answering (WikiQA reading comprehension tests)glossary
(glossary_bots.py
): definitions from glossary yml files in data/faq/glossary-*.ymlpattern_bots.py
: regex patterns and greeting templatesfuzzy_search_bots.py
: movie dialog fuzzy matchingparul_bots.py
: Wikipedia searches using conventional TFIDFs, like a search enginetime_bots.py
: A time and productivity tracker that parses your git logs and bash historyelastic_bots.py
: Semantic search with elasticsearch andnboost
to find better pages for WikiQA
Here’s how those bots work together:
$ bot
(qaryenv) hobs@Hobsons-MacBook-Air:~/code/chatbot/qary$ bot
# 2019-11-21 12:59:05,854 WARNING:qary.config:107: <module> Starting logger in nlpia.config...
# 100%|█████████████████████████████████████████████████████████████████████████████████████████████| 64350/64350 [00:00<00:00, 495935.48it/s]
YOU: Hi
BOT: hey there. tired of breathing?
YOU: Hello
BOT: How do you do. Please state your problem.
YOU: What is an ELIZA chatbot?
BOT: joey never told you we went out, did he?
YOU: What is an ELIZA chatbot?
BOT: Does that question interest you ?
YOU: What is a chatbot?
BOT: hello barbie is an internet-connected version of the doll that uses a chatbot provided by the company toytalk, which previously used the chatbot for a range of smartphone-based characters for children.
YOU: Hello
BOT: hello.
YOU: Hello
BOT: How do you do. Please state your problem.
YOU: bye
$
Check out the config file in qary.ini
or $ bot -h
to change the default bot personalities loaded for your own personalized bot.