-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
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
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¶
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? ...
Travis’s probabilistic conversation manager is working nicely to chose a reply from the possiblities generated by the bots:
qa_bots.py): BERT and ALBERT Wikipedia Question Answering (WikiQA reading comprehension tests)
glossary_bots.py): definitions from glossary yml files in data/faq/glossary-*.yml
pattern_bots.py: regex patterns and greeting templates
fuzzy_search_bots.py: movie dialog fuzzy matching
parul_bots.py: Wikipedia searches using conventional TFIDFs, like a search engine
time_bots.py: A time and productivity tracker that parses your git logs and bash history
elastic_bots.py: Semantic search with elasticsearch and
nboostto 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
$ bot -h to change the default bot personalities loaded for your own personalized bot.