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,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransitionParser = void 0;
4
+ const UniversalDependencyTreeBankSentence_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankSentence");
5
+ const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
6
+ const UniversalDependencyTreeBankCorpus_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankCorpus");
7
+ const DataSet_1 = require("nlptoolkit-classification/dist/DataSet/DataSet");
8
+ const Agenda_1 = require("./Agenda");
9
+ const State_1 = require("./State");
10
+ const StackWord_1 = require("./StackWord");
11
+ const Candidate_1 = require("./Candidate");
12
+ const UniversalDependencyType_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType");
13
+ const UniversalDependencyRelation_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation");
14
+ const Command_1 = require("./Command");
15
+ const TransitionSystem_1 = require("./TransitionSystem");
16
+ class TransitionParser {
17
+ constructor() {
18
+ }
19
+ /**
20
+ * Creates a new {@link UniversalDependencyTreeBankSentence} with the same words as the input sentence,
21
+ * but with null heads, effectively cloning the sentence structure without dependencies.
22
+ * @param universalDependencyTreeBankSentence the sentence to be cloned
23
+ * @return a new {@link UniversalDependencyTreeBankSentence} with copied words but no dependencies
24
+ */
25
+ createResultSentence(universalDependencyTreeBankSentence) {
26
+ let sentence = new UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence();
27
+ for (let i = 0; i < universalDependencyTreeBankSentence.wordCount(); i++) {
28
+ let word = universalDependencyTreeBankSentence.getWord(i);
29
+ if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
30
+ sentence.addWord(new UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord(word.getId(), word.getName(), word.getLemma(), word.getUpos(), word.getXpos(), word.getFeatures(), null, word.getDeps(), word.getMisc()));
31
+ }
32
+ }
33
+ return sentence;
34
+ }
35
+ /**
36
+ * Simulates parsing a corpus of sentences, returning a dataset of instances created by parsing each sentence.
37
+ * @param corpus the corpus to be parsed
38
+ * @param windowSize the size of the window used in parsing
39
+ * @return a {@link DataSet} containing instances from parsing each sentence in the corpus
40
+ */
41
+ simulateParseOnCorpus(corpus, windowSize) {
42
+ let dataSet = new DataSet_1.DataSet();
43
+ for (let i = 0; i < corpus.sentenceCount(); i++) {
44
+ let sentence = corpus.getSentence(i);
45
+ if (sentence instanceof UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence) {
46
+ dataSet.addInstanceList(this.simulateParse(sentence, windowSize));
47
+ }
48
+ }
49
+ return dataSet;
50
+ }
51
+ /**
52
+ * Checks if there are any states in the agenda that still have words to process or have more than one item in the stack.
53
+ * @param agenda the agenda containing the states
54
+ * @return true if there are states to process, false otherwise
55
+ */
56
+ checkStates(agenda) {
57
+ for (let state of agenda.getKeySet()) {
58
+ if (state.wordListSize() > 0 || state.stackSize() > 1) {
59
+ return true;
60
+ }
61
+ }
62
+ return false;
63
+ }
64
+ /**
65
+ * Initializes the parsing state with a stack containing one empty {@link StackWord} and a word list containing all words in the sentence.
66
+ * @param sentence the sentence to initialize the state with
67
+ * @return a {@link State} representing the starting point for parsing
68
+ */
69
+ initialState(sentence) {
70
+ let wordList = new Array();
71
+ for (let i = 0; i < sentence.wordCount(); i++) {
72
+ let word = sentence.getWord(i);
73
+ if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
74
+ wordList.push(new StackWord_1.StackWord(word, i + 1));
75
+ }
76
+ }
77
+ let stack = new Array();
78
+ stack.push(new StackWord_1.StackWord());
79
+ return new State_1.State(stack, wordList, new Array());
80
+ }
81
+ /**
82
+ * Constructs possible parsing candidates based on the current state and transition system.
83
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
84
+ * @param state the current parsing state
85
+ * @return a list of possible {@link Candidate} actions to be applied
86
+ */
87
+ constructCandidates(transitionSystem, state) {
88
+ if (state.stackSize() == 1 && state.wordListSize() == 0) {
89
+ return new Array();
90
+ }
91
+ let subsets = new Array();
92
+ if (state.wordListSize() > 0) {
93
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.SHIFT, UniversalDependencyType_1.UniversalDependencyType.DEP));
94
+ }
95
+ if (transitionSystem == TransitionSystem_1.TransitionSystem.ARC_EAGER && state.stackSize() > 0) {
96
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.REDUCE, UniversalDependencyType_1.UniversalDependencyType.DEP));
97
+ }
98
+ for (let i = 0; i < UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTypes.length; i++) {
99
+ let type = UniversalDependencyRelation_1.UniversalDependencyRelation.getDependencyTag(UniversalDependencyRelation_1.UniversalDependencyRelation.universalDependencyTypes[i]);
100
+ if (transitionSystem == TransitionSystem_1.TransitionSystem.ARC_STANDARD && state.stackSize() > 1) {
101
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.LEFTARC, type));
102
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.RIGHTARC, type));
103
+ }
104
+ else if (transitionSystem == TransitionSystem_1.TransitionSystem.ARC_EAGER && state.stackSize() > 0 && state.wordListSize() > 0) {
105
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.LEFTARC, type));
106
+ subsets.push(new Candidate_1.Candidate(Command_1.Command.RIGHTARC, type));
107
+ }
108
+ }
109
+ return subsets;
110
+ }
111
+ /**
112
+ * Performs dependency parsing with beam search to find the best parse for a given sentence.
113
+ * @param oracle the scoring oracle used for guiding the search
114
+ * @param beamSize the size of the beam for beam search
115
+ * @param universalDependencyTreeBankSentence the sentence to be parsed
116
+ * @param transitionSystem the transition system used (ARC_STANDARD or ARC_EAGER)
117
+ * @return the best parsing state from the beam search
118
+ */
119
+ dependencyParseWithBeamSearch(oracle, beamSize, universalDependencyTreeBankSentence, transitionSystem) {
120
+ let sentence = this.createResultSentence(universalDependencyTreeBankSentence);
121
+ let initialState = this.initialState(sentence);
122
+ let agenda = new Agenda_1.Agenda(beamSize);
123
+ agenda.updateAgenda(oracle, initialState.clone());
124
+ while (this.checkStates(agenda)) {
125
+ for (let state of agenda.getKeySet()) {
126
+ let subsets = this.constructCandidates(transitionSystem, state);
127
+ for (let subset of subsets) {
128
+ let command = subset.getCommand();
129
+ let type = subset.getUniversalDependencyType();
130
+ let cloneState = state.clone();
131
+ cloneState.apply(command, type, transitionSystem);
132
+ agenda.updateAgenda(oracle, cloneState.clone());
133
+ }
134
+ }
135
+ }
136
+ return agenda.best();
137
+ }
138
+ /**
139
+ * Parses a corpus of sentences using the given oracle and returns a new corpus with the parsed sentences.
140
+ * @param universalDependencyTreeBankCorpus the corpus to be parsed
141
+ * @param oracle the oracle used for guiding the parsing process
142
+ * @return a {@link UniversalDependencyTreeBankCorpus} containing the parsed sentences
143
+ */
144
+ dependencyParseCorpus(universalDependencyTreeBankCorpus, oracle) {
145
+ let corpus = new UniversalDependencyTreeBankCorpus_1.UniversalDependencyTreeBankCorpus();
146
+ for (let i = 0; i < universalDependencyTreeBankCorpus.sentenceCount(); i++) {
147
+ let sentence = universalDependencyTreeBankCorpus.getSentence(i);
148
+ if (sentence instanceof UniversalDependencyTreeBankSentence_1.UniversalDependencyTreeBankSentence) {
149
+ corpus.addSentence(this.dependencyParse(sentence, oracle));
150
+ }
151
+ }
152
+ return corpus;
153
+ }
154
+ }
155
+ exports.TransitionParser = TransitionParser;
156
+ //# 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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"}
@@ -1,4 +1,4 @@
1
- declare enum TransitionSystem {
1
+ export declare enum TransitionSystem {
2
2
  ARC_STANDARD = 0,
3
3
  ARC_EAGER = 1
4
4
  }
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransitionSystem = void 0;
4
+ var TransitionSystem;
5
+ (function (TransitionSystem) {
6
+ TransitionSystem[TransitionSystem["ARC_STANDARD"] = 0] = "ARC_STANDARD";
7
+ TransitionSystem[TransitionSystem["ARC_EAGER"] = 1] = "ARC_EAGER";
8
+ })(TransitionSystem || (exports.TransitionSystem = TransitionSystem = {}));
9
+ //# sourceMappingURL=TransitionSystem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransitionSystem.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/TransitionSystem.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,uEAAY,CAAA;IAAE,iEAAS,CAAA;AAC3B,CAAC,EAFW,gBAAgB,gCAAhB,gBAAgB,QAE3B"}
@@ -0,0 +1,20 @@
1
+ export * from "./Parser/TransitionBasedParser/Agenda";
2
+ export * from "./Parser/TransitionBasedParser/ArcEagerInstanceGenerator";
3
+ export * from "./Parser/TransitionBasedParser/ArcEagerOracle";
4
+ export * from "./Parser/TransitionBasedParser/ArcEagerTransitionParser";
5
+ export * from "./Parser/TransitionBasedParser/ArcStandardOracle";
6
+ export * from "./Parser/TransitionBasedParser/ArcStandardTransitionParser";
7
+ export * from "./Parser/TransitionBasedParser/Candidate";
8
+ export * from "./Parser/TransitionBasedParser/Command";
9
+ export * from "./Parser/TransitionBasedParser/Decision";
10
+ export * from "./Parser/TransitionBasedParser/InstanceGenerator";
11
+ export * from "./Parser/TransitionBasedParser/Oracle";
12
+ export * from "./Parser/TransitionBasedParser/RandomOracle";
13
+ export * from "./Parser/TransitionBasedParser/RandomScoringOracle";
14
+ export * from "./Parser/TransitionBasedParser/ScoringOracle";
15
+ export * from "./Parser/TransitionBasedParser/SimpleInstanceGenerator";
16
+ export * from "./Parser/TransitionBasedParser/StackRelation";
17
+ export * from "./Parser/TransitionBasedParser/StackWord";
18
+ export * from "./Parser/TransitionBasedParser/State";
19
+ export * from "./Parser/TransitionBasedParser/TransitionParser";
20
+ export * from "./Parser/TransitionBasedParser/TransitionSystem";
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Parser/TransitionBasedParser/Agenda"), exports);
18
+ __exportStar(require("./Parser/TransitionBasedParser/ArcEagerInstanceGenerator"), exports);
19
+ __exportStar(require("./Parser/TransitionBasedParser/ArcEagerOracle"), exports);
20
+ __exportStar(require("./Parser/TransitionBasedParser/ArcEagerTransitionParser"), exports);
21
+ __exportStar(require("./Parser/TransitionBasedParser/ArcStandardOracle"), exports);
22
+ __exportStar(require("./Parser/TransitionBasedParser/ArcStandardTransitionParser"), exports);
23
+ __exportStar(require("./Parser/TransitionBasedParser/Candidate"), exports);
24
+ __exportStar(require("./Parser/TransitionBasedParser/Command"), exports);
25
+ __exportStar(require("./Parser/TransitionBasedParser/Decision"), exports);
26
+ __exportStar(require("./Parser/TransitionBasedParser/InstanceGenerator"), exports);
27
+ __exportStar(require("./Parser/TransitionBasedParser/Oracle"), exports);
28
+ __exportStar(require("./Parser/TransitionBasedParser/RandomOracle"), exports);
29
+ __exportStar(require("./Parser/TransitionBasedParser/RandomScoringOracle"), exports);
30
+ __exportStar(require("./Parser/TransitionBasedParser/ScoringOracle"), exports);
31
+ __exportStar(require("./Parser/TransitionBasedParser/SimpleInstanceGenerator"), exports);
32
+ __exportStar(require("./Parser/TransitionBasedParser/StackRelation"), exports);
33
+ __exportStar(require("./Parser/TransitionBasedParser/StackWord"), exports);
34
+ __exportStar(require("./Parser/TransitionBasedParser/State"), exports);
35
+ __exportStar(require("./Parser/TransitionBasedParser/TransitionParser"), exports);
36
+ __exportStar(require("./Parser/TransitionBasedParser/TransitionSystem"), exports);
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../source/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAqD;AACrD,2FAAwE;AACxE,gFAA6D;AAC7D,0FAAuE;AACvE,mFAAgE;AAChE,6FAA0E;AAC1E,2EAAwD;AACxD,yEAAsD;AACtD,0EAAuD;AACvD,mFAAgE;AAChE,wEAAqD;AACrD,8EAA2D;AAC3D,qFAAkE;AAClE,+EAA4D;AAC5D,yFAAsE;AACtE,+EAA4D;AAC5D,2EAAwD;AACxD,uEAAoD;AACpD,kFAA+D;AAC/D,kFAA+D"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "nlptoolkit-universaldependencyparser",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Dependency Parsing Algorithms",
5
- "main": "index.js",
5
+ "main": "source/index.ts",
6
6
  "types": "index.js",
7
7
  "scripts": {
8
8
  "test": "mocha"
@@ -19,12 +19,13 @@
19
19
  "homepage": "https://github.com/StarlangSoftware/UniversalDependencyParser-Js#readme",
20
20
  "devDependencies": {
21
21
  "@types/mocha": "^10.0.1",
22
- "mocha": "^10.2.0",
23
- "ts-node": "^10.9.1",
24
- "typescript": "^5.0.4"
22
+ "@types/node": "^25.2.3",
23
+ "mocha": "^9.1.3",
24
+ "ts-node": "^10.4.0",
25
+ "typescript": "^5.9.3"
25
26
  },
26
27
  "dependencies": {
27
- "nlptoolkit-classification": "^1.0.7",
28
- "nlptoolkit-dependencyparser": "^1.0.8"
28
+ "nlptoolkit-classification": "^1.0.9",
29
+ "nlptoolkit-dependencyparser": "^1.0.10"
29
30
  }
30
31
  }
@@ -3,6 +3,8 @@ import {State} from "./State";
3
3
  import {Decision} from "./Decision";
4
4
  import {Model} from "nlptoolkit-classification/dist/Model/Model";
5
5
  import {SimpleInstanceGenerator} from "./SimpleInstanceGenerator";
6
+ import {Command} from "./Command";
7
+ import {TransitionSystem} from "./TransitionSystem";
6
8
 
7
9
  export class ArcEagerOracle extends Oracle{
8
10
 
@@ -11,6 +11,7 @@ import {ArcEagerInstanceGenerator} from "./ArcEagerInstanceGenerator";
11
11
  import {StackWord} from "./StackWord";
12
12
  import {State} from "./State";
13
13
  import {StackRelation} from "./StackRelation";
14
+ import {Command} from "./Command";
14
15
 
15
16
  export class ArcEagerTransitionParser extends TransitionParser{
16
17
 
@@ -3,6 +3,8 @@ import {State} from "./State";
3
3
  import {Decision} from "./Decision";
4
4
  import {Model} from "nlptoolkit-classification/dist/Model/Model";
5
5
  import {SimpleInstanceGenerator} from "./SimpleInstanceGenerator";
6
+ import {TransitionSystem} from "./TransitionSystem";
7
+ import {Command} from "./Command";
6
8
 
7
9
  export class ArcStandardOracle extends Oracle{
8
10
 
@@ -11,6 +11,7 @@ import {
11
11
  } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord";
12
12
  import {State} from "./State";
13
13
  import {StackRelation} from "./StackRelation";
14
+ import {Command} from "./Command";
14
15
 
15
16
  export class ArcStandardTransitionParser extends TransitionParser{
16
17
 
@@ -1,4 +1,5 @@
1
1
  import {UniversalDependencyType} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
2
+ import {Command} from "./Command";
2
3
 
3
4
  export class Candidate {
4
5
  private readonly command: Command;
@@ -1,3 +1,3 @@
1
- enum Command {
1
+ export enum Command {
2
2
  RIGHTARC, LEFTARC, SHIFT, REDUCE
3
3
  }
@@ -1,5 +1,6 @@
1
1
  import {UniversalDependencyType} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
2
2
  import {Candidate} from "./Candidate";
3
+ import {Command} from "./Command";
3
4
 
4
5
  export class Decision extends Candidate{
5
6
 
@@ -4,6 +4,8 @@ import {State} from "./State";
4
4
  import {Candidate} from "./Candidate";
5
5
  import {UniversalDependencyRelation} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation";
6
6
  import {UniversalDependencyType} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
7
+ import {TransitionSystem} from "./TransitionSystem";
8
+ import {Command} from "./Command";
7
9
 
8
10
  export abstract class Oracle {
9
11
 
@@ -4,6 +4,8 @@ import {Decision} from "./Decision";
4
4
  import {Model} from "nlptoolkit-classification/dist/Model/Model";
5
5
  import {UniversalDependencyType} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
6
6
  import {UniversalDependencyRelation} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation";
7
+ import {Command} from "./Command";
8
+ import {TransitionSystem} from "./TransitionSystem";
7
9
 
8
10
  export class RandomOracle extends Oracle{
9
11
 
@@ -5,6 +5,8 @@ import {UniversalDependencyRelation} from "nlptoolkit-dependencyparser/dist/Univ
5
5
  import {
6
6
  UniversalDependencyTreeBankWord
7
7
  } from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord";
8
+ import {Command} from "./Command";
9
+ import {TransitionSystem} from "./TransitionSystem";
8
10
 
9
11
  export class State {
10
12
 
@@ -18,6 +18,8 @@ import {Candidate} from "./Candidate";
18
18
  import {UniversalDependencyType} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyType";
19
19
  import {UniversalDependencyRelation} from "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyRelation";
20
20
  import {ScoringOracle} from "./ScoringOracle";
21
+ import {Command} from "./Command";
22
+ import {TransitionSystem} from "./TransitionSystem";
21
23
 
22
24
  export abstract class TransitionParser {
23
25
 
@@ -1,3 +1,3 @@
1
- enum TransitionSystem {
1
+ export enum TransitionSystem {
2
2
  ARC_STANDARD, ARC_EAGER
3
3
  }
@@ -0,0 +1,20 @@
1
+ export * from "./Parser/TransitionBasedParser/Agenda"
2
+ export * from "./Parser/TransitionBasedParser/ArcEagerInstanceGenerator"
3
+ export * from "./Parser/TransitionBasedParser/ArcEagerOracle"
4
+ export * from "./Parser/TransitionBasedParser/ArcEagerTransitionParser"
5
+ export * from "./Parser/TransitionBasedParser/ArcStandardOracle"
6
+ export * from "./Parser/TransitionBasedParser/ArcStandardTransitionParser"
7
+ export * from "./Parser/TransitionBasedParser/Candidate"
8
+ export * from "./Parser/TransitionBasedParser/Command"
9
+ export * from "./Parser/TransitionBasedParser/Decision"
10
+ export * from "./Parser/TransitionBasedParser/InstanceGenerator"
11
+ export * from "./Parser/TransitionBasedParser/Oracle"
12
+ export * from "./Parser/TransitionBasedParser/RandomOracle"
13
+ export * from "./Parser/TransitionBasedParser/RandomScoringOracle"
14
+ export * from "./Parser/TransitionBasedParser/ScoringOracle"
15
+ export * from "./Parser/TransitionBasedParser/SimpleInstanceGenerator"
16
+ export * from "./Parser/TransitionBasedParser/StackRelation"
17
+ export * from "./Parser/TransitionBasedParser/StackWord"
18
+ export * from "./Parser/TransitionBasedParser/State"
19
+ export * from "./Parser/TransitionBasedParser/TransitionParser"
20
+ export * from "./Parser/TransitionBasedParser/TransitionSystem"
package/tsconfig.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "es6",
3
+ "outDir": "dist",
4
+ "module": "nodeNext",
5
5
  "sourceMap": true,
6
6
  "noImplicitAny": true,
7
7
  "removeComments": false,
8
- "moduleResolution": "node"
8
+ "declaration": true,
9
9
  },
10
10
  "exclude": [
11
- "source",
11
+ "tests",
12
12
  "node_modules",
13
13
  "dist"
14
14
  ]
package/dist/Agenda.js DELETED
@@ -1,72 +0,0 @@
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.Agenda = void 0;
13
- class Agenda {
14
- constructor(beamSize) {
15
- this.agenda = new Map();
16
- this.beamSize = beamSize;
17
- }
18
- /**
19
- * Retrieves the set of states currently in the agenda.
20
- * @return A set of states that are currently in the agenda.
21
- */
22
- getKeySet() {
23
- return this.agenda.keys();
24
- }
25
- /**
26
- * Updates the agenda with a new state if it is better than the worst state
27
- * currently in the agenda or if there is room in the agenda.
28
- * @param oracle The ScoringOracle used to score the state.
29
- * @param current The state to be added to the agenda.
30
- */
31
- updateAgenda(oracle, current) {
32
- if (this.agenda.has(current)) {
33
- return;
34
- }
35
- let point = oracle.score(current);
36
- if (this.agenda.size < this.beamSize) {
37
- this.agenda.set(current, point);
38
- }
39
- else {
40
- let worst = null;
41
- let worstValue = Number.MAX_VALUE;
42
- for (let key of this.agenda.keys()) {
43
- if (this.agenda.get(key) < worstValue) {
44
- worstValue = this.agenda.get(key);
45
- worst = key;
46
- }
47
- }
48
- if (point > worstValue) {
49
- this.agenda.delete(worst);
50
- this.agenda.set(current, point);
51
- }
52
- }
53
- }
54
- /**
55
- * Retrieves the best state from the agenda based on the highest score.
56
- * @return The state with the highest score in the agenda.
57
- */
58
- best() {
59
- let best = null;
60
- let bestValue = Number.MIN_VALUE;
61
- for (let key of this.agenda.keys()) {
62
- if (this.agenda.get(key) > bestValue) {
63
- bestValue = this.agenda.get(key);
64
- best = key;
65
- }
66
- }
67
- return best;
68
- }
69
- }
70
- exports.Agenda = Agenda;
71
- });
72
- //# sourceMappingURL=Agenda.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Agenda.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/Agenda.ts"],"names":[],"mappings":";;;;;;;;;;;;IAGA,MAAa,MAAM;QAKf,YAAY,QAAgB;YACxB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;YACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAC5B,CAAC;QAED;;;WAGG;QACH,SAAS;YACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;QAC7B,CAAC;QAED;;;;;WAKG;QACH,YAAY,CAAC,MAAqB,EAAE,OAAc;YAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC;gBACzB,OAAM;aACT;YACD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YACjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;aAClC;iBAAK;gBACF,IAAI,KAAK,GAAG,IAAI,CAAA;gBAChB,IAAI,UAAU,GAAG,MAAM,CAAC,SAAS,CAAA;gBACjC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;oBAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,EAAC;wBAClC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;wBACjC,KAAK,GAAG,GAAG,CAAA;qBACd;iBACJ;gBACD,IAAI,KAAK,GAAG,UAAU,EAAC;oBACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;oBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;iBAClC;aACJ;QACL,CAAC;QAED;;;WAGG;QACH,IAAI;YACA,IAAI,IAAI,GAAG,IAAI,CAAA;YACf,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;YAChC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC;gBAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAAC;oBACjC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBAChC,IAAI,GAAG,GAAG,CAAA;iBACb;aACJ;YACD,OAAO,IAAI,CAAA;QACf,CAAC;KACJ;IA9DD,wBA8DC"}
@@ -1,81 +0,0 @@
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", "./InstanceGenerator", "nlptoolkit-classification/dist/Instance/Instance", "nlptoolkit-classification/dist/Attribute/DiscreteIndexedAttribute", "nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankFeatures"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ArcEagerInstanceGenerator = void 0;
13
- const InstanceGenerator_1 = require("./InstanceGenerator");
14
- const Instance_1 = require("nlptoolkit-classification/dist/Instance/Instance");
15
- const DiscreteIndexedAttribute_1 = require("nlptoolkit-classification/dist/Attribute/DiscreteIndexedAttribute");
16
- const UniversalDependencyTreeBankFeatures_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankFeatures");
17
- class ArcEagerInstanceGenerator extends InstanceGenerator_1.InstanceGenerator {
18
- /**
19
- * Checks if the given word has a valid relation.
20
- * @param word The UniversalDependencyTreeBankWord to check.
21
- * @return true if the relation is valid, false otherwise.
22
- */
23
- suitable(word) {
24
- return word.getRelation() != null;
25
- }
26
- /**
27
- * Generates an Instance object based on the provided state, window size, and command.
28
- * The Instance is populated with attributes derived from the words in the state.
29
- * @param state The state used to generate the instance.
30
- * @param windowSize The size of the window used to extract words from the state.
31
- * @param command The command associated with the instance.
32
- * @return The generated Instance object.
33
- */
34
- generate(state, windowSize, command) {
35
- let instance = new Instance_1.Instance(command);
36
- let attributes = new Array();
37
- for (let i = 0; i < windowSize; i++) {
38
- let word = state.getStackWord(i);
39
- if (word == null) {
40
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 18));
41
- this.addEmptyAttributes(attributes);
42
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
43
- }
44
- else {
45
- if (word.getName() == "root") {
46
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
47
- this.addEmptyAttributes(attributes);
48
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
49
- }
50
- else {
51
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getUpos().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.posIndex(word.getUpos().toString()) + 1, 18));
52
- this.addFeatureAttributes(word, attributes);
53
- if (this.suitable(word)) {
54
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getRelation().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.dependencyIndex(word.getRelation().toString()) + 1, 59));
55
- }
56
- else {
57
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
58
- }
59
- }
60
- }
61
- }
62
- for (let i = 0; i < windowSize; i++) {
63
- let word = state.getWordListWord(i);
64
- if (word != null) {
65
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getUpos().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.posIndex(word.getUpos().toString()) + 1, 18));
66
- this.addFeatureAttributes(word, attributes);
67
- }
68
- else {
69
- attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
70
- this.addEmptyAttributes(attributes);
71
- }
72
- }
73
- for (let attribute of attributes) {
74
- instance.addAttribute(attribute);
75
- }
76
- return instance;
77
- }
78
- }
79
- exports.ArcEagerInstanceGenerator = ArcEagerInstanceGenerator;
80
- });
81
- //# sourceMappingURL=ArcEagerInstanceGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ArcEagerInstanceGenerator.js","sourceRoot":"","sources":["../source/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.ts"],"names":[],"mappings":"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"}