nlptoolkit-universaldependencyparser 1.0.0

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 (112) hide show
  1. package/dist/Agenda.d.ts +24 -0
  2. package/dist/Agenda.js +72 -0
  3. package/dist/Agenda.js.map +1 -0
  4. package/dist/ArcEagerInstanceGenerator.d.ts +20 -0
  5. package/dist/ArcEagerInstanceGenerator.js +81 -0
  6. package/dist/ArcEagerInstanceGenerator.js.map +1 -0
  7. package/dist/ArcEagerOracle.d.ts +9 -0
  8. package/dist/ArcEagerOracle.js +39 -0
  9. package/dist/ArcEagerOracle.js.map +1 -0
  10. package/dist/ArcEagerTransitionParser.d.ts +9 -0
  11. package/dist/ArcEagerTransitionParser.js +113 -0
  12. package/dist/ArcEagerTransitionParser.js.map +1 -0
  13. package/dist/ArcStandardOracle.d.ts +9 -0
  14. package/dist/ArcStandardOracle.js +36 -0
  15. package/dist/ArcStandardOracle.js.map +1 -0
  16. package/dist/ArcStandardTransitionParser.d.ts +28 -0
  17. package/dist/ArcStandardTransitionParser.js +129 -0
  18. package/dist/ArcStandardTransitionParser.js.map +1 -0
  19. package/dist/Candidate.d.ts +8 -0
  20. package/dist/Candidate.js +27 -0
  21. package/dist/Candidate.js.map +1 -0
  22. package/dist/Command.d.ts +6 -0
  23. package/dist/Command.js +8 -0
  24. package/dist/Command.js.map +1 -0
  25. package/dist/Decision.d.ts +7 -0
  26. package/dist/Decision.js +25 -0
  27. package/dist/Decision.js.map +1 -0
  28. package/dist/InstanceGenerator.d.ts +33 -0
  29. package/dist/InstanceGenerator.js +77 -0
  30. package/dist/InstanceGenerator.js.map +1 -0
  31. package/dist/Oracle.d.ts +49 -0
  32. package/dist/Oracle.js +115 -0
  33. package/dist/Oracle.js.map +1 -0
  34. package/dist/RandomOracle.d.ts +14 -0
  35. package/dist/RandomOracle.js +45 -0
  36. package/dist/RandomOracle.js.map +1 -0
  37. package/dist/RandomScoringOracle.d.ts +5 -0
  38. package/dist/RandomScoringOracle.js +21 -0
  39. package/dist/RandomScoringOracle.js.map +1 -0
  40. package/dist/ScoringOracle.d.ts +4 -0
  41. package/dist/ScoringOracle.js +17 -0
  42. package/dist/ScoringOracle.js.map +1 -0
  43. package/dist/SimpleInstanceGenerator.d.ts +14 -0
  44. package/dist/SimpleInstanceGenerator.js +67 -0
  45. package/dist/SimpleInstanceGenerator.js.map +1 -0
  46. package/dist/StackRelation.d.ts +10 -0
  47. package/dist/StackRelation.js +30 -0
  48. package/dist/StackRelation.js.map +1 -0
  49. package/dist/StackWord.d.ts +11 -0
  50. package/dist/StackWord.js +42 -0
  51. package/dist/StackWord.js.map +1 -0
  52. package/dist/State.d.ts +25 -0
  53. package/dist/State.js +161 -0
  54. package/dist/State.js.map +1 -0
  55. package/dist/TransitionParser.d.ts +73 -0
  56. package/dist/TransitionParser.js +164 -0
  57. package/dist/TransitionParser.js.map +1 -0
  58. package/dist/TransitionSystem.d.ts +4 -0
  59. package/dist/TransitionSystem.js +6 -0
  60. package/dist/TransitionSystem.js.map +1 -0
  61. package/index.js +20 -0
  62. package/models/en_atis_eager_c45_2.txt +1903 -0
  63. package/models/en_atis_eager_c45_3.txt +1918 -0
  64. package/models/en_atis_standard_c45_2.txt +1948 -0
  65. package/models/en_atis_standard_c45_3.txt +2233 -0
  66. package/models/tr_atis_eager_c45_2.txt +2208 -0
  67. package/models/tr_atis_eager_c45_3.txt +2303 -0
  68. package/models/tr_atis_standard_c45_2.txt +2863 -0
  69. package/models/tr_atis_standard_c45_3.txt +3413 -0
  70. package/models/tr_boun_eager_c45_2.txt +1613 -0
  71. package/models/tr_boun_eager_c45_3.txt +1818 -0
  72. package/models/tr_boun_standard_c45_2.txt +898 -0
  73. package/models/tr_boun_standard_c45_3.txt +1138 -0
  74. package/models/tr_framenet_eager_c45_2.txt +453 -0
  75. package/models/tr_framenet_eager_c45_3.txt +668 -0
  76. package/models/tr_framenet_standard_c45_2.txt +363 -0
  77. package/models/tr_framenet_standard_c45_3.txt +238 -0
  78. package/models/tr_kenet_eager_c45_2.txt +1788 -0
  79. package/models/tr_kenet_eager_c45_3.txt +1588 -0
  80. package/models/tr_kenet_standard_c45_2.txt +1308 -0
  81. package/models/tr_kenet_standard_c45_3.txt +1378 -0
  82. package/models/tr_penn_eager_c45_2.txt +2788 -0
  83. package/models/tr_penn_eager_c45_3.txt +1718 -0
  84. package/models/tr_penn_standard_c45_2.txt +2203 -0
  85. package/models/tr_penn_standard_c45_3.txt +1493 -0
  86. package/models/tr_tourism_eager_c45_2.txt +3468 -0
  87. package/models/tr_tourism_eager_c45_3.txt +4213 -0
  88. package/models/tr_tourism_standard_c45_2.txt +3868 -0
  89. package/models/tr_tourism_standard_c45_3.txt +4728 -0
  90. package/package.json +30 -0
  91. package/source/Parser/TransitionBasedParser/Agenda.ts +66 -0
  92. package/source/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.ts +73 -0
  93. package/source/Parser/TransitionBasedParser/ArcEagerOracle.ts +30 -0
  94. package/source/Parser/TransitionBasedParser/ArcEagerTransitionParser.ts +105 -0
  95. package/source/Parser/TransitionBasedParser/ArcStandardOracle.ts +28 -0
  96. package/source/Parser/TransitionBasedParser/ArcStandardTransitionParser.ts +123 -0
  97. package/source/Parser/TransitionBasedParser/Candidate.ts +20 -0
  98. package/source/Parser/TransitionBasedParser/Command.ts +3 -0
  99. package/source/Parser/TransitionBasedParser/Decision.ts +16 -0
  100. package/source/Parser/TransitionBasedParser/InstanceGenerator.ts +85 -0
  101. package/source/Parser/TransitionBasedParser/Oracle.ts +123 -0
  102. package/source/Parser/TransitionBasedParser/RandomOracle.ts +37 -0
  103. package/source/Parser/TransitionBasedParser/RandomScoringOracle.ts +10 -0
  104. package/source/Parser/TransitionBasedParser/ScoringOracle.ts +5 -0
  105. package/source/Parser/TransitionBasedParser/SimpleInstanceGenerator.ts +57 -0
  106. package/source/Parser/TransitionBasedParser/StackRelation.ts +27 -0
  107. package/source/Parser/TransitionBasedParser/StackWord.ts +38 -0
  108. package/source/Parser/TransitionBasedParser/State.ts +168 -0
  109. package/source/Parser/TransitionBasedParser/TransitionParser.ts +187 -0
  110. package/source/Parser/TransitionBasedParser/TransitionSystem.ts +3 -0
  111. package/source/tsconfig.json +13 -0
  112. package/tsconfig.json +15 -0
