White A.I

  • 14 Replies
  • 5061 Views
*

white

  • Trusty Member
  • *
  • Roomba
  • *
  • 18
White A.I
« on: September 04, 2011, 01:04:20 pm »
All right, time to share my project. Really enjoy reading about all the other member projects. Hope we see even more going forward.

As I wrote in my introduction post, I am writing a bot / NL parser with the ambitions to base it on strong'ish A.I. In other words, I aim to make it learn and really understand the meanings of sentences given to it. Yet another stab at "mission impossible" in other words.

The project, which I call 'white', is currently undergoing a complete rewrite. The previous version was able to handle things like "The car is white", "What is the color of the car" but was too inflexible and the grammar parser was a growing mess. I also stored knowledge in tree structures which eventually became a recursive loop nightmare.

Lessons learned, I now have several fundamental changes to the architecture and I am no longer sure if my project can be categorized as being a chat bot. Although, it is still possible to interact with it through chat input, the learning algorithms will require vast amounts of input in order for it to learn (not refering to corpus linguistics). Something I will not be able to provide by just chatting to it.

I am currently testig with a simple christmas story but it sure is not easy even with the simplest of stories. A bit of a chicken and egg situation. Will be a few more weeks worth of work before it will understand it.

Anyways, let's get to some chat interaction. The bot just got the ability to respond instead of solely interpreting input so this is very early days. Due to the new method it is learning by, it will be a while before it can handle things like "what is the color of the car" from the input "the car is white". Also, I am currently not storing anything to the database so each session means it has no prior knowledge about anything. In the below examples it actually failed to understand that "red" and "blue" are adjectives and instead made noun groups with the word "car". The bot will primarily learn words by input but I need to work out how to handle irregularity and misspellings better. Makes no difference for this example though. The answers would have been identical.

me: The blue car is traveling 25 km/h faster than the red car
me: Is the blue car traveling faster than the red car
bot: Yes
me: What is traveling
bot: blue car, red car

me: The red car is traveling at 120 km/h
me: Is the red car traveling at 120 km/h
bot: Yes
me: How fast is the red car traveling
bot: I don't know

So, until now, the conversation has been quite basic. Most of which could can be solved by pattern matching but the question "How fast is the red car traveling" is harder for 'white' since it implies an understanding of what "fast" means. The first sentence is currently not enough to make that association.

me: 10 km/h is faster than 2 km/h
me: How fast is the red car traveling
bot: 120 km/h
me: How fast is the blue car traveling
bot: 145 km/h

With an example of what "fast" means in the context of "km/h", it has enough session input to answer the question and work out what the speed of the blue car is in the last answer.

I can also continue with:
me: The black car is traveling 10 km/h faster than the blue car
and it will understand that the black car is traveling at 155 km/h if questioned. Other methods learning what "fast" means could be (but not implemeted yet):

me: The blue car travels at 10 km/h
me: The red car travels at 20 km/h
me: The red car is faster than the blue car

That's it for now.

I will end this post by mentioning that you will probably see me throwing away and reimplementing parts of my code many times to come. So if you in the future ever go "hang on a minute, why is this guy reinventing wheels and not just stick with a traditional approach", the answer is that I strongly believe that in order to achieve something different, the approach must be different. Well, either that or I simply enjoy reinventing wheels. :)
« Last Edit: September 04, 2011, 06:00:37 pm by white »

*

white

  • Trusty Member
  • *
  • Roomba
  • *
  • 18
Re: White A.I
« Reply #1 on: September 04, 2011, 02:55:45 pm »
By the way, a few words on the grammar where most of my work has been lately.

English is not my native language which has influenced my grammar parser. I compare with the Scandinavian languages where English seems to be using more redundant words than Swedish (but sometimes the opposite).

English: I am walking to the city
Swedish: I walking to the city (or "I walking to cityn" to be correct, we would modify the noun instead of using an article)
Bot: I walk(progressive) to city(definite)

When parsing grammar, my bot does just like the Scandinavian languages, and gets rid of "am" which fulfills no purpose here. The verb is modified which is enough to determine that it is progressive. "Did" and "do" are other words used frequently in modern English. My bot gets rid of those too before passing it on to the relation builder code.

English: I did not walk to the city
Swedish: I walked not to the city
Bot: I walk(past, negative) to city(definite)

For questions, I borrow some logic from Asian grammar where the questions and statements are sometimes identical. The Japanese "ka" at the end after "desu" (to be) simply makes it a question.

English/Swedish: It is my camera
English/Swedish: Is it my camera?
Japanese: My camera is
Japanese: My camera is ka
Bot: It is camera(weak possessive)
Bot: It is camera(weak possessive) -->  Marked as a question for the relation builder

*

Bragi

  • Trusty Member
  • ********
  • Replicant
  • *
  • 564
    • Neural network design blog
Re: White A.I
« Reply #2 on: September 04, 2011, 03:02:33 pm »
what kind of technique are you using for parsing the input?

*

white

  • Trusty Member
  • *
  • Roomba
  • *
  • 18
Re: White A.I
« Reply #3 on: September 04, 2011, 03:43:25 pm »
what kind of technique are you using for parsing the input?

It is using hand written rules to solve non-ambiguous grammar. For instance "I picked up a {x}." is solved by handwritten rule. X is going to be a noun since it has an article and is the last word of the sentence. But in other cases, it needs to refer to prior input, example:

(pronoun)(verb)(preposition to){x}(.)

