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.
- package/dist/Parser/TransitionBasedParser/Agenda.js +64 -0
- package/dist/Parser/TransitionBasedParser/Agenda.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.js +71 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.js.map +1 -0
- package/dist/{ArcEagerOracle.d.ts → Parser/TransitionBasedParser/ArcEagerOracle.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerOracle.js +30 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerOracle.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerTransitionParser.js +104 -0
- package/dist/Parser/TransitionBasedParser/ArcEagerTransitionParser.js.map +1 -0
- package/dist/{ArcStandardOracle.d.ts → Parser/TransitionBasedParser/ArcStandardOracle.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/ArcStandardOracle.js +27 -0
- package/dist/Parser/TransitionBasedParser/ArcStandardOracle.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/ArcStandardTransitionParser.js +120 -0
- package/dist/Parser/TransitionBasedParser/ArcStandardTransitionParser.js.map +1 -0
- package/dist/{Candidate.d.ts → Parser/TransitionBasedParser/Candidate.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/Candidate.js +19 -0
- package/dist/Parser/TransitionBasedParser/Candidate.js.map +1 -0
- package/dist/{Command.d.ts → Parser/TransitionBasedParser/Command.d.ts} +1 -1
- package/dist/{Command.js → Parser/TransitionBasedParser/Command.js} +4 -1
- package/dist/Parser/TransitionBasedParser/Command.js.map +1 -0
- package/dist/{Decision.d.ts → Parser/TransitionBasedParser/Decision.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/Decision.js +16 -0
- package/dist/Parser/TransitionBasedParser/Decision.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/InstanceGenerator.js +67 -0
- package/dist/Parser/TransitionBasedParser/InstanceGenerator.js.map +1 -0
- package/dist/{Oracle.d.ts → Parser/TransitionBasedParser/Oracle.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/Oracle.js +108 -0
- package/dist/Parser/TransitionBasedParser/Oracle.js.map +1 -0
- package/dist/{RandomOracle.d.ts → Parser/TransitionBasedParser/RandomOracle.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/RandomOracle.js +36 -0
- package/dist/Parser/TransitionBasedParser/RandomOracle.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/RandomScoringOracle.js +11 -0
- package/dist/Parser/TransitionBasedParser/RandomScoringOracle.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/ScoringOracle.js +7 -0
- package/dist/Parser/TransitionBasedParser/ScoringOracle.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/SimpleInstanceGenerator.js +57 -0
- package/dist/Parser/TransitionBasedParser/SimpleInstanceGenerator.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/StackRelation.js +22 -0
- package/dist/Parser/TransitionBasedParser/StackRelation.js.map +1 -0
- package/dist/Parser/TransitionBasedParser/StackWord.js +34 -0
- package/dist/Parser/TransitionBasedParser/StackWord.js.map +1 -0
- package/dist/{State.d.ts → Parser/TransitionBasedParser/State.d.ts} +2 -0
- package/dist/Parser/TransitionBasedParser/State.js +156 -0
- package/dist/Parser/TransitionBasedParser/State.js.map +1 -0
- package/dist/{TransitionParser.d.ts → Parser/TransitionBasedParser/TransitionParser.d.ts} +1 -0
- package/dist/Parser/TransitionBasedParser/TransitionParser.js +156 -0
- package/dist/Parser/TransitionBasedParser/TransitionParser.js.map +1 -0
- package/dist/{TransitionSystem.d.ts → Parser/TransitionBasedParser/TransitionSystem.d.ts} +1 -1
- package/dist/Parser/TransitionBasedParser/TransitionSystem.js +9 -0
- package/dist/Parser/TransitionBasedParser/TransitionSystem.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/package.json +8 -7
- package/source/Parser/TransitionBasedParser/ArcEagerOracle.ts +2 -0
- package/source/Parser/TransitionBasedParser/ArcEagerTransitionParser.ts +1 -0
- package/source/Parser/TransitionBasedParser/ArcStandardOracle.ts +2 -0
- package/source/Parser/TransitionBasedParser/ArcStandardTransitionParser.ts +1 -0
- package/source/Parser/TransitionBasedParser/Candidate.ts +1 -0
- package/source/Parser/TransitionBasedParser/Command.ts +1 -1
- package/source/Parser/TransitionBasedParser/Decision.ts +1 -0
- package/source/Parser/TransitionBasedParser/Oracle.ts +2 -0
- package/source/Parser/TransitionBasedParser/RandomOracle.ts +2 -0
- package/source/Parser/TransitionBasedParser/State.ts +2 -0
- package/source/Parser/TransitionBasedParser/TransitionParser.ts +2 -0
- package/source/Parser/TransitionBasedParser/TransitionSystem.ts +1 -1
- package/source/index.ts +20 -0
- package/tsconfig.json +4 -4
- package/dist/Agenda.js +0 -72
- package/dist/Agenda.js.map +0 -1
- package/dist/ArcEagerInstanceGenerator.js +0 -81
- package/dist/ArcEagerInstanceGenerator.js.map +0 -1
- package/dist/ArcEagerOracle.js +0 -39
- package/dist/ArcEagerOracle.js.map +0 -1
- package/dist/ArcEagerTransitionParser.js +0 -113
- package/dist/ArcEagerTransitionParser.js.map +0 -1
- package/dist/ArcStandardOracle.js +0 -36
- package/dist/ArcStandardOracle.js.map +0 -1
- package/dist/ArcStandardTransitionParser.js +0 -129
- package/dist/ArcStandardTransitionParser.js.map +0 -1
- package/dist/Candidate.js +0 -27
- package/dist/Candidate.js.map +0 -1
- package/dist/Command.js.map +0 -1
- package/dist/Decision.js +0 -25
- package/dist/Decision.js.map +0 -1
- package/dist/InstanceGenerator.js +0 -77
- package/dist/InstanceGenerator.js.map +0 -1
- package/dist/Oracle.js +0 -115
- package/dist/Oracle.js.map +0 -1
- package/dist/RandomOracle.js +0 -45
- package/dist/RandomOracle.js.map +0 -1
- package/dist/RandomScoringOracle.js +0 -21
- package/dist/RandomScoringOracle.js.map +0 -1
- package/dist/ScoringOracle.js +0 -17
- package/dist/ScoringOracle.js.map +0 -1
- package/dist/SimpleInstanceGenerator.js +0 -67
- package/dist/SimpleInstanceGenerator.js.map +0 -1
- package/dist/StackRelation.js +0 -30
- package/dist/StackRelation.js.map +0 -1
- package/dist/StackWord.js +0 -42
- package/dist/StackWord.js.map +0 -1
- package/dist/State.js +0 -161
- package/dist/State.js.map +0 -1
- package/dist/TransitionParser.js +0 -164
- package/dist/TransitionParser.js.map +0 -1
- package/dist/TransitionSystem.js +0 -6
- package/dist/TransitionSystem.js.map +0 -1
- package/index.js +0 -20
- package/source/tsconfig.json +0 -13
- /package/dist/{Agenda.d.ts → Parser/TransitionBasedParser/Agenda.d.ts} +0 -0
- /package/dist/{ArcEagerInstanceGenerator.d.ts → Parser/TransitionBasedParser/ArcEagerInstanceGenerator.d.ts} +0 -0
- /package/dist/{ArcEagerTransitionParser.d.ts → Parser/TransitionBasedParser/ArcEagerTransitionParser.d.ts} +0 -0
- /package/dist/{ArcStandardTransitionParser.d.ts → Parser/TransitionBasedParser/ArcStandardTransitionParser.d.ts} +0 -0
- /package/dist/{InstanceGenerator.d.ts → Parser/TransitionBasedParser/InstanceGenerator.d.ts} +0 -0
- /package/dist/{RandomScoringOracle.d.ts → Parser/TransitionBasedParser/RandomScoringOracle.d.ts} +0 -0
- /package/dist/{ScoringOracle.d.ts → Parser/TransitionBasedParser/ScoringOracle.d.ts} +0 -0
- /package/dist/{SimpleInstanceGenerator.d.ts → Parser/TransitionBasedParser/SimpleInstanceGenerator.d.ts} +0 -0
- /package/dist/{StackRelation.d.ts → Parser/TransitionBasedParser/StackRelation.d.ts} +0 -0
- /package/dist/{StackWord.d.ts → Parser/TransitionBasedParser/StackWord.d.ts} +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Agenda = void 0;
|
|
4
|
+
class Agenda {
|
|
5
|
+
agenda;
|
|
6
|
+
beamSize;
|
|
7
|
+
constructor(beamSize) {
|
|
8
|
+
this.agenda = new Map();
|
|
9
|
+
this.beamSize = beamSize;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Retrieves the set of states currently in the agenda.
|
|
13
|
+
* @return A set of states that are currently in the agenda.
|
|
14
|
+
*/
|
|
15
|
+
getKeySet() {
|
|
16
|
+
return this.agenda.keys();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Updates the agenda with a new state if it is better than the worst state
|
|
20
|
+
* currently in the agenda or if there is room in the agenda.
|
|
21
|
+
* @param oracle The ScoringOracle used to score the state.
|
|
22
|
+
* @param current The state to be added to the agenda.
|
|
23
|
+
*/
|
|
24
|
+
updateAgenda(oracle, current) {
|
|
25
|
+
if (this.agenda.has(current)) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
let point = oracle.score(current);
|
|
29
|
+
if (this.agenda.size < this.beamSize) {
|
|
30
|
+
this.agenda.set(current, point);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
let worst = null;
|
|
34
|
+
let worstValue = Number.MAX_VALUE;
|
|
35
|
+
for (let key of this.agenda.keys()) {
|
|
36
|
+
if (this.agenda.get(key) < worstValue) {
|
|
37
|
+
worstValue = this.agenda.get(key);
|
|
38
|
+
worst = key;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (point > worstValue) {
|
|
42
|
+
this.agenda.delete(worst);
|
|
43
|
+
this.agenda.set(current, point);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Retrieves the best state from the agenda based on the highest score.
|
|
49
|
+
* @return The state with the highest score in the agenda.
|
|
50
|
+
*/
|
|
51
|
+
best() {
|
|
52
|
+
let best = null;
|
|
53
|
+
let bestValue = Number.MIN_VALUE;
|
|
54
|
+
for (let key of this.agenda.keys()) {
|
|
55
|
+
if (this.agenda.get(key) > bestValue) {
|
|
56
|
+
bestValue = this.agenda.get(key);
|
|
57
|
+
best = key;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return best;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.Agenda = Agenda;
|
|
64
|
+
//# sourceMappingURL=Agenda.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Agenda.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/Agenda.ts"],"names":[],"mappings":";;;AAGA,MAAa,MAAM;IAEP,MAAM,CAAoB;IAC1B,QAAQ,CAAQ;IAExB,YAAY,QAAgB;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAAiB,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IAED;;;OAGG;IACH,SAAS;QACL,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IAC7B,CAAC;IAED;;;;;OAKG;IACH,YAAY,CAAC,MAAqB,EAAE,OAAc;QAC9C,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAC,CAAC;YAC1B,OAAM;QACV,CAAC;QACD,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QACjC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QACnC,CAAC;aAAK,CAAC;YACH,IAAI,KAAK,GAAG,IAAI,CAAA;YAChB,IAAI,UAAU,GAAG,MAAM,CAAC,SAAS,CAAA;YACjC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,CAAC;gBAChC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,UAAU,EAAC,CAAC;oBACnC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACjC,KAAK,GAAG,GAAG,CAAA;gBACf,CAAC;YACL,CAAC;YACD,IAAI,KAAK,GAAG,UAAU,EAAC,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;YACnC,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAI;QACA,IAAI,IAAI,GAAG,IAAI,CAAA;QACf,IAAI,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;QAChC,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,EAAC,CAAC;YAChC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,EAAC,CAAC;gBAClC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBAChC,IAAI,GAAG,GAAG,CAAA;YACd,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAA;IACf,CAAC;CACJ;AA9DD,wBA8DC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcEagerInstanceGenerator = 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 ArcEagerInstanceGenerator extends InstanceGenerator_1.InstanceGenerator {
|
|
9
|
+
/**
|
|
10
|
+
* Checks if the given word has a valid relation.
|
|
11
|
+
* @param word The UniversalDependencyTreeBankWord to check.
|
|
12
|
+
* @return true if the relation is valid, false otherwise.
|
|
13
|
+
*/
|
|
14
|
+
suitable(word) {
|
|
15
|
+
return word.getRelation() != null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Generates an Instance object based on the provided state, window size, and command.
|
|
19
|
+
* The Instance is populated with attributes derived from the words in the state.
|
|
20
|
+
* @param state The state used to generate the instance.
|
|
21
|
+
* @param windowSize The size of the window used to extract words from the state.
|
|
22
|
+
* @param command The command associated with the instance.
|
|
23
|
+
* @return The generated Instance object.
|
|
24
|
+
*/
|
|
25
|
+
generate(state, windowSize, command) {
|
|
26
|
+
let instance = new Instance_1.Instance(command);
|
|
27
|
+
let attributes = new Array();
|
|
28
|
+
for (let i = 0; i < windowSize; i++) {
|
|
29
|
+
let word = state.getStackWord(i);
|
|
30
|
+
if (word == null) {
|
|
31
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 18));
|
|
32
|
+
this.addEmptyAttributes(attributes);
|
|
33
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
if (word.getName() == "root") {
|
|
37
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
|
|
38
|
+
this.addEmptyAttributes(attributes);
|
|
39
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
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
|
+
if (this.suitable(word)) {
|
|
45
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getRelation().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.dependencyIndex(word.getRelation().toString()) + 1, 59));
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, 59));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
for (let i = 0; i < windowSize; i++) {
|
|
54
|
+
let word = state.getWordListWord(i);
|
|
55
|
+
if (word != null) {
|
|
56
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(word.getUpos().toString(), UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.posIndex(word.getUpos().toString()) + 1, 18));
|
|
57
|
+
this.addFeatureAttributes(word, attributes);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("root", 0, 18));
|
|
61
|
+
this.addEmptyAttributes(attributes);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
for (let attribute of attributes) {
|
|
65
|
+
instance.addAttribute(attribute);
|
|
66
|
+
}
|
|
67
|
+
return instance;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.ArcEagerInstanceGenerator = ArcEagerInstanceGenerator;
|
|
71
|
+
//# sourceMappingURL=ArcEagerInstanceGenerator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcEagerInstanceGenerator.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ArcEagerInstanceGenerator.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 ArcEagerOracle extends Oracle {
|
|
6
7
|
constructor(model: Model, windowSize: number);
|
|
7
8
|
makeDecision(state: State): Decision;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcEagerOracle = void 0;
|
|
4
|
+
const Oracle_1 = require("./Oracle");
|
|
5
|
+
const Decision_1 = require("./Decision");
|
|
6
|
+
const SimpleInstanceGenerator_1 = require("./SimpleInstanceGenerator");
|
|
7
|
+
const Command_1 = require("./Command");
|
|
8
|
+
class ArcEagerOracle extends Oracle_1.Oracle {
|
|
9
|
+
constructor(model, windowSize) {
|
|
10
|
+
super(model, windowSize);
|
|
11
|
+
}
|
|
12
|
+
makeDecision(state) {
|
|
13
|
+
let instanceGenerator = new SimpleInstanceGenerator_1.SimpleInstanceGenerator();
|
|
14
|
+
let instance = instanceGenerator.generate(state, this.windowSize, "");
|
|
15
|
+
let best = this.findBestValidEagerClassInfo(this.commandModel.predictProbability(instance), state);
|
|
16
|
+
let decisionCandidate = this.getDecisionCandidate(best);
|
|
17
|
+
if (decisionCandidate.getCommand() == Command_1.Command.SHIFT) {
|
|
18
|
+
return new Decision_1.Decision(Command_1.Command.SHIFT, null, 0.0);
|
|
19
|
+
}
|
|
20
|
+
else if (decisionCandidate.getCommand() == Command_1.Command.REDUCE) {
|
|
21
|
+
return new Decision_1.Decision(Command_1.Command.REDUCE, null, 0.0);
|
|
22
|
+
}
|
|
23
|
+
return new Decision_1.Decision(decisionCandidate.getCommand(), decisionCandidate.getUniversalDependencyType(), 0.0);
|
|
24
|
+
}
|
|
25
|
+
scoreDecisions(state, transitionSystem) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ArcEagerOracle = ArcEagerOracle;
|
|
30
|
+
//# sourceMappingURL=ArcEagerOracle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcEagerOracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ArcEagerOracle.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,yCAAoC;AAEpC,uEAAkE;AAClE,uCAAkC;AAGlC,MAAa,cAAe,SAAQ,eAAM;IAEtC,YAAY,KAAY,EAAE,UAAkB;QACxC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5B,CAAC;IAEM,YAAY,CAAC,KAAY;QAC5B,IAAI,iBAAiB,GAAG,IAAI,iDAAuB,EAAE,CAAA;QACrD,IAAI,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACtE,IAAI,IAAI,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;QAClG,IAAI,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACvD,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,iBAAO,CAAC,KAAK,EAAE,CAAC;YAClD,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QACjD,CAAC;aAAM,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,iBAAO,CAAC,MAAM,EAAE,CAAC;YAC1D,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAClD,CAAC;QACD,OAAO,IAAI,mBAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5G,CAAC;IAES,cAAc,CAAC,KAAY,EAAE,gBAAkC;QACrE,OAAO,IAAI,CAAC;IAChB,CAAC;CAEJ;AAvBD,wCAuBC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcEagerTransitionParser = void 0;
|
|
4
|
+
const TransitionParser_1 = require("./TransitionParser");
|
|
5
|
+
const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
|
|
6
|
+
const ArcEagerInstanceGenerator_1 = require("./ArcEagerInstanceGenerator");
|
|
7
|
+
const StackWord_1 = require("./StackWord");
|
|
8
|
+
const State_1 = require("./State");
|
|
9
|
+
const Command_1 = require("./Command");
|
|
10
|
+
class ArcEagerTransitionParser extends TransitionParser_1.TransitionParser {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
}
|
|
14
|
+
dependencyParse(universalDependencyTreeBankSentence, oracle) {
|
|
15
|
+
let sentence = this.createResultSentence(universalDependencyTreeBankSentence);
|
|
16
|
+
let state = this.initialState(sentence);
|
|
17
|
+
while (state.wordListSize() > 0 || state.stackSize() > 1) {
|
|
18
|
+
let decision = oracle.makeDecision(state);
|
|
19
|
+
switch (decision.getCommand()) {
|
|
20
|
+
case Command_1.Command.SHIFT:
|
|
21
|
+
state.applyShift();
|
|
22
|
+
break;
|
|
23
|
+
case Command_1.Command.LEFTARC:
|
|
24
|
+
state.applyArcEagerLeftArc(decision.getUniversalDependencyType());
|
|
25
|
+
break;
|
|
26
|
+
case Command_1.Command.RIGHTARC:
|
|
27
|
+
state.applyArcEagerRightArc(decision.getUniversalDependencyType());
|
|
28
|
+
break;
|
|
29
|
+
case Command_1.Command.REDUCE:
|
|
30
|
+
state.applyReduce();
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return sentence;
|
|
37
|
+
}
|
|
38
|
+
simulateParse(sentence, windowSize) {
|
|
39
|
+
let topRelation = null;
|
|
40
|
+
let instanceGenerator = new ArcEagerInstanceGenerator_1.ArcEagerInstanceGenerator();
|
|
41
|
+
let instanceList = new Array();
|
|
42
|
+
let wordMap = new Map();
|
|
43
|
+
let wordList = new Array();
|
|
44
|
+
let stack = new Array();
|
|
45
|
+
for (let j = 0; j < sentence.wordCount(); j++) {
|
|
46
|
+
let word = sentence.getWord(j);
|
|
47
|
+
if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
|
|
48
|
+
let clone = word.clone();
|
|
49
|
+
clone.setRelation(null);
|
|
50
|
+
wordMap.set(j + 1, word);
|
|
51
|
+
wordList.push(new StackWord_1.StackWord(clone, j + 1));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
stack.push(new StackWord_1.StackWord());
|
|
55
|
+
let state = new State_1.State(stack, wordList, new Array());
|
|
56
|
+
while (wordList.length > 0 || stack.length > 1) {
|
|
57
|
+
let firstRelation;
|
|
58
|
+
let first;
|
|
59
|
+
if (wordList.length != 0) {
|
|
60
|
+
first = wordList[0].getWord();
|
|
61
|
+
firstRelation = wordMap.get(wordList[0].getToWord()).getRelation();
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
first = null;
|
|
65
|
+
firstRelation = null;
|
|
66
|
+
}
|
|
67
|
+
let top = stack[stack.length - 1].getWord();
|
|
68
|
+
if (top.getName() != "root") {
|
|
69
|
+
topRelation = wordMap.get(stack[stack.length - 1].getToWord()).getRelation();
|
|
70
|
+
}
|
|
71
|
+
if (stack.length > 1) {
|
|
72
|
+
if (firstRelation != null && firstRelation.to() == top.getId()) {
|
|
73
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "RIGHTARC(" + firstRelation + ")"));
|
|
74
|
+
let word = wordList.splice(0, 1)[0];
|
|
75
|
+
stack.push(new StackWord_1.StackWord(wordMap.get(word.getToWord()), word.getToWord()));
|
|
76
|
+
}
|
|
77
|
+
else if (first != null && topRelation != null && topRelation.to() == first.getId()) {
|
|
78
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "LEFTARC(" + topRelation + ")"));
|
|
79
|
+
stack.pop();
|
|
80
|
+
}
|
|
81
|
+
else if (wordList.length > 0) {
|
|
82
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
83
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "REDUCE"));
|
|
87
|
+
stack.pop();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
if (wordList.length > 0) {
|
|
92
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
93
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return instanceList;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.ArcEagerTransitionParser = ArcEagerTransitionParser;
|
|
104
|
+
//# sourceMappingURL=ArcEagerTransitionParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcEagerTransitionParser.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ArcEagerTransitionParser.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 ArcStandardOracle extends Oracle {
|
|
6
7
|
constructor(model: Model, windowSize: number);
|
|
7
8
|
makeDecision(state: State): Decision;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcStandardOracle = void 0;
|
|
4
|
+
const Oracle_1 = require("./Oracle");
|
|
5
|
+
const Decision_1 = require("./Decision");
|
|
6
|
+
const SimpleInstanceGenerator_1 = require("./SimpleInstanceGenerator");
|
|
7
|
+
const Command_1 = require("./Command");
|
|
8
|
+
class ArcStandardOracle extends Oracle_1.Oracle {
|
|
9
|
+
constructor(model, windowSize) {
|
|
10
|
+
super(model, windowSize);
|
|
11
|
+
}
|
|
12
|
+
makeDecision(state) {
|
|
13
|
+
let instanceGenerator = new SimpleInstanceGenerator_1.SimpleInstanceGenerator();
|
|
14
|
+
let instance = instanceGenerator.generate(state, this.windowSize, "");
|
|
15
|
+
let best = this.findBestValidStandardClassInfo(this.commandModel.predictProbability(instance), state);
|
|
16
|
+
let decisionCandidate = this.getDecisionCandidate(best);
|
|
17
|
+
if (decisionCandidate.getCommand() == Command_1.Command.SHIFT) {
|
|
18
|
+
return new Decision_1.Decision(Command_1.Command.SHIFT, null, 0.0);
|
|
19
|
+
}
|
|
20
|
+
return new Decision_1.Decision(decisionCandidate.getCommand(), decisionCandidate.getUniversalDependencyType(), 0.0);
|
|
21
|
+
}
|
|
22
|
+
scoreDecisions(state, transitionSystem) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.ArcStandardOracle = ArcStandardOracle;
|
|
27
|
+
//# sourceMappingURL=ArcStandardOracle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcStandardOracle.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ArcStandardOracle.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,yCAAoC;AAEpC,uEAAkE;AAElE,uCAAkC;AAElC,MAAa,iBAAkB,SAAQ,eAAM;IAEzC,YAAY,KAAY,EAAE,UAAkB;QACxC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;IAC5B,CAAC;IAEM,YAAY,CAAC,KAAY;QAC5B,IAAI,iBAAiB,GAAG,IAAI,iDAAuB,EAAE,CAAA;QACrD,IAAI,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;QACrE,IAAI,IAAI,GAAG,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC;QACtG,IAAI,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAA;QACvD,IAAI,iBAAiB,CAAC,UAAU,EAAE,IAAI,iBAAO,CAAC,KAAK,EAAE,CAAC;YAClD,OAAO,IAAI,mBAAQ,CAAC,iBAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,IAAI,mBAAQ,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,iBAAiB,CAAC,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5G,CAAC;IAES,cAAc,CAAC,KAAY,EAAE,gBAAkC;QACrE,OAAO,IAAI,CAAA;IACf,CAAC;CAEJ;AArBD,8CAqBC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ArcStandardTransitionParser = void 0;
|
|
4
|
+
const TransitionParser_1 = require("./TransitionParser");
|
|
5
|
+
const StackWord_1 = require("./StackWord");
|
|
6
|
+
const SimpleInstanceGenerator_1 = require("./SimpleInstanceGenerator");
|
|
7
|
+
const UniversalDependencyTreeBankWord_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankWord");
|
|
8
|
+
const State_1 = require("./State");
|
|
9
|
+
const Command_1 = require("./Command");
|
|
10
|
+
class ArcStandardTransitionParser extends TransitionParser_1.TransitionParser {
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Checks if there are more relations with a specified ID in the list of words.
|
|
16
|
+
* @param wordList The list of words to check.
|
|
17
|
+
* @param id The ID to check for.
|
|
18
|
+
* @return True if no more relations with the specified ID are found; false otherwise.
|
|
19
|
+
*/
|
|
20
|
+
checkForMoreRelation(wordList, id) {
|
|
21
|
+
for (let word of wordList) {
|
|
22
|
+
if (word.getWord().getRelation().to() == id) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Performs dependency parsing on the given sentence using the provided oracle.
|
|
30
|
+
* @param universalDependencyTreeBankSentence The sentence to be parsed.
|
|
31
|
+
* @param oracle The oracle used to make parsing decisions.
|
|
32
|
+
* @return The parsed sentence with dependency relations established.
|
|
33
|
+
*/
|
|
34
|
+
dependencyParse(universalDependencyTreeBankSentence, oracle) {
|
|
35
|
+
let sentence = this.createResultSentence(universalDependencyTreeBankSentence);
|
|
36
|
+
let state = this.initialState(sentence);
|
|
37
|
+
while (state.wordListSize() > 0 || state.stackSize() > 1) {
|
|
38
|
+
let decision = oracle.makeDecision(state);
|
|
39
|
+
switch (decision.getCommand()) {
|
|
40
|
+
case Command_1.Command.SHIFT:
|
|
41
|
+
state.applyShift();
|
|
42
|
+
break;
|
|
43
|
+
case Command_1.Command.LEFTARC:
|
|
44
|
+
state.applyLeftArc(decision.getUniversalDependencyType());
|
|
45
|
+
break;
|
|
46
|
+
case Command_1.Command.RIGHTARC:
|
|
47
|
+
state.applyRightArc(decision.getUniversalDependencyType());
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return sentence;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Simulates the parsing process for a given sentence using the Arc Standard parsing algorithm.
|
|
57
|
+
* @param sentence The sentence to be parsed.
|
|
58
|
+
* @param windowSize The size of the window used for feature generation.
|
|
59
|
+
* @return An ArrayList of {@link Instance} objects representing the parsed actions.
|
|
60
|
+
*/
|
|
61
|
+
simulateParse(sentence, windowSize) {
|
|
62
|
+
let instanceGenerator = new SimpleInstanceGenerator_1.SimpleInstanceGenerator();
|
|
63
|
+
let instanceList = new Array();
|
|
64
|
+
let wordList = new Array();
|
|
65
|
+
let stack = new Array();
|
|
66
|
+
for (let j = 0; j < sentence.wordCount(); j++) {
|
|
67
|
+
let word = sentence.getWord(j);
|
|
68
|
+
if (word instanceof UniversalDependencyTreeBankWord_1.UniversalDependencyTreeBankWord) {
|
|
69
|
+
wordList.push(new StackWord_1.StackWord(word, j + 1));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
stack.push(new StackWord_1.StackWord());
|
|
73
|
+
let state = new State_1.State(stack, wordList, new Array());
|
|
74
|
+
if (wordList.length > 0) {
|
|
75
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
76
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
77
|
+
if (wordList.length > 1) {
|
|
78
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
79
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
80
|
+
}
|
|
81
|
+
while (wordList.length > 0 || stack.length > 1) {
|
|
82
|
+
let top = stack[stack.length - 1].getWord();
|
|
83
|
+
let topRelation = top.getRelation();
|
|
84
|
+
if (stack.length > 1) {
|
|
85
|
+
let beforeTop = stack[stack.length - 2].getWord();
|
|
86
|
+
let beforeTopRelation = beforeTop.getRelation();
|
|
87
|
+
if (beforeTop.getId() == topRelation.to() && this.checkForMoreRelation(wordList, top.getId())) {
|
|
88
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "RIGHTARC(" + topRelation + ")"));
|
|
89
|
+
stack.pop();
|
|
90
|
+
}
|
|
91
|
+
else if (top.getId() == beforeTopRelation.to()) {
|
|
92
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "LEFTARC(" + beforeTopRelation + ")"));
|
|
93
|
+
stack.splice(stack.length - 2, 1);
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
if (wordList.length > 0) {
|
|
97
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
98
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
if (wordList.length > 0) {
|
|
107
|
+
instanceList.push(instanceGenerator.generate(state, windowSize, "SHIFT"));
|
|
108
|
+
stack.push(wordList.splice(0, 1)[0]);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return instanceList;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.ArcStandardTransitionParser = ArcStandardTransitionParser;
|
|
120
|
+
//# sourceMappingURL=ArcStandardTransitionParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArcStandardTransitionParser.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/ArcStandardTransitionParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Candidate = void 0;
|
|
4
|
+
class Candidate {
|
|
5
|
+
command;
|
|
6
|
+
universalDependencyType;
|
|
7
|
+
constructor(command, universalDependencyType) {
|
|
8
|
+
this.command = command;
|
|
9
|
+
this.universalDependencyType = universalDependencyType;
|
|
10
|
+
}
|
|
11
|
+
getCommand() {
|
|
12
|
+
return this.command;
|
|
13
|
+
}
|
|
14
|
+
getUniversalDependencyType() {
|
|
15
|
+
return this.universalDependencyType;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.Candidate = Candidate;
|
|
19
|
+
//# sourceMappingURL=Candidate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Candidate.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/Candidate.ts"],"names":[],"mappings":";;;AAGA,MAAa,SAAS;IACD,OAAO,CAAU;IACjB,uBAAuB,CAAyB;IAEjE,YAAY,OAAgB,EAAE,uBAAgD;QAC1E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACtB,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;IAC1D,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;IAED,0BAA0B;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAA;IACvC,CAAC;CAEJ;AAjBD,8BAiBC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Command = void 0;
|
|
1
4
|
var Command;
|
|
2
5
|
(function (Command) {
|
|
3
6
|
Command[Command["RIGHTARC"] = 0] = "RIGHTARC";
|
|
4
7
|
Command[Command["LEFTARC"] = 1] = "LEFTARC";
|
|
5
8
|
Command[Command["SHIFT"] = 2] = "SHIFT";
|
|
6
9
|
Command[Command["REDUCE"] = 3] = "REDUCE";
|
|
7
|
-
})(Command || (Command = {}));
|
|
10
|
+
})(Command || (exports.Command = Command = {}));
|
|
8
11
|
//# sourceMappingURL=Command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Command.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/Command.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAEX;AAFD,WAAY,OAAO;IACf,6CAAQ,CAAA;IAAE,2CAAO,CAAA;IAAE,uCAAK,CAAA;IAAE,yCAAM,CAAA;AACpC,CAAC,EAFW,OAAO,uBAAP,OAAO,QAElB"}
|
|
@@ -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
|
export declare class Decision extends Candidate {
|
|
4
5
|
private readonly point;
|
|
5
6
|
constructor(command: Command, universalDependencyType: UniversalDependencyType, point: number);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Decision = void 0;
|
|
4
|
+
const Candidate_1 = require("./Candidate");
|
|
5
|
+
class Decision extends Candidate_1.Candidate {
|
|
6
|
+
point;
|
|
7
|
+
constructor(command, universalDependencyType, point) {
|
|
8
|
+
super(command, universalDependencyType);
|
|
9
|
+
this.point = point;
|
|
10
|
+
}
|
|
11
|
+
getPoint() {
|
|
12
|
+
return this.point;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Decision = Decision;
|
|
16
|
+
//# sourceMappingURL=Decision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Decision.js","sourceRoot":"","sources":["../../../source/Parser/TransitionBasedParser/Decision.ts"],"names":[],"mappings":";;;AACA,2CAAsC;AAGtC,MAAa,QAAS,SAAQ,qBAAS;IAElB,KAAK,CAAQ;IAE9B,YAAY,OAAgB,EAAE,uBAAgD,EAAE,KAAa;QACzF,KAAK,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACtB,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAZD,4BAYC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InstanceGenerator = void 0;
|
|
4
|
+
const UniversalDependencyTreeBankFeatures_1 = require("nlptoolkit-dependencyparser/dist/Universal/UniversalDependencyTreeBankFeatures");
|
|
5
|
+
const DiscreteIndexedAttribute_1 = require("nlptoolkit-classification/dist/Attribute/DiscreteIndexedAttribute");
|
|
6
|
+
class InstanceGenerator {
|
|
7
|
+
/**
|
|
8
|
+
* Adds an attribute for a specific feature type of a given word to the list of attributes.
|
|
9
|
+
* @param word The word whose feature value is used to create the attribute.
|
|
10
|
+
* @param attributes The list of attributes to which the new attribute will be added.
|
|
11
|
+
* @param featureType The type of the feature to be extracted from the word.
|
|
12
|
+
*/
|
|
13
|
+
addAttributeForFeatureType(word, attributes, featureType) {
|
|
14
|
+
let feature = word.getFeatureValue(featureType);
|
|
15
|
+
let numberOfValues = UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", featureType) + 1;
|
|
16
|
+
if (feature != undefined) {
|
|
17
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute(feature, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.featureValueIndex("tr", featureType, feature) + 1, numberOfValues));
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, numberOfValues));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Adds a set of default (empty) attributes to the list of attributes. These attributes represent
|
|
25
|
+
* various feature types with default "null" values.
|
|
26
|
+
* @param attributes The list of attributes to which the default attributes will be added.
|
|
27
|
+
*/
|
|
28
|
+
addEmptyAttributes(attributes) {
|
|
29
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "PronType") + 1));
|
|
30
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "NumType") + 1));
|
|
31
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Number") + 1));
|
|
32
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Case") + 1));
|
|
33
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Definite") + 1));
|
|
34
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Degree") + 1));
|
|
35
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "VerbForm") + 1));
|
|
36
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Mood") + 1));
|
|
37
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Tense") + 1));
|
|
38
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Aspect") + 1));
|
|
39
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Voice") + 1));
|
|
40
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Evident") + 1));
|
|
41
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Polarity") + 1));
|
|
42
|
+
attributes.push(new DiscreteIndexedAttribute_1.DiscreteIndexedAttribute("null", 0, UniversalDependencyTreeBankFeatures_1.UniversalDependencyTreeBankFeatures.numberOfValues("tr", "Person") + 1));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Adds attributes for various feature types of a given word to the list of attributes.
|
|
46
|
+
* @param word The word whose feature values are used to create the attributes.
|
|
47
|
+
* @param attributes The list of attributes to which the new attributes will be added.
|
|
48
|
+
*/
|
|
49
|
+
addFeatureAttributes(word, attributes) {
|
|
50
|
+
this.addAttributeForFeatureType(word, attributes, "PronType");
|
|
51
|
+
this.addAttributeForFeatureType(word, attributes, "NumType");
|
|
52
|
+
this.addAttributeForFeatureType(word, attributes, "Number");
|
|
53
|
+
this.addAttributeForFeatureType(word, attributes, "Case");
|
|
54
|
+
this.addAttributeForFeatureType(word, attributes, "Definite");
|
|
55
|
+
this.addAttributeForFeatureType(word, attributes, "Degree");
|
|
56
|
+
this.addAttributeForFeatureType(word, attributes, "VerbForm");
|
|
57
|
+
this.addAttributeForFeatureType(word, attributes, "Mood");
|
|
58
|
+
this.addAttributeForFeatureType(word, attributes, "Tense");
|
|
59
|
+
this.addAttributeForFeatureType(word, attributes, "Aspect");
|
|
60
|
+
this.addAttributeForFeatureType(word, attributes, "Voice");
|
|
61
|
+
this.addAttributeForFeatureType(word, attributes, "Evident");
|
|
62
|
+
this.addAttributeForFeatureType(word, attributes, "Polarity");
|
|
63
|
+
this.addAttributeForFeatureType(word, attributes, "Person");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.InstanceGenerator = InstanceGenerator;
|
|
67
|
+
//# sourceMappingURL=InstanceGenerator.js.map
|