Complex Language Understanding & Execution (CLUES) Engine

  • 107 Replies
  • 30231 Views
*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #15 on: September 17, 2010, 12:14:56 am »
Freddy - excellent, thanks.   I'm working so hard on the project I don't even have much time for even thinking about showing it off right now.   I'm going to pound at it, and I am hoping by new years day to have one good demo for everyone.

MarkB - yes, "it" is a fascinating concept  :D   My engine will be able to "de-reference" (yes, a term borrowed from C programming) the meaning of "it".     My engine will perform the same type of searching technique it employs to figure out the structure of a sentence.  

As in my previous post, where I used the gerund phrase'Giving the girls a holiday' - the bot will know that 'it' can be a single noun of a subject or a gerund phrase, or an infinitive.
If I say "Giving the girls a holiday will please them" and another sentence right after that saying "I think they would enjoy it".    The bot will know that a possible mapping of 'it' (one of the possible mappings) is the gerund phrase of the previous sentence.   Actually 'it' is not the only word with this functionality, 'that' also...  "I won every card game last night"....  "What do you think of that?"

It will evaluate the possibility of each of these and calculate the most probably meaning of 'it'.   Perhaps before the new year I should be able to give a video demo of the many forms of 'it' that the bot can resolve.

trotter - for speed : I have made great progress in speeding this parsing technique up.   Initially, it was very much a 'brute force' algorithm but I have since figured out many short cuts and optimizations that speed it up.   However, I still have, (and I'm guessing) probably about 100 more grammar rules to code yet.    So far it responds with 2 - 3 seconds with 20 word inputs.   Sentence that are like 50 words are very difficult for it and it takes forever, but later I will utilize multi-threading and run it on a machine with 2 quard core CPUs  8)

also, trotter - for bad grammar - yes, I am actually coding proper grammar and bad grammar !  It just means more permutations.    First I will code bad grammar, then, I will make an equivalent of a "spell check" - but instead of picking the closest matching word, I will pick the closest matching grammar -- that should prove most interesting to code !!
« Last Edit: September 17, 2010, 01:02:46 am by victorshulist »

*

MarkB

  • Roomba
  • *
  • 17
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #16 on: September 17, 2010, 01:37:33 am »
I think 2-3 seconds for 20 words input is not so bad. It will look suspect if a bot sends an instant reply of 10-20 words anyway, as humans need time to type. In a virtual world, most sentences are probably less than 10 words anyway.

Shameless plug alert: If you're ready for a demo and would like to give your bot a 3D 'body', check out http://ai.bluemars.com/Wiki.

Mark
"More human than human is our motto."

*

Art

  • At the end of the game, the King and Pawn go into the same box.
  • Trusty Member
  • **********************
  • Colossus
  • *
  • 5865
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #17 on: September 17, 2010, 10:09:41 am »
@Mark - Bad link.
In the world of AI, it's the thought that counts!

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #18 on: September 17, 2010, 01:14:41 pm »
Actually I have no regard for making the bot appear human.  

At this point, and for the foreseeable future, my goal is to create a bot that can follow a discussion, store and retrieve information in complex NL statements, learn new things via NLP.

Also, to deduce or help someone arrive at a result through interactive discussion.

Think of a search engine where you can ask in NLP, and it could ask you to clarify what you mean, and then give you the direct answer to your question instead of a reference to a website !!

Or, instead of the goal being to FIND information, to deduce information through any number of indirect deductions, and through interactive dialog.

So if it can respond right way, it will.   Also it won't try to do things like 'hide' its ability to do math better than humans.   In other words, I don't subscribe to the belief that it must act like a human in order to be intelligent  :)

*

Bragi

  • Trusty Member
  • ********
  • Replicant
  • *
  • 564
    • Neural network design blog
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #19 on: September 17, 2010, 03:25:48 pm »
Hi Victor, just been doing   some catch-up reading. Still need to do lots  more.  :-\

Quote
but later I will utilize multi-threading and run it on a machine with 2 quard core CPUs
Are you taking this into account in your current code (that you want to upgrade to a parallel system, that is)? My experiences in upgrading sequential code to parallel aren't that grate, I'm afraid.

Quote
Actually I have no regard for making the bot appear human.   
me to, lets just first to to get it working, then think of the fancy stuff. ;)

*

MarkB

  • Roomba
  • *
  • 17
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #20 on: September 17, 2010, 08:48:05 pm »
@Mark - Bad link.

Oops, that is http://ai.bluemars.com/wiki (small 'w', which is strange because 'W' used to work too.)
"More human than human is our motto."

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #21 on: September 17, 2010, 11:09:43 pm »

Quote
Actually I have no regard for making the bot appear human.  

me to, lets just first to to get it working, then think of the fancy stuff. ;)

I hear you!!!  Absolutely.    Things like misspelled words I am not even going to worry about.    Bad grammar, yes, I will accomodate for that to a certain degree now, but much more later.


