home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.ai      Awaiting the gospel from Sarah Connor      1,954 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 82 of 1,954   
   Ray Dillinger to Martin Sondergaard   
   Re: help with AI project (1/2)   
   29 Sep 03 01:03:23   
   
   XPost: comp.lang.lisp, comp.lang.prolog   
   From: bear@sonic.net   
      
   Martin Sondergaard wrote:   
   >   
   > S White wrote :   
   >   
   > > Hi,   
   > > Just wanted to ask some advice. My plan is to research the area of AI   
   > > and law, specifically by developing a prototype for decision support   
   > > system adjusted to particular legislation etc. As i'm a lawyer rather   
   > > than a technician i am not yet that skilled in the area of ai   
   > > programming but hopefully i'll improve. The main question is what   
   > > language (prolog or lisp) should i use to start the work? What i   
   > > mainly want to do at the moment is to create a program with which you   
   > > can converse in natural language and "build upon" it until it reaches   
   > > rather high sophistication. When I achieve a program capable of rather   
   > > general conversation (and also know more about ai) i plan to add the   
   > > legal reasoning part. What is your suggestion on how to go about this?   
   > > (It's a four year project so i know this wont happen overnight).   
   > > Ultimately i want to complement the program with some kind of good   
   > > interface (possible face with lip sync / speech synthesis).   
   > >   
   > > Regards,   
   > > S   
   >   
   > This is a very ambitious project.   
   > Even though you have allowed yourself 4 years, I don't know if you can do it   
   > in that time, because creating a program that can converse in natural   
   > language is extremely difficult.   
      
   I think you may be setting a much higher goal for the intelligence   
   of the AI than the original poster.   
      
   It's not hard to build a chatterbot.  If you restrict yourself to   
   patternmatching on the input and selecting and outputting a canned   
   response, you can write the "engine" in a few weeks and then, in   
   about six months of reading logfiles and debugging, you can create   
   something that has pretty good fluency.  It won't know what people   
   are saying, and it won't actually be much smarter than grass, but it   
   will have a bundle of linguistic responses and reflexes that make it   
   seem superficially capable.   
      
   Such systems are popular as "toys" like eliza, but they are capable   
   of being useful as desktop references and natural-language guides   
   through a tightly-organized domain of knowledge.  I have built such   
   useful systems professionally, in fact (and would cheerfully do it   
   again if someone would like to hire me. :-) ).   
      
   Now, if you actually want it to parse English and represent knowledge   
   in some useful, internally-accessible format and know what someone   
   said, and access a database and use its knowledge of english grammar   
   and vocabulary to plan and output its own sensible responses, that's   
   a whole different kettle of fish - at a wooly guess, *that* job is   
   at least two orders of magnitude longer and three orders of magnitude   
   harder.   
      
   > I'm working on such a project myself.  But I've been working on this project   
   > for many years, and I may well be working on it for the next ten years too.   
   > Natural Language Processing is not easy.   
      
   Heh.  Me too.  I got tired of just building "useful chatterbots" at   
   work and undertook a personal project to build the best handling of   
   language I know how to do.  We should compare notes sometime.   
      
   > I recommend that you use Prolog rather than Lisp.  Prolog is said to be   
   > better for NLP than Lisp.  Among other reasons, it has something called   
   > "DCG grammar" features.  (In other words it has facilities for parsing   
   > English sentences, to find out the grammatical structure of sentences.)   
      
   I'm using a Lisp, but that's probably just because I happened   
   to learn it first and I'm more comfortable with it.  Prolog is   
   absolutely great for pattern-matching among a huge number of   
   possibilities - which, basically, is what most parsing algorithms   
   wind up doing at some point.  If you think you can prioritize   
   matching work better than prolog's native rule-matching engine,   
   you may want to use a different language.  If not, definitely   
   do it in prolog.   
      
   I'm using hidden markov models to try to predict the best   
   grammar rule to try next and the most likely partial parse   
   to try it on; we'll see if the gain is worth the overhead   
   and the coding sweat.  It may turn out that I should have   
   just used Prolog.   
      
   > Torbjorn Lager wrote :   
   > > You seem to think that creating a "program with which you can converse   
   > in natural language" is simpler than creating a program that can do   
   > legal reasoning. As a computational linguist, I believe it is rather   
   > the other way around. Since you are a lawyer my advice would be to   
   > start with the legal reasoning part.   
   > <   
   >   
   > I agree with Torbjorn.  Designing a program that can have a conversation is   
   > difficult.   
      
   Well, ELIZA's not particularly difficult.  And an ELIZA-oid program   
   with 1500-2500 pattern/response pairs can actually provide pretty   
   good coverage of a narrow subject area even though it's not much   
   smarter than grass.  It sounded like the OP might be satisfied with   
   a reference system rather than something actually capable of   
   comprehension and legal reasoning; if so, it's achievable.   
      
   > You can then build up on this program, to give it more legal knowledge, and   
   > more complex behaviour.  If you wish, and if you have the time, you can add   
   > NLP features to it, so that the user can enter simple sentences which the   
   > Expert System responds to.   
      
   Absolutely the lifeblood of any program that handles natural language,   
   or any expert system of any kind really, is logfiles.  You have to   
   see how it does on inputs, identify where it's making mistakes, and   
   go back and fix it.  Every solution will cause it to make different   
   (usually more subtle) mistakes, until you get to a point where the   
   mistakes are either more subtle than you can see, or more subtle than   
   the mistakes it would make if you implemented the only "solutions"   
   your design allows.   
      
   Then you decide whether it's "good enough" for whatever your actual   
   purpose is.  If it is, you call its behavior correct and shrink-wrap   
   it.  After that, if you're satisfied with your design, you start on   
   another with a different set of subject matter, or if you're not, it   
   means you've learned something about the limitations of your design,   
   so you start on a new one with a better design.   
      
   I don't mean to make it sound hopeless; it's just the natural cycle   
   of AI projects in general.  But it has to be understood that the   
   process is driven by mistakes, and it has to be understood that if   
   the domain of knowledge is at all hard (natural language and legal   
   reasoning both easily pass this test) there will never be a day when   
   the system makes no mistakes.  If you are very good, there may come   
   a day when it makes no more mistakes than you.   
      
   No one has ever been that good yet with natural language.   
      
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca