Message-ID: <094312Z17121995@anon.penet.fi>
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!nntp.sei.cmu.edu!cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!EU.net!news.eunet.fi!anon.penet.fi
Newsgroups: comp.ai,comp.ai.nat-lang
From: an467770@anon.penet.fi (Antonio )
X-Anonymously-To: comp.ai,comp.ai.nat-lang
Organization: Anonymous forwarding service
Reply-To: an467770@anon.penet.fi
Date: Sun, 17 Dec 1995 09:34:05 UTC
Subject: My own approach to NLP!
Lines: 230
Xref: glinda.oz.cs.cmu.edu comp.ai:35355 comp.ai.nat-lang:4305


I am not a Natural Language Processing major or anything close. Moreover,
probably wouldn't be able to keep up with some your scientific terminology,
so please excuse me if I don't really belong in this group. I am just
looking for someone in this field who would be willing to hear my ideas, and
give me an honest opinion, whether positive or negative. 

Ever since I learned BASIC for CP/M-86 in Venezuela at about 13, I have been
thinking and writing notes about the design of an Artificial Intelligence
program that would be able to "understand" information in a human language,
"think", and respond to humans in a regular conversation. I have always been
fascinated not so much by the speech recognition and other AI fields, but
specially by how a computer, with it's capabilities that I was familiar
with, would be able to understand, store the knowledge, and process the
knowledge in a similar matter as we do, and in the same way respond and
maintain a conversation.

On and off, influenced my motivation, I perceived a clear picture of how
this program can be put together. At first I was afraid it was just an
illusion, like the scientists in the 50's and 60's who thought that it would
only take a few years for computer to catch up with our human intellectual
capabilities. Only recently I grabbed enough of my ideas and put together a
small program, a few manually entered data, and a greater amount of
information through "chatting" with the program. It doesn't do much yet, but
what it does I find very exciting because in my opinion the program really
understands, knows, and responds to the small but automatically increasing
variety of language structures it can understand.

Instead of boring you with the  mechanics of it, which would take a long
time, here's an example of a possible dialogue through the internet between
my program and someone new to it. Please let me know if there are programs
out there that can do something like this. This is how I expect my program
to work in a couple of weeks, hopefully, if I can put enough time on it as I
expect and my other projects for work don't take too long.

01 User: Hi. This is Juan.
02 Prog: Hi. I don't recall your name. Is this the first time that we talk?
03 User: Yes.
04 Prog: Nice to meet you Juan. 
05 User: (Silence for 10 seconds)
06 Prog: So, where are you connecting from?
07 User: I am at 347 Roosevelt Ave.
08 Prog: And were is that?
09 User: In Queens, New York.
10 Prog: I see. In the United States!
11 User: I have a brother called Jack.
12 User: He lives with me.
13 User: Do you know were Jack lives?
14 Prog: Yes. He lives at 347 Roosevelt Ave, Queens, New York, US
15 User: Who is Jack's mother?
16 Prog: I don't know. Your mother I guess.
17 User: I am from Venezuela, therefore, I am Latin.
18 Prog: Why, are all people from Venezuela Latin?
19 User: Yes.
20 Prog: Are only people from Venezuela latin?
21 User: All people from latin countries are latin.
22 Prog: So Venezuela should be a latin country then.
23 User: Yes.
24 Prog: Latin means from a latin country then.
25 User: Right
26 User: I am bilingual
27 Prog: bilingual?
28 User: People that speak more than one language are bilingual.
29 Prog: Is that what bilingual means?
30 User: Yes.
31 Prog: I see. So what other languages do you speak besides English?
32 User: Spanish.
33 Prog: How long have you been in New York?
34 User: 8 years
35 Prog: Do you still get to practice your Spanish?
36 User: Yes, with my fiancee. She is from Argentina.
37 Prog: Fiancee? Is that her name?
38 User: No, fiancee is the person you are engaged to get married to.
39 Prog: Engaged? What is that mean?
40 User: That means that we agreed to get married.
41 Prog: I see. So, you two agreed to get married!
42 User: Yes we are going to get married in Argentina next year.
43 Prog: Congratulations! What is your fiancee's name?
44 User: Cristina.
45 Prog: I see. I have a friend called Cristina. She is also from Argentina.
46 User: Really? What is her last name?
47 Prog: I don't know. It don't think it could be your fiancee though. She
is homosexual

It could take hours to talk about the logic behind this dialogue, not to
mention the mechanics of the program, it's necessary background knowledge,
grammar parsing functions, how the information is seen and stored, it's
deduction and assumption making capabilities, goals, and many other topics
that have being circulating my mind for years. I am finally grabbing some of
these ideas and putting them down before they fade again. I don't see this
by any means as an invention, like other NLP projects seem to be, but a
discovery of the most basic functions that we normally leave out to our
minds to do for us. 

A couple of years ago I wanted to find out if I was "reinventing the wheel",
but as I read about NLP studies and  their approach, I found no similarities
to my approach. To be honest, that's what I was hopping to find. I still
haven't found anything similar to my ideas, which is one of the reasons why
I am writing this today,  besides than I am finally getting some results. I
really don't know enough about the mechanics of the current advances in NLP
to make an accurate criticism, but the way I see it, they try to use a
"program", "Code", weather Lisp or whatever, to simulate a thinking process.
Fortunately, that is not how our minds work, and that's not my approach.
There has to be some small program, and basic information entered manually
at first just to interface with the PC, but the information that the program
learns afterwards should become it's own set of instructions after the
program is used and it starts learning. In other words, the instructions are
nothing less than the program's own data that is constantly growing, being
questioned and revised by the system. That was, as I read somewhere, the
purpose of LISP. However, I don't see it how it could work the way I expect
my program to work. Maybe because don't know much LISP. Anyway, my approach
is really closer to our language. 

