nlptoolkit-universaldependencyparser 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/dist/Parser/TransitionBasedParser/Agenda.js +64 -0
  2. package/dist/Parser/TransitionBasedParser/Agenda.js.map +1 -0
  3. package/dist/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.js +71 -0
  4. package/dist/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.js.map +1 -0
  5. package/dist/{ArcEagerOracle.d.ts → Parser/TransitionBasedParser/ArcEagerOracle.d.ts} +1 -0
  6. package/dist/Parser/TransitionBasedParser/ArcEagerOracle.js +30 -0
  7. package/dist/Parser/TransitionBasedParser/ArcEagerOracle.js.map +1 -0
  8. package/dist/Parser/TransitionBasedParser/ArcEagerTransitionParser.js +104 -0
  9. package/dist/Parser/TransitionBasedParser/ArcEagerTransitionParser.js.map +1 -0
  10. package/dist/{ArcStandardOracle.d.ts → Parser/TransitionBasedParser/ArcStandardOracle.d.ts} +1 -0
  11. package/dist/Parser/TransitionBasedParser/ArcStandardOracle.js +27 -0
  12. package/dist/Parser/TransitionBasedParser/ArcStandardOracle.js.map +1 -0
  13. package/dist/Parser/TransitionBasedParser/ArcStandardTransitionParser.js +120 -0
  14. package/dist/Parser/TransitionBasedParser/ArcStandardTransitionParser.js.map +1 -0
  15. package/dist/{Candidate.d.ts → Parser/TransitionBasedParser/Candidate.d.ts} +1 -0
  16. package/dist/Parser/TransitionBasedParser/Candidate.js +19 -0
  17. package/dist/Parser/TransitionBasedParser/Candidate.js.map +1 -0
  18. package/dist/{Command.d.ts → Parser/TransitionBasedParser/Command.d.ts} +1 -1
  19. package/dist/{Command.js → Parser/TransitionBasedParser/Command.js} +4 -1
  20. package/dist/Parser/TransitionBasedParser/Command.js.map +1 -0
  21. package/dist/{Decision.d.ts → Parser/TransitionBasedParser/Decision.d.ts} +1 -0
  22. package/dist/Parser/TransitionBasedParser/Decision.js +16 -0
  23. package/dist/Parser/TransitionBasedParser/Decision.js.map +1 -0
  24. package/dist/Parser/TransitionBasedParser/InstanceGenerator.js +67 -0
  25. package/dist/Parser/TransitionBasedParser/InstanceGenerator.js.map +1 -0
  26. package/dist/{Oracle.d.ts → Parser/TransitionBasedParser/Oracle.d.ts} +1 -0
  27. package/dist/Parser/TransitionBasedParser/Oracle.js +108 -0
  28. package/dist/Parser/TransitionBasedParser/Oracle.js.map +1 -0
  29. package/dist/{RandomOracle.d.ts → Parser/TransitionBasedParser/RandomOracle.d.ts} +1 -0
  30. package/dist/Parser/TransitionBasedParser/RandomOracle.js +36 -0
  31. package/dist/Parser/TransitionBasedParser/RandomOracle.js.map +1 -0
  32. package/dist/Parser/TransitionBasedParser/RandomScoringOracle.js +11 -0
  33. package/dist/Parser/TransitionBasedParser/RandomScoringOracle.js.map +1 -0
  34. package/dist/Parser/TransitionBasedParser/ScoringOracle.js +7 -0
  35. package/dist/Parser/TransitionBasedParser/ScoringOracle.js.map +1 -0
  36. package/dist/Parser/TransitionBasedParser/SimpleInstanceGenerator.js +57 -0
  37. package/dist/Parser/TransitionBasedParser/SimpleInstanceGenerator.js.map +1 -0
  38. package/dist/Parser/TransitionBasedParser/StackRelation.js +22 -0
  39. package/dist/Parser/TransitionBasedParser/StackRelation.js.map +1 -0
  40. package/dist/Parser/TransitionBasedParser/StackWord.js +34 -0
  41. package/dist/Parser/TransitionBasedParser/StackWord.js.map +1 -0
  42. package/dist/{State.d.ts → Parser/TransitionBasedParser/State.d.ts} +2 -0
  43. package/dist/Parser/TransitionBasedParser/State.js +156 -0
  44. package/dist/Parser/TransitionBasedParser/State.js.map +1 -0
  45. package/dist/{TransitionParser.d.ts → Parser/TransitionBasedParser/TransitionParser.d.ts} +1 -0
  46. package/dist/Parser/TransitionBasedParser/TransitionParser.js +156 -0
  47. package/dist/Parser/TransitionBasedParser/TransitionParser.js.map +1 -0
  48. package/dist/{TransitionSystem.d.ts → Parser/TransitionBasedParser/TransitionSystem.d.ts} +1 -1
  49. package/dist/Parser/TransitionBasedParser/TransitionSystem.js +9 -0
  50. package/dist/Parser/TransitionBasedParser/TransitionSystem.js.map +1 -0
  51. package/dist/index.d.ts +20 -0
  52. package/dist/index.js +37 -0
  53. package/dist/index.js.map +1 -0
  54. package/package.json +8 -7
  55. package/source/Parser/TransitionBasedParser/ArcEagerOracle.ts +2 -0
  56. package/source/Parser/TransitionBasedParser/ArcEagerTransitionParser.ts +1 -0
  57. package/source/Parser/TransitionBasedParser/ArcStandardOracle.ts +2 -0
  58. package/source/Parser/TransitionBasedParser/ArcStandardTransitionParser.ts +1 -0
  59. package/source/Parser/TransitionBasedParser/Candidate.ts +1 -0
  60. package/source/Parser/TransitionBasedParser/Command.ts +1 -1
  61. package/source/Parser/TransitionBasedParser/Decision.ts +1 -0
  62. package/source/Parser/TransitionBasedParser/Oracle.ts +2 -0
  63. package/source/Parser/TransitionBasedParser/RandomOracle.ts +2 -0
  64. package/source/Parser/TransitionBasedParser/State.ts +2 -0
  65. package/source/Parser/TransitionBasedParser/TransitionParser.ts +2 -0
  66. package/source/Parser/TransitionBasedParser/TransitionSystem.ts +1 -1
  67. package/source/index.ts +20 -0
  68. package/tsconfig.json +4 -4
  69. package/dist/Agenda.js +0 -72
  70. package/dist/Agenda.js.map +0 -1
  71. package/dist/ArcEagerInstanceGenerator.js +0 -81
  72. package/dist/ArcEagerInstanceGenerator.js.map +0 -1
  73. package/dist/ArcEagerOracle.js +0 -39
  74. package/dist/ArcEagerOracle.js.map +0 -1
  75. package/dist/ArcEagerTransitionParser.js +0 -113
  76. package/dist/ArcEagerTransitionParser.js.map +0 -1
  77. package/dist/ArcStandardOracle.js +0 -36
  78. package/dist/ArcStandardOracle.js.map +0 -1
  79. package/dist/ArcStandardTransitionParser.js +0 -129
  80. package/dist/ArcStandardTransitionParser.js.map +0 -1
  81. package/dist/Candidate.js +0 -27
  82. package/dist/Candidate.js.map +0 -1
  83. package/dist/Command.js.map +0 -1
  84. package/dist/Decision.js +0 -25
  85. package/dist/Decision.js.map +0 -1
  86. package/dist/InstanceGenerator.js +0 -77
  87. package/dist/InstanceGenerator.js.map +0 -1
  88. package/dist/Oracle.js +0 -115
  89. package/dist/Oracle.js.map +0 -1
  90. package/dist/RandomOracle.js +0 -45
  91. package/dist/RandomOracle.js.map +0 -1
  92. package/dist/RandomScoringOracle.js +0 -21
  93. package/dist/RandomScoringOracle.js.map +0 -1
  94. package/dist/ScoringOracle.js +0 -17
  95. package/dist/ScoringOracle.js.map +0 -1
  96. package/dist/SimpleInstanceGenerator.js +0 -67
  97. package/dist/SimpleInstanceGenerator.js.map +0 -1
  98. package/dist/StackRelation.js +0 -30
  99. package/dist/StackRelation.js.map +0 -1
  100. package/dist/StackWord.js +0 -42
  101. package/dist/StackWord.js.map +0 -1
  102. package/dist/State.js +0 -161
  103. package/dist/State.js.map +0 -1
  104. package/dist/TransitionParser.js +0 -164
  105. package/dist/TransitionParser.js.map +0 -1
  106. package/dist/TransitionSystem.js +0 -6
  107. package/dist/TransitionSystem.js.map +0 -1
  108. package/index.js +0 -20
  109. package/source/tsconfig.json +0 -13
  110. /package/dist/{Agenda.d.ts → Parser/TransitionBasedParser/Agenda.d.ts} +0 -0
  111. /package/dist/{ArcEagerInstanceGenerator.d.ts → Parser/TransitionBasedParser/ArcEagerInstanceGenerator.d.ts} +0 -0
  112. /package/dist/{ArcEagerTransitionParser.d.ts → Parser/TransitionBasedParser/ArcEagerTransitionParser.d.ts} +0 -0
  113. /package/dist/{ArcStandardTransitionParser.d.ts → Parser/TransitionBasedParser/ArcStandardTransitionParser.d.ts} +0 -0
  114. /package/dist/{InstanceGenerator.d.ts → Parser/TransitionBasedParser/InstanceGenerator.d.ts} +0 -0
  115. /package/dist/{RandomScoringOracle.d.ts → Parser/TransitionBasedParser/RandomScoringOracle.d.ts} +0 -0
  116. /package/dist/{ScoringOracle.d.ts → Parser/TransitionBasedParser/ScoringOracle.d.ts} +0 -0
  117. /package/dist/{SimpleInstanceGenerator.d.ts → Parser/TransitionBasedParser/SimpleInstanceGenerator.d.ts} +0 -0
  118. /package/dist/{StackRelation.d.ts → Parser/TransitionBasedParser/StackRelation.d.ts} +0 -0
  119. /package/dist/{StackWord.d.ts → Parser/TransitionBasedParser/StackWord.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstanceGenerator.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/InstanceGenerator.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Model } from "nlptoolkit-classification/dist/Model/Model";