@@ -0,0 +1,30 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StackRelation = void 0;
13
+ class StackRelation {
14
+ constructor(word, relation) {
15
+ this.word = word;
16
+ this.relation = relation;
17
+ }
18
+ clone() {
19
+ return new StackRelation(this.word.clone(), this.relation);
20
+ }
21
+ getWord() {
22
+ return this.word;
23
+ }
24
+ getRelation() {
25
+ return this.relation;
26
+ }
27
+ }
28
+ exports.StackRelation = StackRelation;
29
+ });
30
+ //# sourceMappingURL=StackRelation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackRelation.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/StackRelation.ts"],"names":[],"mappings":";;;;;;;;;;;;IAKA,MAAa,aAAa;QAKtB,YAAY,IAAqC,EAAE,QAAqC;YACpF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QAED,KAAK;YACD,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC9D,CAAC;QAED,OAAO;YACH,OAAO,IAAI,CAAC,IAAI,CAAA;QACpB,CAAC;QAED,WAAW;YACP,OAAO,IAAI,CAAC,QAAQ,CAAA;QACxB,CAAC;KACJ;IArBD,sCAqBC"}
@@ -0,0 +1,11 @@
1
+ import { UniversalDependencyTreeBankWord } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord";
2
+ export declare class StackWord {
3
+ private word;
4
+ private toWord;
5
+ constructor1(): void;
6
+ constructor2(word: UniversalDependencyTreeBankWord, toWord: number): void;
7
+ clone(): StackWord;
8
+ constructor(word?: UniversalDependencyTreeBankWord, toWord?: number);
9
+ getWord(): UniversalDependencyTreeBankWord;
10
+ getToWord(): number;
11
+ }
@@ -0,0 +1,42 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.StackWord = void 0;
13
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
14
+ class StackWord {
15
+ constructor(word, toWord) {
16
+ if (word == undefined) {
17
+ this.constructor1();
18
+ }
19
+ else {
20
+ this.constructor2(word, toWord);
21
+ }
22
+ }
23
+ constructor1() {
24
+ this.word = new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord();
25
+ }
26
+ constructor2(word, toWord) {
27
+ this.word = word;
28
+ this.toWord = toWord;
29
+ }
30
+ clone() {
31
+ return new StackWord(this.word.clone(), this.toWord);
32
+ }
33
+ getWord() {
34
+ return this.word;
35
+ }
36
+ getToWord() {
37
+ return this.toWord;
38
+ }
39
+ }
40
+ exports.StackWord = StackWord;
41
+ });
42
+ //# sourceMappingURL=StackWord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StackWord.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/StackWord.ts"],"names":[],"mappings":";;;;;;;;;;;;IAAA,gIAEoF;IAEpF,MAAa,SAAS;QAkBlB,YAAY,IAAsC,EAAE,MAAe;YAC/D,IAAI,IAAI,IAAI,SAAS,EAAC;gBAClB,IAAI,CAAC,YAAY,EAAE,CAAA;aACtB;iBAAM;gBACH,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;aAClC;QACL,CAAC;QAnBD,YAAY;YACR,IAAI,CAAC,IAAI,GAAG,IAAI,iEAA+B,EAAE,CAAA;QACrD,CAAC;QAED,YAAY,CAAC,IAAqC,EAAE,MAAc;YAC9D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAChB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACxB,CAAC;QAED,KAAK;YACD,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACxD,CAAC;QAUD,OAAO;YACH,OAAO,IAAI,CAAC,IAAI,CAAA;QACpB,CAAC;QAED,SAAS;YACL,OAAO,IAAI,CAAC,MAAM,CAAA;QACtB,CAAC;KACJ;IAjCD,8BAiCC"}
@@ -0,0 +1,25 @@
1
+ import { StackWord } from "./StackWord";
2
+ import { StackRelation } from "./StackRelation";
3
+ import { UniversalDependencyType } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
4
+ import { UniversalDependencyTreeBankWord } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord";
5
+ export declare class State {
6
+ private stack;
7
+ private wordList;
8
+ private relations;
9
+ constructor(stack: Array<StackWord>, wordList: Array<StackWord>, relations: Array<StackRelation>);
10
+ applyShift(): void;
11
+ applyLeftArc(type: UniversalDependencyType): void;
12
+ applyRightArc(type: UniversalDependencyType): void;
13
+ applyArcEagerLeftArc(type: UniversalDependencyType): void;
14
+ applyArcEagerRightArc(type: UniversalDependencyType): void;
15
+ applyReduce(): void;
16
+ apply(command: Command, type: UniversalDependencyType, transitionSystem: TransitionSystem): void;
17
+ relationSize(): number;
18
+ wordListSize(): number;
19
+ stackSize(): number;
20
+ getStackWord(index: number): UniversalDependencyTreeBankWord;
21
+ getPeek(): UniversalDependencyTreeBankWord;
22
+ getWordListWord(index: number): UniversalDependencyTreeBankWord;
23
+ getRelation(index: number): StackRelation;
24
+ clone(): State;
25
+ }
package/dist/State.js ADDED
@@ -0,0 +1,161 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "./StackWord", "./StackRelation", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.State = void 0;
13
+ const StackWord_1 = require("./StackWord");
14
+ const StackRelation_1 = require("./StackRelation");
15
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
16
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
17
+ class State {
18
+ constructor(stack, wordList, relations) {
19
+ this.stack = stack;
20
+ this.wordList = wordList;
21
+ this.relations = relations;
22
+ }
23
+ applyShift() {
24
+ if (this.wordList.length > 0) {
25
+ this.stack.push(this.wordList.splice(0, 1)[0]);
26
+ }
27
+ }
28
+ applyLeftArc(type) {
29
+ if (this.stack.length > 1) {
30
+ let beforeLast = this.stack[this.stack.length - 2].getWord();
31
+ let index = this.stack[this.stack.length - 1].getToWord();
32
+ beforeLast.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
33
+ this.stack.splice(this.stack.length - 2, 1);
34
+ this.relations.push(new StackRelation_1.StackRelation(beforeLast, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
35
+ }
36
+ }
37
+ applyRightArc(type) {
38
+ if (this.stack.length > 1) {
39
+ let last = this.stack[this.stack.length - 1].getWord();
40
+ let index = this.stack[this.stack.length - 2].getToWord();
41
+ last.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
42
+ this.stack.pop();
43
+ this.relations.push(new StackRelation_1.StackRelation(last, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
44
+ }
45
+ }
46
+ applyArcEagerLeftArc(type) {
47
+ if (this.stack.length > 0 && this.wordList.length > 0) {
48
+ let lastElementOfStack = this.stack[this.stack.length - 1].getWord();
49
+ let index = this.wordList[0].getToWord();
50
+ lastElementOfStack.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
51
+ this.stack.pop();
52
+ this.relations.push(new StackRelation_1.StackRelation(lastElementOfStack, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
53
+ }
54
+ }
55
+ applyArcEagerRightArc(type) {
56
+ if (this.stack.length > 0 && this.wordList.length > 0) {
57
+ let firstElementOfWordList = this.wordList[0].getWord();
58
+ let index = this.stack[this.stack.length - 1].getToWord();
59
+ firstElementOfWordList.setRelation(new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":")));
60
+ this.applyShift();
61
+ this.relations.push(new StackRelation_1.StackRelation(firstElementOfWordList, new UniversalDependencyRelation_1.UniversalDependencyRelation(index, type.toString().replace("_", ":"))));
62
+ }
63
+ }
64
+ applyReduce() {
65
+ if (this.stack.length > 0) {
66
+ this.stack.pop();
67
+ }
68
+ }
69
+ apply(command, type, transitionSystem) {
70
+ switch (transitionSystem) {
71
+ case TransitionSystem.ARC_STANDARD:
72
+ switch (command) {
73
+ case Command.LEFTARC:
74
+ this.applyLeftArc(type);
75
+ break;
76
+ case Command.RIGHTARC:
77
+ this.applyRightArc(type);
78
+ break;
79
+ case Command.SHIFT:
80
+ this.applyShift();
81
+ break;
82
+ }
83
+ break;
84
+ case TransitionSystem.ARC_EAGER:
85
+ switch (command) {
86
+ case Command.LEFTARC:
87
+ this.applyArcEagerLeftArc(type);
88
+ break;
89
+ case Command.RIGHTARC:
90
+ this.applyArcEagerRightArc(type);
91
+ break;
92
+ case Command.SHIFT:
93
+ this.applyShift();
94
+ break;
95
+ case Command.REDUCE:
96
+ this.applyReduce();
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ relationSize() {
102
+ return this.relations.length;
103
+ }
104
+ wordListSize() {
105
+ return this.wordList.length;
106
+ }
107
+ stackSize() {
108
+ return this.stack.length;
109
+ }
110
+ getStackWord(index) {
111
+ let size = this.stack.length - 1;
112
+ if (size - index < 0) {
113
+ return null;
114
+ }
115
+ return this.stack[size - index].getWord();
116
+ }
117
+ getPeek() {
118
+ if (this.stack.length > 0) {
119
+ return this.stack[this.stack.length - 1].getWord();
120
+ }
121
+ return null;
122
+ }
123
+ getWordListWord(index) {
124
+ if (index > this.wordList.length - 1) {
125
+ return null;
126
+ }
127
+ return this.wordList[index].getWord();
128
+ }
129
+ getRelation(index) {
130
+ if (index < this.relations.length) {
131
+ return this.relations[index];
132
+ }
133
+ return null;
134
+ }
135
+ clone() {
136
+ let o = new State(new Array(), new Array(), new Array());
137
+ for (let element of this.stack) {
138
+ if (element.getWord().getName() != "root") {
139
+ o.stack.push(element.clone());
140
+ }
141
+ else {
142
+ o.stack.push(new StackWord_1.StackWord(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(), element.getToWord()));
143
+ }
144
+ }
145
+ for (let word of this.wordList) {
146
+ o.wordList.push(word.clone());
147
+ }
148
+ for (let relation of this.relations) {
149
+ if (relation.getWord().getName() != "root") {
150
+ o.relations.push(relation.clone());
151
+ }
152
+ else {
153
+ o.relations.push(new StackRelation_1.StackRelation(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(), relation.getRelation()));
154
+ }
155
+ }
156
+ return o;
157
+ }
158
+ }
159
+ exports.State = State;
160
+ });
161
+ //# 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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"}
@@ -0,0 +1,73 @@
1
+ import { UniversalDependencyTreeBankSentence } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankSentence";
2
+ import { UniversalDependencyTreeBankCorpus } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankCorpus";
3
+ import { DataSet } from "nlptoolkit-classification/dist/DataSet/DataSet";
4
+ import { Instance } from "nlptoolkit-classification/dist/Instance/Instance";
5
+ import { Oracle } from "./Oracle";
6
+ import { State } from "./State";
7
+ import { ScoringOracle } from "./ScoringOracle";
8
+ export declare abstract class TransitionParser {
9
+ /**
10
+ * Parses a single sentence and returns a list of instances that represent the parsing process.
11
+ * @param sentence the sentence to be parsed
12
+ * @param windowSize the size of the window used in parsing
13
+ * @return a list of {@link Instance} objects representing the parsing process
14
+ */
15
+ abstract simulateParse(sentence: UniversalDependencyTreeBankSentence, windowSize: number): Array<Instance>;
16
+ /**
17
+ * Parses a single sentence using a specified oracle and returns the parsed sentence with dependencies.
18
+ * @param universalDependencyTreeBankSentence the sentence to be parsed
19
+ * @param oracle the oracle used for guiding the parsing process
20
+ * @return a {@link UniversalDependencyTreeBankSentence} with dependencies parsed
21
+ */
22
+ abstract dependencyParse(universalDependencyTreeBankSentence: UniversalDependencyTreeBankSentence, oracle: Oracle): UniversalDependencyTreeBankSentence;
23
+ protected constructor();
24
+ /**
25
+ * Creates a new {@link UniversalDependencyTreeBankSentence} with the same words as the input sentence,
26
+ * but with null heads, effectively cloning the sentence structure without dependencies.
27
+ * @param universalDependencyTreeBankSentence the sentence to be cloned
28
+ * @return a new {@link UniversalDependencyTreeBankSentence} with copied words but no dependencies
29
+ */
30
+ protected createResultSentence(universalDependencyTreeBankSentence: UniversalDependencyTreeBankSentence): UniversalDependencyTreeBankSentence;
31
+ /**
32
+ * Simulates parsing a corpus of sentences, returning a dataset of instances created by parsing each sentence.
33
+ * @param corpus the corpus to be parsed
34
+ * @param windowSize the size of the window used in parsing
35
+ * @return a {@link DataSet} containing instances from parsing each sentence in the corpus
36
+ */
37
+ simulateParseOnCorpus(corpus: UniversalDependencyTreeBankCorpus, windowSize: number): DataSet;
38
+ /**
39
+ * Checks if there are any states in the agenda that still have words to process or have more than one item in the stack.
40
+ * @param agenda the agenda containing the states
41
+ * @return true if there are states to process, false otherwise
42
+ */
43
+ private checkStates;
44
+ /**
45
+ * Initializes the parsing state with a stack containing one empty {@link StackWord} and a word list containing all words in the sentence.
46
+ * @param sentence the sentence to initialize the state with
47
+ * @return a {@link State} representing the starting point for parsing
48
+ */
49
+ protected initialState(sentence: UniversalDependencyTreeBankSentence): State;
50
+ /**
51
+ * Constructs possible parsing candidates based on the current state and transition system.
52
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
53
+ * @param state the current parsing state
54
+ * @return a list of possible {@link Candidate} actions to be applied
55
+ */
56
+ private constructCandidates;
57
+ /**
58
+ * Performs dependency parsing with beam search to find the best parse for a given sentence.
59
+ * @param oracle the scoring oracle used for guiding the search
60
+ * @param beamSize the size of the beam for beam search
61
+ * @param universalDependencyTreeBankSentence the sentence to be parsed
62
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
63
+ * @return the best parsing state from the beam search
64
+ */
65
+ dependencyParseWithBeamSearch(oracle: ScoringOracle, beamSize: number, universalDependencyTreeBankSentence: UniversalDependencyTreeBankSentence, transitionSystem: TransitionSystem): State;
66
+ /**
67
+ * Parses a corpus of sentences using the given oracle and returns a new corpus with the parsed sentences.
68
+ * @param universalDependencyTreeBankCorpus the corpus to be parsed
69
+ * @param oracle the oracle used for guiding the parsing process
70
+ * @return a {@link UniversalDependencyTreeBankCorpus} containing the parsed sentences
71
+ */
72
+ dependencyParseCorpus(universalDependencyTreeBankCorpus: UniversalDependencyTreeBankCorpus, oracle: Oracle): UniversalDependencyTreeBankCorpus;
73
+ }
@@ -0,0 +1,164 @@
1
+ (function (factory) {
2
+ if (typeof module === "object" && typeof module.exports === "object") {
3
+ var v = factory(require, exports);
4
+ if (v !== undefined) module.exports = v;
5
+ }
6
+ else if (typeof define === "function" && define.amd) {
7
+ define(["require", "exports", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankSentence", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankCorpus", "nlptoolkit-classification/dist/DataSet/DataSet", "./Agenda", "./State", "./StackWord", "./Candidate", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TransitionParser = void 0;
13
+ const UniversalDependencyTreeBankSentence_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankSentence");
14
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
15
+ const UniversalDependencyTreeBankCorpus_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankCorpus");
16
+ const DataSet_1 = require("nlptoolkit-classification/dist/DataSet/DataSet");
17
+ const Agenda_1 = require("./Agenda");
18
+ const State_1 = require("./State");
19
+ const StackWord_1 = require("./StackWord");
20
+ const Candidate_1 = require("./Candidate");
21
+ const UniversalDependencyType_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType");
22
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
23
+ class TransitionParser {
24
+ constructor() {
25
+ }
26
+ /**
27
+ * Creates a new {@link UniversalDependencyTreeBankSentence} with the same words as the input sentence,
28
+ * but with null heads, effectively cloning the sentence structure without dependencies.
29
+ * @param universalDependencyTreeBankSentence the sentence to be cloned
30
+ * @return a new {@link UniversalDependencyTreeBankSentence} with copied words but no dependencies
31
+ */
32
+ createResultSentence(universalDependencyTreeBankSentence) {
33
+ let sentence = new UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence();
34
+ for (let i = 0; i < universalDependencyTreeBankSentence.wordCount(); i++) {
35
+ let word = universalDependencyTreeBankSentence.getWord(i);
36
+ if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
37
+ sentence.addWord(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(word.getId(), word.getName(), word.getLemma(), word.getUpos(), word.getXpos(), word.getFeatures(), null, word.getDeps(), word.getMisc()));
38
+ }
39
+ }
40
+ return sentence;
41
+ }
42
+ /**
43
+ * Simulates parsing a corpus of sentences, returning a dataset of instances created by parsing each sentence.
44
+ * @param corpus the corpus to be parsed
45
+ * @param windowSize the size of the window used in parsing
46
+ * @return a {@link DataSet} containing instances from parsing each sentence in the corpus
47
+ */
48
+ simulateParseOnCorpus(corpus, windowSize) {
49
+ let dataSet = new DataSet_1.DataSet();
50
+ for (let i = 0; i < corpus.sentenceCount(); i++) {
51
+ let sentence = corpus.getSentence(i);
52
+ if (sentence instanceof UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence) {
53
+ dataSet.addInstanceList(this.simulateParse(sentence, windowSize));
54
+ }
55
+ }
56
+ return dataSet;
57
+ }
58
+ /**
59
+ * Checks if there are any states in the agenda that still have words to process or have more than one item in the stack.
60
+ * @param agenda the agenda containing the states
61
+ * @return true if there are states to process, false otherwise
62
+ */
63
+ checkStates(agenda) {
64
+ for (let state of agenda.getKeySet()) {
65
+ if (state.wordListSize() > 0 || state.stackSize() > 1) {
66
+ return true;
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ /**
72
+ * Initializes the parsing state with a stack containing one empty {@link StackWord} and a word list containing all words in the sentence.
73
+ * @param sentence the sentence to initialize the state with
74
+ * @return a {@link State} representing the starting point for parsing
75
+ */
76
+ initialState(sentence) {
77
+ let wordList = new Array();
78
+ for (let i = 0; i < sentence.wordCount(); i++) {
79
+ let word = sentence.getWord(i);
80
+ if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
81
+ wordList.push(new StackWord_1.StackWord(word, i + 1));
82
+ }
83
+ }
84
+ let stack = new Array();
85
+ stack.push(new StackWord_1.StackWord());
86
+ return new State_1.State(stack, wordList, new Array());
87
+ }
88
+ /**
89
+ * Constructs possible parsing candidates based on the current state and transition system.
90
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
91
+ * @param state the current parsing state
92
+ * @return a list of possible {@link Candidate} actions to be applied
93
+ */
94
+ constructCandidates(transitionSystem, state) {
95
+ if (state.stackSize() == 1 && state.wordListSize() == 0) {
96
+ return new Array();
97
+ }
98
+ let subsets = new Array();
99
+ if (state.wordListSize() > 0) {
100
+ subsets.push(new Candidate_1.Candidate(Command.SHIFT, UniversalDependencyType_1.UniversalDependencyType.DEP));
101
+ }
102
+ if (transitionSystem == TransitionSystem.ARC_EAGER && state.stackSize() > 0) {
103
+ subsets.push(new Candidate_1.Candidate(Command.REDUCE, UniversalDependencyType_1.UniversalDependencyType.DEP));
104
+ }
105
+ for (let i = 0; i < UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTypes.length; i++) {
106
+ let type = UniversalDependencyRelation_1.UniversalDependencyRelation.getDependencyTag(UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTypes[i]);
107
+ if (transitionSystem == TransitionSystem.ARC_STANDARD && state.stackSize() > 1) {
108
+ subsets.push(new Candidate_1.Candidate(Command.LEFTARC, type));
109
+ subsets.push(new Candidate_1.Candidate(Command.RIGHTARC, type));
110
+ }
111
+ else if (transitionSystem == TransitionSystem.ARC_EAGER && state.stackSize() > 0 && state.wordListSize() > 0) {
112
+ subsets.push(new Candidate_1.Candidate(Command.LEFTARC, type));
113
+ subsets.push(new Candidate_1.Candidate(Command.RIGHTARC, type));
114
+ }
115
+ }
116
+ return subsets;
117
+ }
118
+ /**
119
+ * Performs dependency parsing with beam search to find the best parse for a given sentence.
120
+ * @param oracle the scoring oracle used for guiding the search
121
+ * @param beamSize the size of the beam for beam search
122
+ * @param universalDependencyTreeBankSentence the sentence to be parsed
123
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
124
+ * @return the best parsing state from the beam search
125
+ */
126
+ dependencyParseWithBeamSearch(oracle, beamSize, universalDependencyTreeBankSentence, transitionSystem) {
127
+ let sentence = this.createResultSentence(universalDependencyTreeBankSentence);
128
+ let initialState = this.initialState(sentence);
129
+ let agenda = new Agenda_1.Agenda(beamSize);
130
+ agenda.updateAgenda(oracle, initialState.clone());
131
+ while (this.checkStates(agenda)) {
132
+ for (let state of agenda.getKeySet()) {
133
+ let subsets = this.constructCandidates(transitionSystem, state);
134
+ for (let subset of subsets) {
135
+ let command = subset.getCommand();
136
+ let type = subset.getUniversalDependencyType();
137
+ let cloneState = state.clone();
138
+ cloneState.apply(command, type, transitionSystem);
139
+ agenda.updateAgenda(oracle, cloneState.clone());
140
+ }
141
+ }
142
+ }
143
+ return agenda.best();
144
+ }
145
+ /**
146
+ * Parses a corpus of sentences using the given oracle and returns a new corpus with the parsed sentences.
147
+ * @param universalDependencyTreeBankCorpus the corpus to be parsed
148
+ * @param oracle the oracle used for guiding the parsing process
149
+ * @return a {@link UniversalDependencyTreeBankCorpus} containing the parsed sentences
150
+ */
151
+ dependencyParseCorpus(universalDependencyTreeBankCorpus, oracle) {
152
+ let corpus = new UniversalDependencyTreeBankCorpus_1.UniversalDependencyTreeBankCorpus();
153
+ for (let i = 0; i < universalDependencyTreeBankCorpus.sentenceCount(); i++) {
154
+ let sentence = universalDependencyTreeBankCorpus.getSentence(i);
155
+ if (sentence instanceof UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence) {
156
+ corpus.addSentence(this.dependencyParse(sentence, oracle));
157
+ }
158
+ }
159
+ return corpus;
160
+ }
161
+ }
162
+ exports.TransitionParser = TransitionParser;
163
+ });
164
+ //# sourceMappingURL=TransitionParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionParser.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/TransitionParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ declare enum TransitionSystem {
2
+ ARC_STANDARD = 0,
3
+ ARC_EAGER = 1
4
+ }
@@ -0,0 +1,6 @@
1
+ var TransitionSystem;
2
+ (function (TransitionSystem) {
3
+ TransitionSystem[TransitionSystem["ARC_STANDARD"] = 0] = "ARC_STANDARD";
4
+ TransitionSystem[TransitionSystem["ARC_EAGER"] = 1] = "ARC_EAGER";
5
+ })(TransitionSystem || (TransitionSystem = {}));
6
+ //# sourceMappingURL=TransitionSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionSystem.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/TransitionSystem.ts"],"names":[],"mappings":"AAAA,IAAK,gBAEJ;AAFD,WAAK,gBAAgB;IACjB,uEAAY,CAAA;IAAE,iEAAS,CAAA;AAC3B,CAAC,EAFI,gBAAgB,KAAhB,gBAAgB,QAEpB"}
package/index.js ADDED
@@ -0,0 +1,20 @@
1
+ export * from "./dist/Agenda"
2
+ export * from "./dist/ArcEagerInstanceGenerator"
3
+ export * from "./dist/ArcEagerOracle"
4
+ export * from "./dist/ArcEagerTransitionParser"
5
+ export * from "./dist/ArcStandardOracle"
6
+ export * from "./dist/ArcStandardTransitionParser"
7
+ export * from "./dist/Candidate"
8
+ export * from "./dist/Command"
9
+ export * from "./dist/Decision"
10
+ export * from "./dist/InstanceGenerator"
11
+ export * from "./dist/Oracle"
12
+ export * from "./dist/RandomOracle"
13
+ export * from "./dist/RandomScoringOracle"
14
+ export * from "./dist/ScoringOracle"
15
+ export * from "./dist/SimpleInstanceGenerator"
16
+ export * from "./dist/StackRelation"
17
+ export * from "./dist/StackWord"
18
+ export * from "./dist/State"
19
+ export * from "./dist/TransitionParser"
20
+ export * from "./dist/TransitionSystem"