Loading ...
Sorry, an error occurred while loading the content.
 

Re: [Artificial Intelligence Group] My Natural Language Processing program

Expand Messages
  • AT Murray
    ... http://geocities.com/ai_project_1/ appears to be an ALICE-type canned-response NLP program that does not use concepts for knowledge-grounding. If so, the
    Message 1 of 7 , Jan 29, 2007
      --- In artificialintelligencegroup@yahoogroups.com, RobertsMrtn@...
      wrote:
      > [...] You said that your program starts off knowing
      > nothing but you asked it questions about the height
      > of people compared with other people. So your program
      > must already know about the concept of height.

      http://geocities.com/ai_project_1/ appears to be
      an ALICE-type canned-response NLP program that
      does not use concepts for knowledge-grounding.
      If so, the program may not get close to True AI like
      http://aimind-i.com in Forth based on Mind.Forth or
      http://mind.sourceforge.net/Mind.html in JavaScript.

      http://modularai.corecoding.com is a Modular AI Project
      where a Perl AI coder could set up a discussion topic
      for AI enthusiasts to cooperate in coding the various
      http://mind.sourceforge.net/aisteps.html modules of the
      http://www.cpan.org/authors/id/M/ME/MENTIFEX/mind.txt
      Comprehensive Perl Archive Network (CPAN) AI proposal.

      If the original poster to whom Martin responded really
      wants to "create the best NLP program possible" he might
      consider hosting two separate branches of Perl AI coding --
      his own original program and all new work that he adds,
      plus a conceptual, modular Perlmind program as described at
      http://mind.sourceforge.net/perl.html so that the world
      of Perl coders may have an opportunity to build on his
      invention of artificial intelligence in Perl via CPAN.

      http://www.blogcharm.com/Singularity describes how near
      the Singularity is and how AI coders may hasten its arrival.

      http://www.amazon.com/exec/obidos/ASIN/0595654371/ is
      where interested AI coders may write such AI4U reviews as
      http://mind.sourceforge.net/rjones.html with author response.
    • dkane75
      ... asked it ... your ... able to answer ... your ... this level is ... Hi Martin, Thanks for your response. I would just say that my programming philosophy is
      Message 2 of 7 , Jan 30, 2007
        --- In artificialintelligencegroup@yahoogroups.com, RobertsMrtn@... wrote:
        >
        > Hi,
        >
        > Your program looks quite impressive on the face of it.
        > You said that your program starts off knowing nothing but you
        asked it
        > questions about the height of people compared with other people. So
        your
        > program must already know about the concept of height. Would it be
        able to answer
        > similar questions concerning size or age for example? You said that
        your
        > program is quite basic, but to be able to hold conversations at
        this level is
        > quite an impressive task. I will be interested to hear more.
        >
        > Regards
        > Martin
        >
        >
        > [Non-text portions of this message have been removed]
        >


        Hi Martin,

        Thanks for your response.

        I would just say that my programming philosophy is not to start off
        with any sort of "knowledge base". What you do is create objects
        through the "There is a..." mechanism and you can populate this object
        with characteristics. Height just happens to be one of the
        characteristics that it recognizes. If you ask who is the tallest of
        two objects, it compares the registered heights of the two objects.
        This is a very basic task, and it can easily be duplicated with any
        other kind of quantifiable characteristic.

        I am still very deep in the "thinking through" phase of development
        here. The program that I have posted on the web at
        geocities.com/ai_project_1 is really just a "first draft" of sorts: a
        very basic prototype of the mechanisms that I use. I am now on the
        second version which will much more flexible and robust.

        What I think is missing from the field of AI programming is basic
        working examples of simple human logic parsing and registration. To
        me, the proof is in the pudding of the conversation threads that a
        program is capable of handling. I am always thinking of new types of
        threads that I want to be able to handle, such as:

        "There is a funny man named Alex"
        "Alex is a doctor"

        So, the problem I had here is to decide how to treat the "being a
        doctor" quality of Alex. Do I treat is as a simple characteristic,
        such as his funniness? I figured that this approach makes no sense
        because a "doctor" is a concrete object, just like a "man" is. So,
        what I decided to do is develop the concept of a "hard link" between
        objects. Just as the first statement creates a "man" object, the
        second statement creates a "doctor" object. But the second statement
        also creates a link between the "man" and "doctor" objects. I call
        this a "hard" link because these two objects must not consist of any
        contradictory characteristics. In other words, if the man is "funny",
        then the doctor cannot be "unfunny". The two must have the same name,
        birthdate, gender, height, weight, etc...

        But then, we have this similiar conversation thread:

        "There is a funny man named Alex"
        "As a boy, Alex was not funny"

        My thought in this case is to create something called a "temporal
        link" between the man and the boy objects. A temporal link means that
        two objects are linked along a timeline, in a definite order. Two
        objects that are linked temporally may differ in some characteristics
        ,such as height, weight, funniness, but may not differ in others, such
        as gender, name, or birthdate.

        And then you have this kind of thread:

        "There is a man named Joe and a man named Mike"
        "Mike and Joe are MENSA members"

        This would create the weakest link of all between objects: a nominal
        link. The only necessary characteristic shared between the two
        objects is membership in the same club.

        Going back to the first thread, then, what should happen if you create
        a hard link between objects, and then later negate it: "Alex is not a
        doctor". My thinking is simply to turn the link into a temporal link.
        That is, the doctor object exists only as being temporally prior to
        the man object. This has the same effect as "Alex was a doctor".
        Some of the charateristics of the two objects can now be different
        from one another, while others must be the same.

        The question of what to do upon the statement "Alex never was a
        doctor", however, is up in the air...

        I have also gotten the new version of my program to be able to handle
        ambiguous references:

        "There is a crazy boy named Bill and a crazy boy named Jeff and a
        pool"
        "The crazy boy swam in the pool"

        The program will then ask which crazy boy is being referred to. If
        the next statement is simply, "Bill", the program will then complete
        the registration of the first statement, as if it had been, "Bill swam
        in the pool".

        About the basic philosophy of what I want this program to do,
        statements like:

        "Dogs are four legged"
        "Men are mortal"
        "Always eat breakfast in the morning"
        "The sky is blue"

        are highly uninteresting. All other Natural Language Processing
        programs that I have seen get hung up on statements like these. I
        fail to see how otherwise intelligent human beings could be served in
        the least by computer programs with this kind of "knowledege base".
        This kind of abstractive reasoning is highly derivative. The first
        task in the field of AI should be to get computers to "think"
        concretely. After all, this is the way in which we learn to think as
        we are growing up.

        Our parents point to some object and say, "There is an airplane" or
        "There is a bird" or whatever. We then ask our parents questions
        about the characteristics of THAT PARTICULAR object: "How fast can it
        go?" or "How high can it fly?"

        We live in the real world that is composed of real, discrete objects.
        The problem is that we refer to the same objects in many various
        ways: "Joe" or "he" or "the doctor" or "Alice's son" or "the guy I met
        on the Subway last Tuesday". In fact, one of the first things I
        realized I needed to get my program to do was pronoun substitution.
        This is something that the human mind does effortlessly, and we
        therefore take it for granted. But it is immensely important when it
        comes to everyday human communication.

        So, here's what I'm thinking of the future of where this kind of
        programming can go. You start out with personal computers that you
        tell all of your personal information to. These are the computers
        that can easily handle everyday references, such as, "Mike" or "my
        doctor" or whatever. You can then tell your computer "I need to
        schedule a reservation at Angelo's Pizzeria for Mike's Birthday" or
        "Make an appointment with my doctor for next Tuesday at 9 am". You
        computer knows who "Mike" is and all of his necessary attributes, and
        the same goes for "my doctor". Your personal computer will then be
        able to send a plain text message to another computer, such as the one
        at Angelo's Pizzeria or the one at your doctor's office.

        These other computers, then, will be able to handle the specialized
        task of setting appointments, for example. Other computers, however,
        might just be "routers" in that they parse an incoming request, such
        as ..."What is the atomic weight of Boron" and determine what kind of
        computer would be able to answer the question. The router might be
        able to determine that the question deals with chemistry, and then
        would send the question off to a known chemistry server, at the local
        university, for instance. In this way, we would be able to build an
        "intelligent internet" that quickly and easily handles everyday human
        logic.

        The bottom line of what we, in the NLP field, are trying to do is to
        be able to program computers from a distance. If we only have access
        to a telephone, and are otherwise indisposed, we might want to be able
        to leave our computers a voice message that it can register the logic
        of, and perform any necessary actions. The examples of appointment
        setting are simply very basic examples of "at-a-distance computer
        programming". But before any of this becomes an everyday reality, we
        need to be able to program our computers to parse and register
        everyday human logic.

        The end task, ultimately, is the creation of the highest possible
        level computer programming language: English (or the human language of
        your choice).
      • dkane75
        ... There is a MAJOR difference between a canned response that has noth ing to do with the price of tea in China and a response that is logically correct.
        Message 3 of 7 , Jan 30, 2007
          --- In artificialintelligencegroup@yahoogroups.com, "AT Murray"
          <mentifex@...> wrote:
          >
          >
          > http://geocities.com/ai_project_1/ appears to be
          > an ALICE-type canned-response NLP program that
          > does not use concepts for knowledge-grounding.

          There is a MAJOR difference between a "canned response" that has noth
          ing to do with the price of tea in China and a response that is
          logically correct. My program is founded on functional logical
          correctness. Everything like Alice and Jabberwacky is simple amusement.


          > If so, the program may not get close to True AI like ...

          I have no idea what the term "True AI" is meant to connote. I assume
          the main users of the term are the snake-oil salesmen of today.


          > If the original poster to whom Martin responded really
          > wants to "create the best NLP program possible" he might
          > consider...

          The proof is in the pudding of the conversational threads that a
          computer program can handle. As I am not highly impressed by the
          threads that your program can handle, I'm not sure how seriously I
          should take any suggestions you may offer.
        • Chris Lofting
          ... ... One needs to focus on the roots of logic to get it to allow for development of meaning. The neurological dynamics of our brains reflect a
          Message 4 of 7 , Jan 31, 2007
            > -----Original Message-----
            > From: artificialintelligencegroup@yahoogroups.com
            > [mailto:artificialintelligencegroup@yahoogroups.com] On Behalf Of dkane75
            > Sent: Wednesday, 31 January 2007 2:05 PM
            > To: artificialintelligencegroup@yahoogroups.com
            > Subject: [Artificial Intelligence Group] Re: My Natural Language
            > Processing program
            >
            <snip>
            >
            > I would just say that my programming philosophy is not to start off
            > with any sort of "knowledge base". What you do is create objects
            > through the "There is a..." mechanism and you can populate this object
            > with characteristics. Height just happens to be one of the
            > characteristics that it recognizes. If you ask who is the tallest of
            > two objects, it compares the registered heights of the two objects.
            > This is a very basic task, and it can easily be duplicated with any
            > other kind of quantifiable characteristic.
            >
            > I am still very deep in the "thinking through" phase of development
            > here. The program that I have posted on the web at
            > geocities.com/ai_project_1 is really just a "first draft" of sorts: a
            > very basic prototype of the mechanisms that I use. I am now on the
            > second version which will much more flexible and robust.
            >
            > What I think is missing from the field of AI programming is basic
            > working examples of simple human logic parsing and registration.


            One needs to focus on the roots of logic to get it to allow for development
            of meaning. The neurological dynamics of our brains reflect a derivation of
            the full set of logic operators from a sub-set, or more so a generic set,
            covering symmetric perspectives and so approximations. Out of the symmetric
            emerged the asymmetric and combining the two introduces hierarchy covering
            non-nested to nested.

            Given hierarchy we will have levels of logic with the most refined requiring
            energy to operate where that energy can be costly and so we fall back on
            some 'easier' level of operation but in so doing introduce 'illogic' in
            reasoning - IOW we fall back from asymmetric to symmetric and that includes
            interpreting the asymmetric as if symmetric (emotion does this).

            Symmetric communications:

            IF a IS NEAR b then b is NEAR a.

            Asymmetric:

            IF a is two inches to the LEFT of b then b is two inches to the RIGHT of a.

            The asymmetric is more precise.

            Everyday 'chit chat' covers a more symmetric focus in that living off
            autopilot means living off instincts/habits and THEIR focus is on SAMENESS
            (and so the symmetric focus that reflects our use of metaphor etc -
            asymmetric distorts the metaphor into metonymy - part for whole confusions)

            As a species we are super-sensitive to DIFFERENCES (XOR operator) but upon
            experience of such will try and seek out SAMENESS (EQV operator). To
            maintain asymmetry we focus on the IMP operator that is the only asymmetric
            operator and covers the converse of IF..THEN.. not being true. Symmetry
            focus is 'lazy' and works as A IFF B etc to allow for converse.

            The cost of the asymmetric is that it can elicit sensory paradox - see
            examples in http://members.iimetro.com.au/~lofting/myweb/paradox.html )

            WE can trace the roots of all of this back to basic brain dynamics covering
            self-referencing of dichotomies and in particular the WHAT/WHERE aka
            differentiating/integrating aka difference/sameness aka asymmetric/symmetric
            dichotomy.

            The self-referencing gives us (a) three forms of dichotomy (symmetric,
            asymmetric, anti-symmetric) and (b) two basic forms of hierarchy, nested vs
            non-nested.

            With the dichotomies, once self-referenced, we can derive a set of
            categories covering the full spectrum of dichotomies in that underneath all
            of the possible labels for categories, there is a core set derived from our
            neurology where that set seeds such notions as verbs/nouns and their
            derivatives or local labelling and does the set seed basic categories of
            emotions and of the types of numbers we use in mathematics etc etc etc

            There is more of course, there is a property of self-referencing that is not
            covered in the literature, namely the set of categories, being a form of
            language, must be able to describe themselves, and they DO if one uses the
            bit representations of categories and use the XOR operator - see
            http://members.iimetro.com.au/~lofting/myweb/properties.html - in that that
            operator allows for extraction of parts (difference) from a whole regardless
            of scale (but you DO need to recurse to 5/6 levels to start to get 'value'
            from this process)

            Chris
            -----------------------------
            generic categories of meaning:
            ------------------------------
            Objects bias (differentiating):
            BLEND - wholeness, whole numbers
            BOUND - partness, rational numbers
            Relationships bias (integrating):
            BOND - share space, irrational numbers
            BIND - share time, imaginary numbers

            From these come composites as reals, complex, quaternions, octonions. All
            else follows....
            http://members.iimetro.com.au/~lofting/myweb/introIDM.html
          • AT Murray
            ... http://modularai.messageforums.net/perl-for-modular-ai_t28.html is an invitation to code conceptual, modular AI Minds in Perl.
            Message 5 of 7 , Feb 4, 2007
              --- In artificialintelligencegroup@yahoogroups.com, "AT Murray"
              <mentifex@...> wrote:
              > [...]
              http://modularai.messageforums.net/perl-for-modular-ai_t28.html
              is an invitation to code conceptual, modular AI Minds in Perl.
            • melami
              about natural language understanding, i advise you Turkish language, that has a mathematical base, and fully regular (no irregular words/phases) ... From:
              Message 6 of 7 , Mar 3, 2007
                about natural language understanding, i advise you Turkish language, that has a mathematical base, and fully regular (no irregular words/phases)


                ----- Original Message ----
                From: dkane75 <dkane75@...>
                To: artificialintelligencegroup@yahoogroups.com
                Sent: Friday, January 26, 2007 6:22:46 AM
                Subject: [Artificial Intelligence Group] My Natural Language Processing program

                I've taken upon myself the task of creating a full-fledged natural
                language processing program that could serve as a sort of "operating
                system" in a computer that you talk to rather than point and click at.

                My main interest deals in parsing and registering everday human logic
                followed by handling queries based upon what the program has been
                "taught".

                I finished my first generation program several months ago, which can
                be downloaded here: http://geocities. com/ai_project_ 1 .

                The program starts out as a "clean slate" whereby you begin teaching
                it basic facts that you can later query. Here is a "discussion" that
                I held with it.

                Me: Who do you know?
                Computer: I do not know anyone.
                Me: There is a crazy boy and a wild girl.
                Computer: Okay...
                Me: He is named Joe.
                Computer: Confirm the name of the boy is: Joe.
                Me: Yes.
                Computer: Thank you.
                Me: Her name is Sally.
                Computer: Confirm the name of the girl is: Sally.
                Me: Yes.
                Computer: Thank you.
                Me: There is a green pool.
                Computer: Okay...
                Me: Yesterday, Joe swam in it.
                Computer: Okay...
                Me: He did that because he is crazy.
                Computer: Okay...
                Me: There is a hilly park.
                Computer: Okay...
                Me: Sally ran in it.
                Computer: Okay...
                Me: She is 2 meters tall.
                Computer: Okay...
                Me: The boy is 5 feet tall.
                Computer: Okay...
                Me: Who do you know?
                Computer: I know a boy named Joe and a girl named Sally.
                Me: What is Joe like?
                Computer: Joe is crazy.
                Me: Why is he like that?
                Computer: I do not know.
                Me: Where is the boy?
                Computer: As of 1-14-07 Joe was in the pool.
                Me: What is he doing?
                Computer: As of 1-14-07 Joe was swimming.
                Me: Why did he swim?
                Computer: Because Joe is crazy.
                Me: Is Sally crazy?
                Computer: No, Sally is not crazy.
                Me: She is wild.
                Computer: Yes, I know.
                Me: Where is she?
                Computer: As of 3 minutes ago Sally was in the park.
                Me: Is Joe taller than Sally?
                Computer: No.
                Me: What is the park like?
                Computer: It is hilly.
                Me: Where is it?
                Computer: I do not know the location of the park.

                Very basic stuff, but not bad for my first try at programming!

                I knew that I was going to need to start the whole thing over again if
                I was going to be able to handle the complexity of statements that I
                wanted, and also if it was going to be able to output more
                naturalistic and varied responses.

                My new program, so far, is able to parse statements of arbitrary
                length and complexity:

                "Joe and Sally walked in and around the park and playground"

                or

                "They are wild and crazy swam in the pool and ate the pizza"

                or

                "There is a boy girl and pool the boy and girl are wild and crazy they
                swam in it because they are hot"

                I intentionally left out the punctuation because the program is
                intended to be able to parse text that is input from a speech
                recognition program, which is punctuation free, of course.

                I would like to get in touch with others who have the same kind of
                interest in natural language processing. I would like to find people
                that I can work on this project with, either as a developer, a
                beta-tester, or even an output response writer (as in the response to
                a statement like "Hello" or "The boy is crazy").

                I have tried to find other working examples of programs like mine. I
                have tried those web-based chatbots, and they are horrifyingly awful.
                I have looked in the Natural Language registry website, and found
                nothing very exciting. Mainly, I am looking for inspiration so that I
                can create the best NLP program possible.

                contact me at: ai_project_1 at yahoo dot you-know-what






                ____________________________________________________________________________________
                Need a quick answer? Get one in minutes from people who know.
                Ask your question on www.Answers.yahoo.com

                [Non-text portions of this message have been removed]
              Your message has been successfully submitted and would be delivered to recipients shortly.