2
2
  import { Decision } from "./Decision";
3
3
  import { State } from "./State";
4
4
  import { Candidate } from "./Candidate";
5
+ import { TransitionSystem } from "./TransitionSystem";
5
6
  export declare abstract class Oracle {
6
7
  protected commandModel: Model;
7
8
  protected windowSize: number;
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Oracle = void 0;
4
+ const Candidate_1 = require("./Candidate");
5
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
6
+ const UniversalDependencyType_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType");
7
+ const Command_1 = require("./Command");
8
+ class Oracle {
9
+ commandModel;
10
+ windowSize;
11
+ /**
12
+ * Constructs an Oracle with the given model and window size.
13
+ * @param model the model used for making predictions
14
+ * @param windowSize the size of the window used in parsing
15
+ */
16
+ constructor(model, windowSize) {
17
+ this.commandModel = model;
18
+ this.windowSize = windowSize;
19
+ }
20
+ /**
21
+ * Finds the best valid parsing action for the ARC_EAGER transition system based on probabilities.
22
+ * Ensures the action is applicable given the current state.
23
+ * @param probabilities a map of actions to their associated probabilities
24
+ * @param state the current parsing state
25
+ * @return the best action as a string, or an empty string if no valid action is found
26
+ */
27
+ findBestValidEagerClassInfo(probabilities, state) {
28
+ let bestValue = 0.0;
29
+ let best = "";
30
+ for (let key in probabilities) {
31
+ if (probabilities.get(key) > bestValue) {
32
+ if (key == "SHIFT" || key == "RIGHTARC") {
33
+ if (state.wordListSize() > 0) {
34
+ best = key;
35
+ bestValue = probabilities.get(key);
36
+ }
37
+ }
38
+ else {
39
+ if (state.stackSize() > 1) {
40
+ if (!(key == "REDUCE" && state.getPeek().getRelation() == null)) {
41
+ best = key;
42
+ bestValue = probabilities.get(key);
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ return best;
49
+ }
50
+ /**
51
+ * Finds the best valid parsing action for the ARC_STANDARD transition system based on probabilities.
52
+ * Ensures the action is applicable given the current state.
53
+ * @param probabilities a map of actions to their associated probabilities
54
+ * @param state the current parsing state
55
+ * @return the best action as a string, or an empty string if no valid action is found
56
+ */
57
+ findBestValidStandardClassInfo(probabilities, state) {
58
+ let bestValue = 0.0;
59
+ let best = "";
60
+ for (let key in probabilities) {
61
+ if (probabilities.get(key) > bestValue) {
62
+ if (key == "SHIFT") {
63
+ if (state.wordListSize() > 0) {
64
+ best = key;
65
+ bestValue = probabilities.get(key);
66
+ }
67
+ }
68
+ else {
69
+ if (state.stackSize() > 1) {
70
+ best = key;
71
+ bestValue = probabilities.get(key);
72
+ }
73
+ }
74
+ }
75
+ }
76
+ return best;
77
+ }
78
+ /**
79
+ * Converts a string representation of the best action into a {@link Candidate} object.
80
+ * @param best the best action represented as a string, possibly with a dependency type in parentheses
81
+ * @return a {@link Candidate} object representing the action, or null if the action is unknown
82
+ */
83
+ getDecisionCandidate(best) {
84
+ let command, type;
85
+ if (best.includes("(")) {
86
+ command = best.substring(0, best.indexOf('('));
87
+ let relation = best.substring(best.indexOf('(') + 1, best.indexOf(')'));
88
+ type = UniversalDependencyRelation_1.UniversalDependencyRelation.getDependencyTag(relation);
89
+ }
90
+ else {
91
+ command = best;
92
+ type = UniversalDependencyType_1.UniversalDependencyType.DEP;
93
+ }
94
+ switch (command) {
95
+ case "SHIFT":
96
+ return new Candidate_1.Candidate(Command_1.Command.SHIFT, type);
97
+ case "REDUCE":
98
+ return new Candidate_1.Candidate(Command_1.Command.REDUCE, type);
99
+ case "LEFTARC":
100
+ return new Candidate_1.Candidate(Command_1.Command.LEFTARC, type);
101
+ case "RIGHTARC":
102
+ return new Candidate_1.Candidate(Command_1.Command.RIGHTARC, type);
103
+ }
104
+ return null;
105
+ }
106
+ }
107
+ exports.Oracle = Oracle;
108
+ //# sourceMappingURL=Oracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Oracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/Oracle.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { Oracle } from "./Oracle";
2
2
  import { State } from "./State";
3
3
  import { Decision } from "./Decision";
4
4
  import { Model } from "nlptoolkit-classification/dist/Model/Model";
5
+ import { TransitionSystem } from "./TransitionSystem";
5
6
  export declare class RandomOracle extends Oracle {
6
7
  constructor(model: Model, windowSize: number);
7
8
  /**
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RandomOracle = void 0;
4
+ const Oracle_1 = require("./Oracle");
5
+ const Decision_1 = require("./Decision");
6
+ const UniversalDependencyType_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType");
7
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
8
+ const Command_1 = require("./Command");
9
+ class RandomOracle extends Oracle_1.Oracle {
10
+ constructor(model, windowSize) {
11
+ super(model, windowSize);
12
+ }
13
+ /**
14
+ * Makes a random decision based on a uniform distribution over possible actions.
15
+ * @param state The current state of the parser.
16
+ * @return A Decision object representing the randomly chosen action.
17
+ */
18
+ makeDecision(state) {
19
+ let command = Math.floor(Math.random() * 3);
20
+ let relation = Math.floor(Math.random() * 58);
21
+ switch (command) {
22
+ case 0:
23
+ return new Decision_1.Decision(Command_1.Command.LEFTARC, UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTags[relation], 0);
24
+ case 1:
25
+ return new Decision_1.Decision(Command_1.Command.RIGHTARC, UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTags[relation], 0);
26
+ case 2:
27
+ return new Decision_1.Decision(Command_1.Command.SHIFT, UniversalDependencyType_1.UniversalDependencyType.DEP, 0);
28
+ }
29
+ return null;
30
+ }
31
+ scoreDecisions(state, transitionSystem) {
32
+ return null;
33
+ }
34
+ }
35
+ exports.RandomOracle = RandomOracle;
36
+ //# sourceMappingURL=RandomOracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RandomOracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/RandomOracle.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,yCAAoC;AAEpC,gHAA2G;AAC3G,wHAAmH;AACnH,uCAAkC;AAGlC,MAAa,YAAa,SAAQ,eAAM;IAEpC,YAAY,KAAY,EAAE,UAAkB;QACxC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5B,CAAC;IAED;;;;OAIG;IACI,YAAY,CAAC,KAAY;QAC5B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;QAC7C,QAAQ,OAAO,EAAC,CAAC;YACb,KAAK,CAAC;gBACF,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,OAAO,EAAE,yDAA2B,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAC1G,KAAK,CAAC;gBACF,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,QAAQ,EAAE,yDAA2B,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3G,KAAK,CAAC;gBACF,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,KAAK,EAAE,iDAAuB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QAC1E,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;IAES,cAAc,CAAC,KAAY,EAAE,gBAAkC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AA7BD,oCA6BC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RandomScoringOracle = void 0;
4
+ const ScoringOracle_1 = require("./ScoringOracle");
5
+ class RandomScoringOracle extends ScoringOracle_1.ScoringOracle {
6
+ score(state) {
7
+ return Math.random();
8
+ }
9
+ }
10
+ exports.RandomScoringOracle = RandomScoringOracle;
11
+ //# sourceMappingURL=RandomScoringOracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RandomScoringOracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/RandomScoringOracle.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAG9C,MAAa,mBAAoB,SAAQ,6BAAa;IAElD,KAAK,CAAC,KAAY;QACd,OAAO,IAAI,CAAC,MAAM,EAAE,CAAA;IACxB,CAAC;CAEJ;AAND,kDAMC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScoringOracle = void 0;
4
+ class ScoringOracle {
5
+ }
6
+ exports.ScoringOracle = ScoringOracle;
7
+ //# sourceMappingURL=ScoringOracle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScoringOracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ScoringOracle.ts"],"names":[],"mappings":";;;AAEA,MAAsB,aAAa;CAElC;AAFD,sCAEC"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SimpleInstanceGenerator = void 0;
4
+ const InstanceGenerator_1 = require("./InstanceGenerator");
5
+ const Instance_1 = require("nlptoolkit-classification/dist/Instance/Instance");
6
+ const DiscreteIndexedAttribute_1 = require("nlptoolkit-classification/dist/Attribute/DiscreteIndexedAttribute");
7
+ const UniversalDependencyTreeBankFeatures_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankFeatures");
8
+ class SimpleInstanceGenerator extends InstanceGenerator_1.InstanceGenerator {
9
+ constructor() {
10
+ super();
11
+ }
12
+ /**
13
+ * Generates an instance based on the state, window size, and command.
14
+ * @param state The current state of the parser, which includes the stack and word list.
15
+ * @param windowSize The size of the window used for feature extraction.
16
+ * @param command The command to be associated with the generated instance.
17
+ * @return The generated {@link Instance} object with attributes based on the state and command.
18
+ */
19
+ generate(state, windowSize, command) {
20
+ let instance = new Instance_1.Instance(command);
21
+ let attributes = new Array();
22
+ for (let i = 0; i < windowSize; i++) {
23
+ let word = state.getStackWord(i);
24
+ if (word == null) {
25
+ attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 18));
26
+ this.addEmptyAttributes(attributes);
27
+ }
28
+ else {
29
+ if (word.getName() == "root") {
30
+ attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
31
+ this.addEmptyAttributes(attributes);
32
+ }
33
+ else {
34
+ attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getUpos().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.posIndex(word.getUpos().toString()) + 1, 18));
35
+ this.addFeatureAttributes(word, attributes);
36
+ }
37
+ }
38
+ }
39
+ for (let i = 0; i < windowSize; i++) {
40
+ let word = state.getWordListWord(i);
41
+ if (word != null) {
42
+ attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getUpos().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.posIndex(word.getUpos().toString()) + 1, 18));
43
+ this.addFeatureAttributes(word, attributes);
44
+ }
45
+ else {
46
+ attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
47
+ this.addEmptyAttributes(attributes);
48
+ }
49
+ }
50
+ for (let attribute of attributes) {
51
+ instance.addAttribute(attribute);
52
+ }
53
+ return instance;
54
+ }
55
+ }
56
+ exports.SimpleInstanceGenerator = SimpleInstanceGenerator;
57
+ //# sourceMappingURL=SimpleInstanceGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleInstanceGenerator.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/SimpleInstanceGenerator.ts"],"names":[],"mappings":";;;AAAA,2DAAsD;AAEtD,+EAA0E;AAC1E,gHAA2G;AAC3G,wIAEwF;AAGxF,MAAa,uBAAwB,SAAQ,qCAAiB;IAE1D;QACI,KAAK,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CAAC,KAAY,EAAE,UAAkB,EAAE,OAAe;QACtD,IAAI,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAA;QACpC,IAAI,UAAU,GAAG,IAAI,KAAK,EAAa,CAAA;QACvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,IAAI,mDAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;YACvC,CAAC;iBAAM,CAAC;gBACJ,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,MAAM,EAAE,CAAC;oBAC3B,UAAU,CAAC,IAAI,CAAC,IAAI,mDAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;oBAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACJ,UAAU,CAAC,IAAI,CAAC,IAAI,mDAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,yEAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;oBACzJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;QACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,IAAI,IAAI,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YACnC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACf,UAAU,CAAC,IAAI,CAAC,IAAI,mDAAwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,yEAAmC,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBACzJ,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACJ,UAAU,CAAC,IAAI,CAAC,IAAI,mDAAwB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;gBAC5D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAA;YACvC,CAAC;QACL,CAAC;QACD,KAAK,IAAI,SAAS,IAAI,UAAU,EAAE,CAAC;YAC/B,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;QACD,OAAO,QAAQ,CAAA;IACnB,CAAC;CAEJ;AA/CD,0DA+CC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackRelation = void 0;
4
+ class StackRelation {
5
+ word;
6
+ relation;
7
+ constructor(word, relation) {
8
+ this.word = word;
9
+ this.relation = relation;
10
+ }
11
+ clone() {
12
+ return new StackRelation(this.word.clone(), this.relation);
13
+ }
14
+ getWord() {
15
+ return this.word;
16
+ }
17
+ getRelation() {
18
+ return this.relation;
19
+ }
20
+ }
21
+ exports.StackRelation = StackRelation;
22
+ //# sourceMappingURL=StackRelation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackRelation.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/StackRelation.ts"],"names":[],"mappings":";;;AAKA,MAAa,aAAa;IAEL,IAAI,CAAiC;IACrC,QAAQ,CAA6B;IAEtD,YAAY,IAAqC,EAAE,QAAqC;QACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED,KAAK;QACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;CACJ;AArBD,sCAqBC"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackWord = void 0;
4
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
5
+ class StackWord {
6
+ word;
7
+ toWord;
8
+ constructor1() {
9
+ this.word = new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord();
10
+ }
11
+ constructor2(word, toWord) {
12
+ this.word = word;
13
+ this.toWord = toWord;
14
+ }
15
+ clone() {
16
+ return new StackWord(this.word.clone(), this.toWord);
17
+ }
18
+ constructor(word, toWord) {
19
+ if (word == undefined) {
20
+ this.constructor1();
21
+ }
22
+ else {
23
+ this.constructor2(word, toWord);
24
+ }
25
+ }
26
+ getWord() {
27
+ return this.word;
28
+ }
29
+ getToWord() {
30
+ return this.toWord;
31
+ }
32
+ }
33
+ exports.StackWord = StackWord;
34
+ //# sourceMappingURL=StackWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackWord.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/StackWord.ts"],"names":[],"mappings":";;;AAAA,gIAEoF;AAEpF,MAAa,SAAS;IAEV,IAAI,CAAiC;IACrC,MAAM,CAAQ;IAEtB,YAAY;QACR,IAAI,CAAC,IAAI,GAAG,IAAI,iEAA+B,EAAE,CAAA;IACrD,CAAC;IAED,YAAY,CAAC,IAAqC,EAAE,MAAc;QAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACxB,CAAC;IAED,KAAK;QACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;IAED,YAAY,IAAsC,EAAE,MAAe;QAC/D,IAAI,IAAI,IAAI,SAAS,EAAC,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAA;QACvB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACnC,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;CACJ;AAjCD,8BAiCC"}
@@ -2,6 +2,8 @@ import { StackWord } from "./StackWord";
2
2
  import { StackRelation } from "./StackRelation";
