Fadela, a learning chatbot

  • 9 Replies
  • 5886 Views
*

TheMikh28

  • Trusty Member
  • **
  • Bumblebee
  • *
  • 34
Fadela, a learning chatbot
« on: December 13, 2015, 04:09:23 pm »
Hi!  I finally got around to preparing a demo and releasing the source code to my perennial chatbot project this weekend.

In a nutshell, I communicate with it using a lisp-like intermediate language that conveys various parts of speech in order to facilitate the construction of parse trees that may then be analyzed in order to learn (and reuse) sentence structures, concept associations, sentiment information, and other knowledge.

http://lockettsystems.com/fadela

*

ivan.moony

  • Trusty Member
  • ************
  • Bishop
  • *
  • 1729
    • mind-child
Re: Fadela, a learning chatbot
« Reply #1 on: December 13, 2015, 08:01:39 pm »
Hi, great project there :)

May I ask:
* What kind of logic do you use (first order, higher order, probability network, type theory, calculus of constructions, ...)?
* Did you plan or have already implemented induction?
* Did you plan a natural language interface?
* How much would it take to turn Fadela into a scientist?

*

DemonRaven

  • Trusty Member
  • ********
  • Replicant
  • *
  • 630
  • Disclaimer old brain @ work not liable for content
    • Chatbotfriends
Re: Fadela, a learning chatbot
« Reply #2 on: December 13, 2015, 08:10:45 pm »
Thanks for the link. I added to my website.
So sue me

*

Don Patrick

  • Trusty Member
  • ********
  • Replicant
  • *
  • 633
    • AI / robot merchandise
Re: Fadela, a learning chatbot
« Reply #3 on: December 13, 2015, 08:27:34 pm »
Looks good. I like the inferences and the ability to learn rules on the fly.
CO2 retains heat. More CO2 in the air = hotter climate.

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Trusty Member
  • **********************
  • Colossus
  • *
  • 5865
Re: Fadela, a learning chatbot
« Reply #4 on: December 14, 2015, 02:01:18 am »
Wondered what ever happened to you after all this time.

Thanks for sharing and perhaps we can learn better techniques for our own experiments from your efforts.

Best! O0
In the world of AI, it's the thought that counts!

*

TheMikh28

  • Trusty Member
  • **
  • Bumblebee
  • *
  • 34
Re: Fadela, a learning chatbot
« Reply #5 on: December 14, 2015, 07:24:49 am »
Hi, great project there :)

Hi, and thanks!

Quote
May I ask:
* What kind of logic do you use (first order, higher order, probability network, type theory, calculus of constructions, ...)?

The logic in its present state is pretty simplistic and fuzzy, but nothing formal.

Every time "logic" is conveyed (subject-action-subject relationship, with a "truth" value of true/false/maybe, and optionally a conditional), it's added to to a knowledge base.

When queried or assessing the knowledge base, it queries all items with matching subjects/actions, and takes the sum of the "truth" values (1 for true, 0 for maybe, -1 for false) and plugs them all into a sigmoid function for normalization.

If the result is between 1 and 2/3, the query is deemed "true"; if the result if between 1/3 and 2/3, the result is deemed "maybe" (and considered a conflict worth inquiring about if this is due to contradictory statements), and if less than 1/3 then the result is deemed false.

If conditionals are involved, then the dependencies are recursively checked.

Quote
* Did you plan or have already implemented induction?

As in inductive reasoning?  I've given it some thought, though at the moment it's not supported.  When the current logic system is stable, I'd like to move on to implementing it.

Quote
* Did you plan a natural language interface?

There's a very rudimentary proof of concept that uses the knowledge base to infer the structure of natural language.  I believe it was packaged with the source, but it's far from efficient or reliable and hasn't been maintained in several years.

At some point I'd like to dedicate more time to processing "raw" natural language, though my main focus as of late has been modeling the dynamics of conversation and facilitating coherent and even deliberately calculated responses.

Quote
* How much would it take to turn Fadela into a scientist?

It would probably require a complete overhaul of the algorithms and processes in use and the project's application stack, as the current architecture isn't nearly as stable, efficient, or expressive as it ought to be for the kinds of problems a scientist would have to deal with.  The software also currently has no support for learning mathematics, so that's a big roadblock.

I'm deeply hesitant about taking the project in the direction of an expert system, but on the other hand, the capacity to put forth great questions given a rich set of observations wouldn't be a bad long-term objective.

Thanks for the link. I added to my website.

Looks good. I like the inferences and the ability to learn rules on the fly.

Thanks!

Wondered what ever happened to you after all this time.

Thanks for sharing and perhaps we can learn better techniques for our own experiments from your efforts.

Best! O0

Hey, long time no see!

I expressed the intent to open up the source code sometime last year, but decided that before I did so I wanted to at least demonstrate that a string of coherent conversation - logical, informal, and transitioning between the two - was possible with the project's current design.

I laid out some guidelines for what such a demo conversation would look like, and then set out to realize it.  The two main hurdles - aside from making time in between life's demands - were resolving a large number of previously hidden bugs, and bootstrapping the conversational sequence.  There were also certain project features in the demo requirements that didn't previously exist, so they had to be added and verified as well.

