> Then, some unremarkably short code: Or is it... *remarkably* short?
On Tue, 9 Jul 2019 at 00:50, Stefan Reich < [email protected]> wrote: > How about this. > > First, I wake up. Then, I get dressed. I walk to school. I do not ride a > bike. I do not ride the bus. I like to go to school. It rains. I do not like > rain. I eat lunch. I eat a sandwich and an apple. > > I play outside. I like to play. I read a book. I like to read books. I > walk home. I do not like walking home. My mother cooks soup for dinner. The > soup is hot. Then, I go to bed. I do not like to go bed. > > > Question 1: > What happens first? > 1 Get dressed 2 Wake up > 3 Eat lunch 4 Walk to school > > Question 2: > What do I like? > 1 Books 2 Rain > 3 Walking home 4 Going to bed > > Question 3: > How do I go to school? > 1 I ride a bike. 2 I walk. > 3 I ride the bus. 4 I drive a car. > > Question 4: > What do I eat for dinner? > 1 Sandwich 2 Pie > 3 Soup 4 Apple > > Question 5: > What do I not like? > 1 Going to school 2 Going to bed > 3 Playing 4 Soup > > Tired of seeing actual AI not realized, I am taking matters into my own > hands. > > I'm going thruogh a series of reading comprehension tests and implementing > them. > > Today, for lesson one (see the problem posed above), we use regexps. > > > // We help the AI by declaring some "power words" in form of regular > expressions > > transient LS regexps = ll > <http://tinybrain.de:8080/tb/show-snippet.php?id=1003382>("(?<!not )like", > "not like", "dinner", "school", "bed"); > > > Then, some unremarkably short code: > > test = ai_parseReadingComprehensionTest_v1 > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023739>(text); > pnl <http://tinybrain.de:8080/tb/show-snippet.php?id=1008448>(map_curry > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023745> > renderLineWithMatchingRegexpsIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023743>(regexps, > test.sentences)); // to see if the regexps work > > for (ReadingComprehensionTest > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023738>.Question q : > test.questions) { > print_nlBefore > <http://tinybrain.de:8080/tb/show-snippet.php?id=1014665>(q.question); > LS matchedInQ = matchingRegexpsIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023746>(regexps, > q.question); > if (empty > <http://tinybrain.de:8080/tb/show-snippet.php?id=1002108>(matchedInQ)) > matchedInQ = ll > <http://tinybrain.de:8080/tb/show-snippet.php?id=1003382>(""); // match all > bool firstType = containsWord > <http://tinybrain.de:8080/tb/show-snippet.php?id=1011436>(q.question, > "first"); > > new Best <http://tinybrain.de:8080/tb/show-snippet.php?id=1006090><S> > best; > for (S answer : q.answers) { > LS regexps2 = ll > <http://tinybrain.de:8080/tb/show-snippet.php?id=1003382>(quoteRegexp > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023748>(dropPunctuation > <http://tinybrain.de:8080/tb/show-snippet.php?id=1000814>(answer))); // treat > the whole answer as a regexp > LS regexps2b = matchingRegexpsIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023746>(regexps, answer); > // find the regexps that match the answer > double score = 0; > if (firstType) { // mode 1: find what appears first in text > int idx = indexOfEntryContainingAllRegexpsIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023751>(regexps2, > test.sentences); > if (idx < 0) > idx = indexOfEntryContainingAllRegexpsIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023751>(regexps2b, > test.sentences); // try the second set of regexps > if (idx >= 0) score = -idx; else continue; > } else { // mode 2: find sentence in text that matches question + > answer best > score = ai_regexpMixScoreIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023749>(regexps2, > matchedInQ, test.sentences, quote > <http://tinybrain.de:8080/tb/show-snippet.php?id=1005595>(answer)); > if (score == 0) > score = ai_regexpMixScoreIC > <http://tinybrain.de:8080/tb/show-snippet.php?id=1023749>(regexps2b, > matchedInQ, test.sentences, quote > <http://tinybrain.de:8080/tb/show-snippet.php?id=1005595>(answer)); // try > second set of regexps here too > } > best.put(answer, score); > } > print <http://tinybrain.de:8080/tb/show-snippet.php?id=1000658>(">> " + > or <http://tinybrain.de:8080/tb/show-snippet.php?id=1001741>(best!, "?")); // > print answer > } > > And boom! > > > > > > > > > > > > > > > > > > > *What happens first?>> Wake upWhat do I like?[1.0] "Books" because: "I > like to read books">> BooksHow do I go to school?[1.0] "I walk." because: > "I walk to school">> I walk.What do I eat for dinner?[1.0] "Soup" because: > "My mother cooks soup for dinner">> SoupWhat do I not like?[1.0] "Going to > bed" because: "I do not like to go bed">> Going to bed* > > See you tomorrow. > > -- > Stefan Reich > BotCompany.de // Java-based operating systems > -- Stefan Reich BotCompany.de // Java-based operating systems ------------------------------------------ Artificial General Intelligence List: AGI Permalink: https://agi.topicbox.com/groups/agi/Tfa2f5184f472f66a-M6c192e20000c6ff2d12e2e68 Delivery options: https://agi.topicbox.com/groups/agi/subscription