3
3
  import { UniversalDependencyType } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
4
4
  import { UniversalDependencyTreeBankWord } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord";
5
+ import { Command } from "./Command";
6
+ import { TransitionSystem } from "./TransitionSystem";
5
7
  export declare class State {
6
8
  private stack;
7
9
  private wordList;
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.State = void 0;
4
+ const StackWord_1 = require("./StackWord");
5
+ const StackRelation_1 = require("./StackRelation");
6
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
7
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
8
+ const Command_1 = require("./Command");
9
+ const TransitionSystem_1 = require("./TransitionSystem");
10
+ class State {
11
+ stack;
12
+ wordList;
13
+ relations;
14
+ constructor(stack, wordList, relations) {
15
+ this.stack = stack;
16
+ this.wordList = wordList;
17
+ this.relations = relations;
18
+ }
19
+ applyShift() {
20
+ if (this.wordList.length > 0) {
21
+ this.stack.push(this.wordList.splice(0, 1)[0]);
22
+ }
23
+ }
24
+ applyLeftArc(type) {
25
+ if (this.stack.length > 1) {
26
+ let beforeLast = this.stack[this.stack.length - 2].getWord();
27
+ let index = this.stack[this.stack.length - 1].getToWord();
28
+ beforeLast.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
29
+ this.stack.splice(this.stack.length - 2, 1);
30
+ this.relations.push(new StackRelation_1.StackRelation(beforeLast, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
31
+ }
32
+ }
33
+ applyRightArc(type) {
34
+ if (this.stack.length > 1) {
35
+ let last = this.stack[this.stack.length - 1].getWord();
36
+ let index = this.stack[this.stack.length - 2].getToWord();
37
+ last.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
38
+ this.stack.pop();
39
+ this.relations.push(new StackRelation_1.StackRelation(last, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
40
+ }
41
+ }
42
+ applyArcEagerLeftArc(type) {
43
+ if (this.stack.length > 0 && this.wordList.length > 0) {
44
+ let lastElementOfStack = this.stack[this.stack.length - 1].getWord();
45
+ let index = this.wordList[0].getToWord();
46
+ lastElementOfStack.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
47
+ this.stack.pop();
48
+ this.relations.push(new StackRelation_1.StackRelation(lastElementOfStack, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
49
+ }
50
+ }
51
+ applyArcEagerRightArc(type) {
52
+ if (this.stack.length > 0 && this.wordList.length > 0) {
53
+ let firstElementOfWordList = this.wordList[0].getWord();
54
+ let index = this.stack[this.stack.length - 1].getToWord();
55
+ firstElementOfWordList.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
56
+ this.applyShift();
57
+ this.relations.push(new StackRelation_1.StackRelation(firstElementOfWordList, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
58
+ }
59
+ }
60
+ applyReduce() {
61
+ if (this.stack.length > 0) {
62
+ this.stack.pop();
63
+ }
64
+ }
65
+ apply(command, type, transitionSystem) {
66
+ switch (transitionSystem) {
67
+ case TransitionSystem_1.TransitionSystem.ARC_STANDARD:
68
+ switch (command) {
69
+ case Command_1.Command.LEFTARC:
70
+ this.applyLeftArc(type);
71
+ break;
72
+ case Command_1.Command.RIGHTARC:
73
+ this.applyRightArc(type);
74
+ break;
75
+ case Command_1.Command.SHIFT:
76
+ this.applyShift();
77
+ break;
78
+ }
79
+ break;
80
+ case TransitionSystem_1.TransitionSystem.ARC_EAGER:
81
+ switch (command) {
82
+ case Command_1.Command.LEFTARC:
83
+ this.applyArcEagerLeftArc(type);
84
+ break;
85
+ case Command_1.Command.RIGHTARC:
86
+ this.applyArcEagerRightArc(type);
87
+ break;
88
+ case Command_1.Command.SHIFT:
89
+ this.applyShift();
90
+ break;
91
+ case Command_1.Command.REDUCE:
92
+ this.applyReduce();
93
+ break;
94
+ }
95
+ }
96
+ }
97
+ relationSize() {
98
+ return this.relations.length;
99
+ }
100
+ wordListSize() {
101
+ return this.wordList.length;
102
+ }
103
+ stackSize() {
104
+ return this.stack.length;
105
+ }
106
+ getStackWord(index) {
107
+ let size = this.stack.length - 1;
108
+ if (size - index < 0) {
109
+ return null;
110
+ }
111
+ return this.stack[size - index].getWord();
112
+ }
113
+ getPeek() {
114
+ if (this.stack.length > 0) {
115
+ return this.stack[this.stack.length - 1].getWord();
116
+ }
117
+ return null;
118
+ }
119
+ getWordListWord(index) {
120
+ if (index > this.wordList.length - 1) {
121
+ return null;
122
+ }
123
+ return this.wordList[index].getWord();
124
+ }
125
+ getRelation(index) {
126
+ if (index < this.relations.length) {
127
+ return this.relations[index];
128
+ }
129
+ return null;
130
+ }
131
+ clone() {
132
+ let o = new State(new Array(), new Array(), new Array());
133
+ for (let element of this.stack) {
134
+ if (element.getWord().getName() != "root") {
135
+ o.stack.push(element.clone());
136
+ }
137
+ else {
138
+ o.stack.push(new StackWord_1.StackWord(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(), element.getToWord()));
139
+ }
140
+ }
141
+ for (let word of this.wordList) {
142
+ o.wordList.push(word.clone());
143
+ }
144
+ for (let relation of this.relations) {
145
+ if (relation.getWord().getName() != "root") {
146
+ o.relations.push(relation.clone());
147
+ }
148
+ else {
149
+ o.relations.push(new StackRelation_1.StackRelation(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(), relation.getRelation()));
150
+ }
151
+ }
152
+ return o;
153
+ }
154
+ }
155
+ exports.State = State;
156
+ //# sourceMappingURL=State.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"State.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/State.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { Instance } from "nlptoolkit-classification/dist/Instance/Instance";
5
5
  import { Oracle } from "./Oracle";
6
6
  import { State } from "./State";
7
7
  import { ScoringOracle } from "./ScoringOracle";
8
+ import { TransitionSystem } from "./TransitionSystem";
8
9
  export declare abstract class TransitionParser {
9
10
  /**
10
11
  * Parses a single sentence and returns a list of instances that represent the parsing process.