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

77
LINES

< > BotCompany Repo | #1023783 // "My Day" v5 [abandoned], trying all words as power words. OK it doesn't work like that

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

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

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  
  transient LS regexps;
45  
46  
  start-thread {
47  
    test = ai_parseReadingComprehensionTest_v1(text);
48  
    regexps = map wordRegexp(wordSet(text));
49  
    pnl(map_curry renderLineWithMatchingRegexpsIC(regexps, test.sentences)); // to see if the regexps work
50  
    
51  
    for (ReadingComprehensionTest.Question q : test.questions) {
52  
      print_nlBefore(q.question);
53  
      LS matchedInQ = matchingRegexpsIC(regexps, q.question);
54  
      if (empty(matchedInQ)) matchedInQ = ll(""); // match all
55  
      bool firstType = containsWord(q.question, "first");
56  
      
57  
      new Best<S> best;
58  
      for (S answer : q.answers) {
59  
        LS regexps2 = ll(quoteRegexp(dropPunctuation(answer))); // treat the whole answer as a regexp
60  
        LS regexps2b = matchingRegexpsIC(regexps, answer); // find the regexps that match the answer
61  
        double score = 0;
62  
        if (firstType) { // mode 1: find what appears first in text
63  
          int idx = indexOfEntryContainingAllRegexpsIC(regexps2, test.sentences);
64  
          if (idx < 0)
65  
            idx = indexOfEntryContainingAllRegexpsIC(regexps2b, test.sentences); // try the second set of regexps
66  
          if (idx >= 0) score = -idx; else continue;
67  
        } else { // mode 2: find sentence in text that matches question + answer best
68  
          score = ai_regexpMixScoreIC(regexps2, matchedInQ, test.sentences, quote(answer));
69  
          if (score == 0)
70  
            score = ai_regexpMixScoreIC(regexps2b, matchedInQ, test.sentences, quote(answer)); // try second set of regexps here too
71  
        }
72  
        best.put(answer, score);
73  
      }
74  
      print(">> " + or(best!, "?")); // print answer
75  
    }
76  
  }
77  
}

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: #1023783
Snippet name: "My Day" v5 [abandoned], trying all words as power words. OK it doesn't work like that
Eternal ID of this version: #1023783/6
Text MD5: 0b2caf10c080bda84d2297568142cec6
Transpilation MD5: df796e486eb01dc35edc101ad165b529
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 01:31:39
Source code size: 2849 bytes / 77 lines
Pitched / IR pitched: No / No
Views / Downloads: 265 / 399
Version history: 5 change(s)
Referenced in: [show references]