Are you taking this into account in your current code (that you want to upgrade to a parallel system, that is)? My experiences in upgrading sequential code to parallel aren't that grate, I'm afraid.


No, I'm not  :o   And yes, I agree, I anticipate that it will be quite an undertaking !

However, the type of work the script does in several stages lends itself well to being converted into parallel processes.

*

Mohit

  • Bumblebee
  • **
  • 26
  • Abducted by Aliens
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #22 on: September 17, 2010, 11:27:48 pm »
That's some excellent stuff you are doing there Victor. Waiting to test CLUES.

I am still catching up with basic AI concepts, but dreaming of something related to this as this is aidreams  ;D ;D ;D

After its there in the working stage, can it be made a pluggable component for an application? Something which is language independent. Like, I just have to send a sentence to it and it gives me a reply back, based on the understanding of the bot. It just solves the mystery of NLP and gives me what the human wants and then I can process it. Just a thought though.

Can death be sleep, when life is but a dream,
And scenes of bliss pass as a phantom by?
The transient pleasures as a vision seem,
And yet we think the greatest pain's to die.

~~John Keats(Lines from poem On Death)

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #23 on: September 18, 2010, 01:12:35 am »
Possibly.   Right now the entire thing is a set of perl scripts broken up simply into subroutines.   

I'm not sure what language I will go with when the proof of concept is really showing its stuff, but I have a feeling I'm going with C++.

Also, it will be a console binary (invoked right now from the Linux shell prompt) for some time to come.

I don't think it will be in binary form until very late next year, and as for a graphical 3D 'body' to put its brain into, yes, I am very interested in that also, but again, late next year at earliest.

If I go with C++, I must be cautious to only code to ANSI standards so it can be recompiled on Linux, Windows, Mac, whatever O/S.

Not sure about a pluggable peice of code.   However, perhaps I could have it listen on a socket and another program could communicate with it that way, or perhaps a named pipe, or, on Linux, a FIFO queue.

*

Mohit

  • Bumblebee
  • **
  • 26
  • Abducted by Aliens
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #24 on: September 18, 2010, 01:23:52 am »
Quote
Not sure about a pluggable peice of code.   However, perhaps I could have it listen on a socket and another program could communicate with it that way, or perhaps a named pipe, or, on Linux, a FIFO queue.

A suggestion on this. A code can be written to login on a IM server by name CLUES, we have to find a API which can make you logged in on that through Perl or C++. Then through normal chats we can transfer the messages between CLUES and the application using it. In this way a  single instance of CLUES can support inputs from multiple applications and send out the repsonse. Using a IM server can atleast cut out the hazzle of programming for request response, leaving you concentrating on CLUES. And one can use it regardless of the programming language he is using and the target platform.

E.g. If I want to use CLUES NLP engine for any purpose, all I have to do is login my application through a name on a IM server, search for CLUES there and ask for help. I can get response from CLUES and utilize them in my application in any way that I want. No hazzles at all.
Can death be sleep, when life is but a dream,
And scenes of bliss pass as a phantom by?
The transient pleasures as a vision seem,
And yet we think the greatest pain's to die.

~~John Keats(Lines from poem On Death)

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #25 on: September 18, 2010, 02:00:28 pm »
Mohit - sounds like a good idea.

Not dependant on any language, I like that.

Anyway, I am continuing my work through 'Gerunds' this morning.

This next example will show the meta data that could be used for the following sample...

user: "Driving a truck in the city is difficult"

pc: OK

user: "Is driving a truck difficult ?"

pc: Well, I don't know about just driving a truck in general, but you said that driving one in the city is difficult.

This conversation isn't happening yet, but the following parse tree is being generated and will be the source of the data required for that kind of example conversation to take place.

pos = simple-sentence
num-predicate = 1
predicate1.dcomp.adjective1.val = difficult
predicate1.dcomp.num-adjective = 1
predicate1.num-verb = 1
predicate1.verb1.val = is
subject.gerund-phrase1.dcomp.noun1.adjective1.val = a
subject.gerund-phrase1.dcomp.noun1.num-adjective = 1
subject.gerund-phrase1.dcomp.noun1.val = truck
subject.gerund-phrase1.dcomp.num-noun = 1
subject.gerund-phrase1.num-verbal = 1
subject.gerund-phrase1.verbal1.num-prep-phrase = 1
subject.gerund-phrase1.verbal1.prep-phrase-list-type = space
subject.gerund-phrase1.verbal1.prep-phrase1.num-object = 1
subject.gerund-phrase1.verbal1.prep-phrase1.num-prep = 1
subject.gerund-phrase1.verbal1.prep-phrase1.object1.adjective1.val = the
subject.gerund-phrase1.verbal1.prep-phrase1.object1.num-adjective = 1
subject.gerund-phrase1.verbal1.prep-phrase1.object1.val = city
subject.gerund-phrase1.verbal1.prep-phrase1.prep1.val = in
subject.gerund-phrase1.verbal1.val = driving
subject.num-gerund-phrase = 1

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #26 on: September 18, 2010, 02:06:06 pm »
Another even more complex example involving another prepositional phrase...