If X is unknown to the bot, it needs to look in the database in order to make a decision which will be based on both probability using learning patterns stored in the database and context.
I attempted to {x} - This would return a high probability on X being a verb.
I walked to {x} - This would have a higher probability of it being a noun, particularly if X is proper case.

The above is not implemented yet and I needed to start somewhere. Adding more hand written rules was my work around for the short term. The logic for reasoning is also completely detached from the grammar parser which will have to change later too. With context as a variable, the bot will interpret better than simply rely on statistical lookups. For instance:

I walked to sing and you walked to {x}. X is probably going to be a verb too rather than a noun which can only be solved by adding the context of the sentence.

The bot is using 3 layers of memory currently for storing words. The session memory, the mid-term memory and the long-term memory (database). Since I am not yet storing to the long-term memory, I have not yet begun implementing this and it will be a while before this is up and running and can be proven in my code.

*

ivanv

  • Trusty Member
  • ***
  • Nomad
  • *
  • 89
  • automatic mistake machine
Re: White A.I
« Reply #4 on: October 12, 2011, 05:14:09 pm »
just curious... :)
is the algorithm use some grouping method like:
red car is traveling (100 km/h)
black car is traveling (faster then the red car)

seems you got yourself really "mission impossible". good luck :)

*

white

  • Trusty Member
  • *
  • Roomba
  • *
  • 18
Re: White A.I
« Reply #5 on: October 13, 2011, 08:26:07 pm »
White uses "relation classes" for grouping. For the sentences you noted, they would look something like this (a relation in reality only uses a set of UUID's and requires a lookup to the word objects containing a lot more detail)

relation
{
   subject: car (modifyer: red)
   action: travel (present progressive)
   preposition: at
   target: km/h (num: 100)
}

relation
{
   subject: car (modifyer: black)
   action: travel (present progressive)
   comparative: fast
   target: car (modifyer: red)
}

These sentences are quite simple and can be stored in just 2 relations but a relation can also link to another relation forming much more complex structures.

...and if anyone wonders about the progress, I had a daughter a few days ago so will have little to no time to develop white for the coming 6 months. Then I will be back on it again.

*

ivanv

  • Trusty Member
  • ***
  • Nomad
  • *
  • 89
  • automatic mistake machine
Re: White A.I
« Reply #6 on: October 13, 2011, 08:37:23 pm »
 :D

*

infurl

  • Administrator
  • ***********
  • Eve
  • *
  • 1365
  • Humans will disappoint you.
    • Home Page
Re: White A.I
« Reply #7 on: October 13, 2011, 09:05:55 pm »
...and if anyone wonders about the progress, I had a daughter a few days ago so will have little to no time to develop white for the coming 6 months. Then I will be back on it again.

Congratulations! Still the easiest way to create new intelligence.

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Trusty Member
  • **********************
  • Colossus
  • *
  • 5865
Re: White A.I
« Reply #8 on: October 14, 2011, 12:16:28 am »
Congrats on your family's latest addition!! You are a rich man in many ways!! O0
In the world of AI, it's the thought that counts!

*

Bragi

  • Trusty Member
  • ********
  • Replicant
  • *
  • 564
    • Neural network design blog
Re: White A.I
« Reply #9 on: October 14, 2011, 07:14:59 am »
congrats dude, light up the sigar for me!

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 6855
  • Mostly Harmless
Re: White A.I
« Reply #10 on: October 14, 2011, 12:55:20 pm »
Great news, congrats  :)

*

squarebear

  • Trusty Member
  • *********
  • Terminator
  • *
  • 867
  • It's Hip to be Square
Re: White A.I
« Reply #11 on: October 15, 2011, 01:06:38 pm »
Congratulations! Still the easiest way to create new intelligence.

... and the most fun  ;)

Congratulations.
Feeling Chatty?
www.mitsuku.com

*

white

  • Trusty Member
  • *
  • Roomba
  • *
  • 18
Re: White A.I
« Reply #12 on: October 15, 2011, 02:50:52 pm »
Thanks, all.

...and yes, infurl, that is very true. Let's see what I can pick up from her learning methods later on.

*

infurl

  • Administrator
  • ***********
  • Eve
  • *
  • 1365
  • Humans will disappoint you.
    • Home Page
Re: White A.I
« Reply #13 on: October 15, 2011, 06:50:46 pm »
...and yes, infurl, that is very true. Let's see what I can pick up from her learning methods later on.

Don't forget to clear any experiments that you plan to conduct on your child with the family ethics committee first. ;)

*

DaveMorton

  • Trusty Member
  • ********
  • Replicant
  • *
  • 636
  • Safe, Reliable Insanity, Since 1961
    • Geek Cave Creations
Re: White A.I
« Reply #14 on: October 16, 2011, 05:36:25 am »
Don't forget to clear any experiments that you plan to conduct on your child with the family ethics committee first. ;)

Now where's the fun in that? :P
Comforting the Disturbed, Disturbing the Comfortable
Chat with Morti!
LinkedIn Profile
CAPTCHA4us

 


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
Nvidia Hype
by 8pla.net (AI News )
December 06, 2023, 10:04:52 pm
How will the OpenAI CEO being Fired affect ChatGPT?
by 8pla.net (AI News )
December 06, 2023, 09:54:25 pm
Independent AI sovereignties
by WriterOfMinds (AI News )
November 08, 2023, 04:51:21 am
LLaMA2 Meta's chatbot released
by 8pla.net (AI News )
October 18, 2023, 11:41:21 pm

Users Online

252 Guests, 0 Users

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

Articles