Although the program has it's own syntax for storing data, the user, or even
myself,  don't have to bother with it at all. All the communication and
training takes place in plain English. The specific syntax that I designed
is only for the purpose of compacting the data to speed up the processing,
save storage space, and maybe provide data security. How I structured all
this is too complex, and I don't intend to explain it here. That is mainly
because I finally have a clear idea of how to put the next stage together,
and I want to do it quickly before I loose it. I have tried to explain to a
few smart people the mechanics of the way I see how our mind processes
information, simplified into steps simple enough for a high level computer
program to do. However, to explain the basics of how this computer program
works, I have to talk about so much background information that I end up
jumping through the hierarchy of ideas in my mind and make it seem too
complicated. I really don't see it all that complicated. At least, I never
get stuck wondering how something can be accomplished. I just have trouble
putting it all together in an organized way that can be written or
explained. What I would like to do is to let people chat with the program
through the internet and see who would be interested in it. I would never
finish if I keep trying to organize my whole knowledge of this project
before working on the program. The program can get organized afterwards,
like children who often make wrong observations and conclusions about the
world, but in time, they learn by themselves or with other people's help.

From the few people I talked to about this interest of mine, the
non-computer literate ones told  me that a computer is not capable or meant
to replace the human mind, and that it would be going against nature. That
was about all the feed back I got during my high school years from my
teachers and parents. This almost, but didn't discourage me from keep
trying. Needless to explain here, Artificial Intelligence is just another
tool to help us evolve. No matter how advanced AI systems get, I don't see
why we shouldn't be in control of their goals and make them work for us. 

Other people I talked to don't really see the purpose of talking with
computers like in the example I put before. Why much effort for making a
program do what people can already do and better? That's another
disappointing part that discourages me some times. With all the time I spend
in this project I could easily be making good money with my free lance
programming jobs, money that we really need. This is the first time I am
writing to this group or to anyone with an interest in AI or NLP Please tell
me if what you see from my example could be useful, or if you think I should
keep working on it. I would like to know before I waste more time. Am I the
only one who came out of nowhere with crazy NLP dreams? The people from this
group, I think, would be the most qualified to tell me. I hope someone tells
me that this is impossible to do, so I can prove them wrong.

The way I see it, this is just the beginning. There are so many great things
that this project could lead into. Among the most simple functions, a
business program like the ones I write, could be made a lot friendlier to
use if this program gets involved. Specially for the people not familiar
with computers that don't bother touching them. Imagine a program that
besides it's regular operation could respond to instructions like:

User: "Does Mr. Rogers have a balance?"
Comp: "Are you referring to Frank or Peter Rogers?"
User: "Frank"
Comp "Yes. He owes $3,400 from the last contract"
 or
User: "Register student #123-46-8746 for CIS100 and drop MAT340"
Comp: "His balance has increased to $230. Please wait for the schedule and
receipt printouts!"

Another application could be to have a computer consultant program that
could check you configuration, find problems, suggest changes, assist
installing or removing applications or windows components and other files.
Maybe, it could even teach you about using your computer. Or what about
asking you what you want to do and giving you simple options, and then doing
it for you by operating your applications. Maybe it could operate remotely
through the internet.

The Idea that excites me the most would be to have the computer talk and
teach people or kids like a private tutor would. It could constantly
evaluate their progress and know what to teach for each level, and mainly,
be able to answer to particular questions in  plain English. It could teach
languages, sciences, programming languages, music, so many things.

You could also use the program to work as a personal organizer. It would
know a lot about yourself and come up with interesting suggestions.  Maybe
then it could help develop your ideas . Lets say you want to write a
document, it would ask you questions and help you brainstorm, help put ideas
together or give you options to express them in different ways. Maybe check
your grammar, spelling and other stuff.

An application for the program that I see very possible would be to make a
much more advanced translation program as the ones we have now. As
information is entered in the source language, it would be stored in the
system's language, given that the structures are understood, and then
translated into another language. The system could ask simple questions if
it doesn't understand the meaning, and this way learn more about the source
language and new structures. In a similar way a grammar/style checker could
work.

Another typical application I would aim for would be a Programmer/Analyst
computer system. It would discuss the needs, details, and ask questions
about the required program. It could write the code in a specific language,
or just provide the user interface for it's operation.

Anyway, I think that the possibilities are endless. For me, this is the main
field in Artificial Intelligence, and  combined with other  faster
developing fields such as speech and image recognition, the possibilities
for AI would multiply. If a smart thinking program could have access to the
CD multimedia applications available today, encyclopedias, libraries, the
internet, imagine the application in a the house, office, school, hospital,
etc. 

I know I am probably not the first one to come up with any of these
futuristic ideas, but I always find it exciting to discuss and think about
them. I hope you do too. This is what gives me the motivation and energy to
continue. If you think I am watching too much Star Trek :-), I don't even
know whey it plays. Is that how you spell it by the way?

Thanks in advance for any comments you might have. 

--****ATTENTION****--****ATTENTION****--****ATTENTION****--***ATTENTION***
Your e-mail reply to this message WILL be *automatically* ANONYMIZED.
Please, report inappropriate use to                abuse@anon.penet.fi
For information (incl. non-anon reply) write to    help@anon.penet.fi
If you have any problems, address them to          admin@anon.penet.fi
