Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

73
LINES

< > BotCompany Repo | #1023788 // "My Day" [v6, shortened using multiCall, OK]

JavaX source code (Dynamic Module) [tags: use-pretranspiled] - run with: Stefan's OS

Uses 911K of libraries. Click here for Pure Java version (5461L/28K).

1  
!7
2  
3  
// Text + questions from https://lingua.com/english/reading/my-day/
4  
5  
cmodule MyDay > DynPrintLog {
6  
  transient ReadingComprehensionTest test;
7  
  switchable S text = [[
8  
    
9  
    Text
10  
    ----
11  
    
12  
    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.
13  
    
14  
    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.
15  
    
16  
    
17  
    Question 1:
18  
    What happens first?
19  
    1 Get dressed 2 Wake up
20  
    3 Eat lunch 4 Walk to school
21  
    
22  
    Question 2:
23  
    What do I like?
24  
    1 Books 2 Rain
25  
    3 Walking home  4 Going to bed
26  
    
27  
    Question 3:
28  
    How do I go to school?
29  
    1 I ride a bike.  2 I walk.
30  
    3 I ride the bus. 4 I drive a car.
31  
    
32  
    Question 4:
33  
    What do I eat for dinner?
34  
    1 Sandwich  2 Pie
35  
    3 Soup  4 Apple
36  
    
37  
    Question 5:
38  
    What do I not like?
39  
    1 Going to school 2 Going to bed
40  
    3 Playing 4 Soup
41  
    
42  
  ]];
43  
  
44  
  // We help the AI by declaring some "power words" in form of regular expressions
45  
  
46  
  transient LS regexps = ll("(?<!not )like", "not like", "dinner", "school", "bed");
47  
48  
  start-thread {
49  
    test = ai_parseReadingComprehensionTest_v1(text);
50  
    pnl(map_curry renderLineWithMatchingRegexpsIC(regexps, test.sentences)); // to see if the regexps work
51  
    
52  
    for (ReadingComprehensionTest.Question q : test.questions) {
53  
      print_nlBefore(q.question);
54  
      LS matchedInQ = matchingRegexpsIC(regexps, q.question);
55  
      if (empty(matchedInQ)) matchedInQ = ll(""); // match all
56  
      bool firstType = containsWord(q.question, "first");
57  
      
58  
      new Best<S> best;
59  
      for (S answer : q.answers) {
60  
        LS regexps2 = ll(quoteRegexp(dropPunctuation(answer))); // treat the whole answer as a regexp
61  
        LS regexps2b = matchingRegexpsIC(regexps, answer); // find the regexps that match the answer
62  
        double score = 0;
63  
        if (firstType) { // mode 1: find what appears first in text
64  
          Int idx = firstNonNegativeInt(multiCall indexOfEntryContainingAllRegexpsIC(multi(regexps2, regexps2b), test.sentences));
65  
          if (idx != null) score = -idx; else continue;
66  
        } else // mode 2: find sentence in text that matches question + answer best
67  
          score = or0(firstNonZeroDouble(multiCall ai_regexpMixScoreIC(multi(regexps2, regexps2b), matchedInQ, test.sentences, quote(answer))));
68  
        best.put(answer, score);
69  
      }
70  
      print(">> " + or(best!, "?")); // print answer
71  
    }
72  
  }
73  
}

Author comment

Began life as a copy of #1023742

download  show line numbers  debug dex  old transpilations   

Travelled to 6 computer(s): bhatertpkbcr, mqqgnosmbjvj, pyentgdyhuwx, pzhvpgtvlbxg, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1023788
Snippet name: "My Day" [v6, shortened using multiCall, OK]
Eternal ID of this version: #1023788/7
Text MD5: 7c2ede59067fce24b0c3a195c7c2cd0d
Transpilation MD5: 1745e97367237d3f8b3b7384afd257c3
Author: stefan
Category: javax
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-07-09 02:00:07
Source code size: 2744 bytes / 73 lines
Pitched / IR pitched: No / No
Views / Downloads: 252 / 377
Version history: 6 change(s)
Referenced in: [show references]