She talks. She talks a lot, in fact. It's just not what I'm shooting for.
I haven't posted here in a while. Sometimes it takes days/weeks/months to think things through enough to know what the heck I'm doing. I put the facial recognition/detection stuff on hold for now because it occurred to me that I think I did a couple things out of order. I need Willow to be able to give me some decent feedback before I can start testing her with different functions. Right now, she is only capable of telling me things that she is programmed to tell me. Now I just need her to be able to tell me everything else.
She also needs to be able to verbally understand more than just voice commands, no matter how elaborate those commands may be. She needs to be able to take a sentence, any sentence, parse it out into parts of speech, pick out the subject and predicate parts, understand if it's a question, command or statement, and also form an opinion about the meaning. I have put this off for long enough. It is probably the part I am dreading the most, even though I have thought about it the most over the passed 10 years.
It's easy to create a program that will wait for you to say certain words in a certain order and then perform a task when you do. It's also easy to throw those commands into a database so you can add more commands relatively easily. It's a little more difficult to define her code in the database so that you can match up voice commands in the database with her functions so that nothing is hard-coded and everything (EVERYTHING) is configurable, but it's doable. So far, it's been extremely challenging to figure out a way to make her understand what those functions actually do in the real world and make her smart enough to know how to match up her own functions with voice commands. Since the ultimate goal is for her to think for herself, she will also need to be able to act for herself.
This means:
1. She needs to be completely configurable
2. She needs to be able to configure herself
3. She needs to be smart enough to know how to do so appropriately
Where are you going with this, Danger?
All the crap I just said is being applied to not only the ability to speak and be spoken to, but to learn and increase and improve her vocabulary and understanding of the subject at hand, just like a human being. So, like a human being, I will be "teaching" her to speak and comprehend speech instead of "programming" her to.
Here is a brief outline of my approach: (did I say brief?)
1. The Dreaded Dictionary
Simply put (a new direction for me, I know), I need a database of every word in the English language. I'll talk more about how I am going to get this in my next post, but for now, it's just important to note that Willow is going to need to have access to every word in the English language, as well as their definitions, their parts of speech, synonyms and antonyms, and anything else I can find, whether she can immediately make sense of them or not.
2. Redefining the Dictionary
Sure, the dictionary tells "us" anything we need to know about vocabulary, but that is because we, as human beings, are able to associate words with memories, thoughts and feelings which make us able to comprehend what we are learning. Willow needs to be able to take words and define them in a way that "she" can understand. I intend to do this using a technique I developed a loooooooong time ago. The idea is, since adjectives are describing words and we use them to describe the world we live in, Willow will do the same. However, before this is possible, any adjectives that she uses need to make sense to her. I plan to do that by attaching emotion values directly to adjectives. This will not only give her an opinion about the things that are described to her, but it will also give her the ability to change her mind, or evolve what she already knows about things.
This will be an ongoing process throughout her existence as this is the very core concept of how she will perceive the world and continue to learn about it. This is a big topic, in itself, so I won't go any deeper into it until I finish step one.
3. Grammar Parsing
Yeah, kill me now. Don't get me wrong, all of this is fun to me, but this part has kicked my @$$ for years. I have a lot of it figured out, but there are so many more problems and rules to hash out that it's sure to continue to bruise my duff for some time.
Basically, I need to break down the English language into rules. You and I talk (you probably more than me) and communicate so effortlessly that we don't think about how complicated it all really is. Words have to be said in a certain order to make sense, but only sometimes. "I" before "E" except after "C", but only sometimes. Add an "S" to words to make them plural, but... you guessed it, only sometimes.
Our language, possibly above all others, is retarded. So many exceptions to the rules. I have high hopes that I can tame chaos, here, but even if I do, I'm stuck with the practical realization that no one even really follows these rules. After all is said an done, people talk however they want. Even if I get Willow to have a perfect understanding of the English language, she will still be faced with the inevitable fact that it will just take one genius off the street to say something like, "Yo, Dog. Wus up?" to throw her logic in the proverbial e-crapper.
That being said, I am just going to take it slow, plan for the future the best I can, and just assume that she will only be communicating directly with me for quite some time.
4. Grammar Construction
Assuming I haven't killed myself from step 3, step 4 is sure to finish me off. I'm talking about the exact opposite of Willow's ability to understand what is being spoken to her. It is the ability to form her own sentences, herself.
I'll be honest. I am secretly hoping to be struck by lightning in hopes a great epiphany will enlighten me on this one. Once I am able to break down language into rules, I am hoping that I can use those rules to form sentences, but... Making those sentence grammatically correct as well as expressing an accurate meaning is something that I have only seen in movies. In spite of past criticism, I am an optimist. I am going on faith in myself on this one.
I'll have to keep you posted.
Conclusion
As you can see, I have my work cut out for me. I will probably be writing a quick post about step one pretty soon.