This parse tree... could serve to enable the example conversation below it possible....

pos = simple-sentence
predicate1.dcomp.adjective1.adverb1.val = very
predicate1.dcomp.adjective1.num-adverb = 1
predicate1.dcomp.adjective1.val = difficult
predicate1.dcomp.num-adjective = 1
predicate1.num-verb = 1
predicate1.verb1.val = is
src = ./ptgen/complex-complex/present-participle-predicate-predicate.pl
subject.gerund-phrase1.dcomp.noun1.adjective1.val = a
subject.gerund-phrase1.dcomp.noun1.num-adjective = 1
subject.gerund-phrase1.dcomp.noun1.val = truck
subject.gerund-phrase1.dcomp.num-noun = 1
subject.gerund-phrase1.num-verbal = 1
subject.gerund-phrase1.verbal1.num-prep-phrase = 2
subject.gerund-phrase1.verbal1.prep-phrase-list-type = space
subject.gerund-phrase1.verbal1.prep-phrase1.num-object = 1
subject.gerund-phrase1.verbal1.prep-phrase1.num-prep = 1
subject.gerund-phrase1.verbal1.prep-phrase1.object1.adjective1.val = the
subject.gerund-phrase1.verbal1.prep-phrase1.object1.num-adjective = 1
subject.gerund-phrase1.verbal1.prep-phrase1.object1.val = city
subject.gerund-phrase1.verbal1.prep-phrase1.prep1.val = in
subject.gerund-phrase1.verbal1.prep-phrase2.num-object = 1
subject.gerund-phrase1.verbal1.prep-phrase2.num-prep = 1
subject.gerund-phrase1.verbal1.prep-phrase2.object1.adjective1.val = the
subject.gerund-phrase1.verbal1.prep-phrase2.object1.num-adjective = 1
subject.gerund-phrase1.verbal1.prep-phrase2.object1.val = winter
subject.gerund-phrase1.verbal1.prep-phrase2.prep1.val = in
subject.gerund-phrase1.verbal1.val = driving
subject.num-gerund-phrase = 1


user: Driving a truck in the city in the winter is very difficult

pc: OK

user: Is driving a truck in the city difficult ?

pc: not sure, but you said doing that in the WINTER apparently is !
« Last Edit: September 18, 2010, 02:17:27 pm by victorshulist »

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #27 on: September 19, 2010, 11:39:40 pm »
I started work on my “EPTEL” mini language.  EPTEL is English Parse Tree Evaluation Language.  Should have it done for next weekend.

Basically with EPEL I won’t have to write Perl code, I can simply specify that I want to check if the user input is 2 sentences, where the first sentence involves the subject noun ‘being late’ and the second sentence with its noun ‘missing’ another noun.  Given the fact that noun ‘A’ in sentence 1 was ‘late’, and noun ‘B’ in sentence 2 ‘missed’ noun C, the system will know that the meaning of ‘missed’ is the one which involves not making it on time (not making it on time will have a semantic relationship with ‘being late’).

Thus, it will realize the semantic relationship between Sentence 1 and 2 in the following:
  [ The train being late ], [ the soldiers missed their boat. ]
        Sentence 1             Sentence 2

Also, rather than manually searching through the hundreds of parse trees to find if CLUES generated the correct one (amongst hundreds of others), using unix ‘grep’, I can just quickly write the conditions in EPTEL and ask CLUES if any of the parse trees that were generated meet that spec.  I can’t wait until I’m done the ‘interpreter’ for this mini language, it will save me a bunch of time while teaching CLUES new sentences, especially complex ones, and verifying it generated the semantically correct one.

*

Freddy

  • Administrator
  • **********************
  • Colossus
  • *
  • 6860
  • Mostly Harmless
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #28 on: September 20, 2010, 05:03:01 pm »
Probably a silly question...but what the heck...is this system meant to learn things for later use or do you aim to solve the language problems all programmatically and on-the-fly ?

I like whatever it is doing  ;D

*

victorshulist

  • Trusty Member
  • ****
  • Electric Dreamer
  • *
  • 118
Re: Complex Language Understanding & Execution (CLUES) Engine
« Reply #29 on: September 20, 2010, 06:51:49 pm »
Both.

For grammar, programmatically.

It will learn things on-the-fly such as facts, comments and even the definitions of words using naturual langauge discussion.

My first demos will be to give it a fact in natural language, and then ask it a question, to prove it understood the entire input.

But in order to  'boot strap'  the system, I am giving it grammar rules programmatically.

 


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

305 Guests, 0 Users

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

Articles