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

101
LINES

< > BotCompany Repo | #1023755 // "My name is John" [second reading comprehension test, dev.]

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

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

!7

// Text + questions from https://lingua.com/english/reading/john/

cmodule John > DynPrintLog {
  transient ReadingComprehensionTest test;
  switchable S text = [[
    
    Hi! Nice to meet you! My name is John Smith. I am 19 and a student in college. I go to college in New York. My favorite courses are Geometry, French, and History. English is my hardest course. My professors are very friendly and smart. It’s my second year in college now. I love it!
    
    I live in a big house on Ivy Street. It’s near the college campus. I share the house with three other students. Their names are Bill, Tony, and Paul. We help each other with homework. On the weekend, we play football together.
    
    I have a younger brother. He just started high school. He is 14 and lives with my parents. They live on Mulberry Street in Boston. Sometimes they visit me in New York. I am happy when they visit. My Mom always brings me sweets and candy when they come. I really miss them, too!    
    
    Question 1:
    Where does John Smith go to college?
    1 Berlin    2 Boston
    3 New York  4 Paris
    
    Question 2:
    What is John Smith’s hardest course?
    1 Art   2 English
    3 Math  4 French
    
    Question 3:
    Who shares a house with John Smith?
    1 Anna, Margaret, and Tanya 2 Bill, John, and Tom
    3 Frank, Tony, and Mike     4 Bill, Tony, and Paul
    
    Question 4:
    How old is John Smith’s younger brother?
    1 fourteen  2 eleven
    3 seven     4 thirteen
    
    Question 5:
    What does John Smith’s Mom bring him when they visit?
    1 Candy and ice cream 2 Fruits and vegetables
    3 Sweets and candy    4 Flowers and coffee

  ]];
  
  sS rules = [[
    *person is 19 and a student in college
      => person is 19
      +  person is {a student in college}
    
    a student in college => a student
    
    a student in college => in college
    
    *person goes to college in *{New York}
       => person goes to {college x}
       +  {college x} is in {New York}
       
    *person is 14 and living with *y
      => *person is 14
      +  *person is living with *y
      
    *person is 19 => person is {19 years old}
       
    how old is *person? + person is {5 years old} => person is 5 years old
  ]];
  
  start-thread {
    test = ai_parseReadingComprehensionTest_v1(text);
    pnl(test.sentences);
    
    // find out speaker's name
    S name = assertNempty(print("Name", firstMatchesX_rest("My name is ...", test.sentences)));

    LS sentences = map_curry switcheroo_iToName(curly(name), test.sentences);
    print("languages: " + ai_languages());
    print("test: " + switcheroo_iToName(name, "i am dumb"));
    pnl(sentences);
    
    L<WordTokReplacer> parsedRules = ai_parseStarVarsRules_v2(rules);
    pnlStruct_nlBefore(parsedRules);
    
    //pnl_nlBefore(applyWordTokRules(parsedRules, sentences, seen := sentences));
    
    sentences = map ai_groupGeneralPhrases(sentences);
    
    print();
    for (S s : sentences)
      for (S x : applyWordTokRules(parsedRules, s))
        print(s + " => " + x);
        
    for (ReadingComprehensionTest.Question q : test.questions) {
      S question = q.question;
      
      Pair<Collection<Attractor>, Set<S>> p = applyAttractors_getRuleAndStringEmits(parsedRules, ai_groupGeneralPhrases(question));
      for unnull (Attractor a : p.a) {
        print("New attractor: " + question + " => " + a);
        for (S out : applyAttractors(ll(a), sentences))
          print("  => " + out);
      }
      for unnull (S s : p.b)
        print(question + " => " + s);
    }
  }
}

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: #1023755
Snippet name: "My name is John" [second reading comprehension test, dev.]
Eternal ID of this version: #1023755/30
Text MD5: 5fde1f0ced7197c7f934ab2787d2712f
Transpilation MD5: e1dcec64e64ecd9f781457e28f246912
Author: stefan
Category: javax / a.i.
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-07-09 00:05:11
Source code size: 3701 bytes / 101 lines
Pitched / IR pitched: No / No
Views / Downloads: 481 / 1298
Version history: 29 change(s)
Referenced in: [show references]