If there's anything from this project that I think may be of use to others, it's the applicability of a Lisp-like intermediate language for conveying otherwise complicated sentence structures, and the distillation of sentences to sequences of vectors for easier analysis.

*

Don Patrick

  • Trusty Member
  • ********
  • Replicant
  • *
  • 633
    • AI / robot merchandise
Re: Fadela, a learning chatbot
« Reply #6 on: December 14, 2015, 07:46:15 am »
This is probably the first time I'm asking someone for advice on a non-triviality. I have a fairly similar logic system, though not with Lisp. How do you store conditional "if" rules efficiently in a subject-verb-object knowledge database? Or do you use a secondary database for them? So far I was planning to list each collection of conditions (user-needs-dough, user-needs-oven) in a separate file for each action (user-bakes-cake), which is different from the otherwise single subject-verb-object entries that just have a true/false/unknown value instead of a list.
CO2 retains heat. More CO2 in the air = hotter climate.

*

TheMikh28

  • Trusty Member
  • **
  • Bumblebee
  • *
  • 34
Re: Fadela, a learning chatbot
« Reply #7 on: December 14, 2015, 05:54:04 pm »
This is probably the first time I'm asking someone for advice on a non-triviality. I have a fairly similar logic system, though not with Lisp. How do you store conditional "if" rules efficiently in a subject-verb-object knowledge database? Or do you use a secondary database for them? So far I was planning to list each collection of conditions (user-needs-dough, user-needs-oven) in a separate file for each action (user-bakes-cake), which is different from the otherwise single subject-verb-object entries that just have a true/false/unknown value instead of a list.

While not much about this project is particularly efficient at this stage, there are two main lists of objects.

The main one tracks every single node and leaf of the parse trees derived from inputs and generated responses, and the program's interpretation of their contents - the objects are called "kernel_node"s in the codebase.  As such, each has an address that can be referenced elsewhere.  These can be referenced in rule objects, successive conversational inputs, and used to reconstruct and reuse structures.

Rules, which are called "logic" objects in the codebase, each store a single subject address ("subj1"), verb address ("act"), object address ("subj2"), truth, and conditional address ("cond").  They are stored in the second list.  In evaluating a rule, its conditionals can be evaluated by looking up the address corresponding to it.

Currently contemplating migrating a significant amount of this to MySQL to improve performance.

Lisp itself isn't used used at all in the codebase; the intermediate language I developed is just influenced by it because its parenthetical syntax and polish notation provide for extraordinarily easy parsing of inputs representing complex sentence structures and word attributes .  As a result, one of the aspects of the project I pride myself in most is its capacity to be "taught" different languages with relative ease (http://i.imgur.com/p23yhcR.jpg)

How does unsupervised learning work with your project?  I've been pondering how to approach it for years.

*

Don Patrick

  • Trusty Member
  • ********
  • Replicant
  • *
  • 633
    • AI / robot merchandise
Re: Fadela, a learning chatbot
« Reply #8 on: December 14, 2015, 07:50:28 pm »
I guess memory addresses wouldn't work with my database as is, because it stores facts in separate files that may be deleted the next time it checks. Interesting though. Storing numerical addresses would allow for very flexible connections between anything and anything. Thanks for sharing, I'll ponder about it.

My program's unsupervised learning doesn't work well enough to leave entirely unsupervised for long. It extracts facts from text but gets about 25% of it wrong, so the database ends up containing a lot of mistakes and I regularly wipe it clean for the time being.
I wrote all the grammar rules from scratch, but a more sensible approach would be to use a readily available grammar parser like Stanford's that does all the word labelling for you. Didn't have that in my time.
« Last Edit: September 17, 2016, 05:32:19 pm by Don Patrick »
CO2 retains heat. More CO2 in the air = hotter climate.

*

spydaz

  • Trusty Member
  • *******
  • Starship Trooper
  • *
  • 325
  • Developing Conversational AI (Natural Language/ML)
    • Spydaz_Web
Re: Fadela, a learning chatbot
« Reply #9 on: September 16, 2016, 02:55:00 am »
Lol


Sent from my iPhone using Tapatalk

 


LLaMA2 Meta's chatbot released
by spydaz (AI News )
August 24, 2024, 02:58:36 pm
ollama and llama3
by spydaz (AI News )
August 24, 2024, 02:55:13 pm
AI controlled F-16, for real!
by frankinstien (AI News )
June 15, 2024, 05:40:28 am
Open AI GPT-4o - audio, vision, text combined reasoning
by MikeB (AI News )
May 14, 2024, 05:46:48 am
OpenAI Speech-to-Speech Reasoning Demo
by MikeB (AI News )
March 31, 2024, 01:00:53 pm
Say good-bye to GPUs...
by MikeB (AI News )
March 23, 2024, 09:23:52 am
Google Bard report
by ivan.moony (AI News )
February 14, 2024, 04:42:23 pm
Elon Musk's xAI Grok Chatbot
by MikeB (AI News )
December 11, 2023, 06:26:33 am

Users Online

427 Guests, 0 Users

Most Online Today: 447. Most Online Ever: 2369 (November 21, 2020, 04:08:13 pm)

Articles