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

71
LINES

< > BotCompany Repo | #1026487 // Finding Nouns [dev.]

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

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

1  
!7
2  
3  
// English:
4  
//   x is contained in a mech list whose name contains "noun" => x is a noun
5  
6  
concept Result {
7  
  int count;
8  
  S output;
9  
  MapSO vars;
10  
  S result; // yes or no
11  
}
12  
13  
cmodule FindingNouns > DynCRUD<Result> {
14  
  S freeText;
15  
  
16  
  transient new LPair<S, MapSO> suggestionsAndVars;
17  
  transient JButton btnYes, btnNo;
18  
  transient Pair<S, MapSO> current; // proposal and variables used
19  
  
20  
  start-thread {
21  
    db();
22  
    LS emits = getEmits_tee(r { javaxSimple(); });
23  
    MapSO lastVars = null;
24  
    for (S s : emits) {
25  
      MapSO vars = parseLineFromEmitVariables(s);
26  
      if (vars != null) lastVars = vars;
27  
      else
28  
        suggestionsAndVars.add(pair(s, lastVars));
29  
    }
30  
    
31  
    runByUser();
32  
  }
33  
  
34  
  visual jtabs("Dialog" := centerAndSouthWithMargins(dm_printLogView(),
35  
    westAndCenterWithMargin(
36  
      jline(
37  
        btnYes = jbutton("Yes", rThread yes),
38  
        btnNo = jbutton("No", rThread no),
39  
        jlabel("or free text:")),
40  
      onEnter(dm_textField freeText(), rThread { storeResult(freeText) }))), "Results" := super);
41  
42  
  void runByUser {
43  
    current = random(suggestionsAndVars);
44  
    if (current == null) ret;
45  
    printWithPrecedingNL(current.a);
46  
    print("Correct?");
47  
    enableButtons(btnYes, btnNo);
48  
  }
49  
  
50  
  void yes { storeResult("yes"); }
51  
  void no { storeResult("no"); }
52  
  
53  
  void storeResult(S result) enter {
54  
    if (current == null) ret;
55  
    print("Storing result: " + result);
56  
    Result r = uniq(Result, output := current.a, vars := current.b, +result);
57  
    cset(r, count := r.count+1);
58  
    disableButtons(btnYes, btnNo);
59  
    //sleepSeconds(1);
60  
    runByUser();
61  
  }
62  
  
63  
  void javaxSimple() {
64  
    for (S listName : mechListNames())
65  
      if (cic(listName, "noun"))
66  
        for (S s : mL(listName)) {
67  
          emitVariables(+listName, +s);
68  
          emit(quote(s) + " is a noun");
69  
        }
70  
  }
71  
}

download  show line numbers  debug dex  old transpilations   

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

No comments. add comment

Snippet ID: #1026487
Snippet name: Finding Nouns [dev.]
Eternal ID of this version: #1026487/16
Text MD5: c0eb60e61a2f3d80a485b496c4f24165
Transpilation MD5: 4f8be89c80a66352d2a6de0dd28a99d4
Author: stefan
Category: javax / speech recognition
Type: JavaX source code (Dynamic Module)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2020-01-06 19:58:34
Source code size: 1905 bytes / 71 lines
Pitched / IR pitched: No / No
Views / Downloads: 160 / 418
Version history: 15 change(s)
Referenced in: [show references]