nlptoolkit-morphologicalanalysis 1.0.13 → 1.0.15

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 (84) hide show
  1. package/README.md +1 -1
  2. package/dist/Corpus/DisambiguationCorpus.d.ts +7 -0
  3. package/dist/Corpus/DisambiguationCorpus.js +7 -0
  4. package/dist/Corpus/DisambiguationCorpus.js.map +1 -1
  5. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.d.ts +71 -3
  6. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js +164 -41
  7. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js.map +1 -1
  8. package/dist/MorphologicalAnalysis/FsmParse.d.ts +9 -0
  9. package/dist/MorphologicalAnalysis/FsmParse.js +15 -0
  10. package/dist/MorphologicalAnalysis/FsmParse.js.map +1 -1
  11. package/dist/MorphologicalAnalysis/InflectionalGroup.js +3 -2
  12. package/dist/MorphologicalAnalysis/InflectionalGroup.js.map +1 -1
  13. package/dist/MorphologicalAnalysis/MorphologicalParse.d.ts +98 -0
  14. package/dist/MorphologicalAnalysis/MorphologicalParse.js +161 -10
  15. package/dist/MorphologicalAnalysis/MorphologicalParse.js.map +1 -1
  16. package/dist/MorphologicalAnalysis/MorphologicalTag.d.ts +9 -1
  17. package/dist/MorphologicalAnalysis/MorphologicalTag.js +8 -0
  18. package/dist/MorphologicalAnalysis/MorphologicalTag.js.map +1 -1
  19. package/dist/MorphologicalAnalysis/MorphotacticEngine.d.ts +47 -0
  20. package/dist/MorphologicalAnalysis/MorphotacticEngine.js +51 -1
  21. package/dist/MorphologicalAnalysis/MorphotacticEngine.js.map +1 -1
  22. package/dist/MorphologicalAnalysis/Transition.d.ts +22 -8
  23. package/dist/MorphologicalAnalysis/Transition.js +25 -9
  24. package/dist/MorphologicalAnalysis/Transition.js.map +1 -1
  25. package/package.json +2 -2
  26. package/parses/ac/314/247/304/261kla.txt +57 -3
  27. package/parses/ak.txt +72 -3
  28. package/parses/aksa.txt +40 -2
  29. package/parses/anla.txt +57 -3
  30. package/parses/azal.txt +63 -4
  31. package/parses/bo/314/210l.txt +53 -3
  32. package/parses/bul.txt +53 -3
  33. package/parses/cenk.txt +8 -0
  34. package/parses/cevapla.txt +74 -4
  35. package/parses/cos/314/247.txt +53 -3
  36. package/parses/c/314/247o/314/210k.txt +54 -3
  37. package/parses/c/314/247/304/261k.txt +59 -3
  38. package/parses/del.txt +47 -3
  39. package/parses/doldur.txt +47 -3
  40. package/parses/emlak.txt +2 -0
  41. package/parses/git.txt +59 -3
  42. package/parses/giy.txt +59 -3
  43. package/parses/go/314/210c/314/247.txt +59 -3
  44. package/parses/go/314/210ster.txt +63 -4
  45. package/parses/hal.txt +20 -4
  46. package/parses/kalp.txt +29 -4
  47. package/parses/kavur.txt +80 -5
  48. package/parses/kaydol.txt +69 -4
  49. package/parses/resim.txt +14 -0
  50. package/parses/s/304/261ska.txt +24 -0
  51. package/parses/ye.txt +40 -2
  52. package/parses/yemek.txt +6 -0
  53. package/parses/y/304/261ka.txt +90 -5
  54. package/parses/y/304/261ldo/314/210nu/314/210mu/314/210.txt +6 -0
  55. package/pronunciations.txt +490 -0
  56. package/source/Corpus/DisambiguationCorpus.ts +7 -0
  57. package/source/MorphologicalAnalysis/FsmMorphologicalAnalyzer.ts +171 -45
  58. package/source/MorphologicalAnalysis/FsmParse.ts +16 -1
  59. package/source/MorphologicalAnalysis/InflectionalGroup.ts +3 -2
  60. package/source/MorphologicalAnalysis/MorphologicalParse.ts +161 -10
  61. package/source/MorphologicalAnalysis/MorphologicalTag.ts +9 -1
  62. package/source/MorphologicalAnalysis/MorphotacticEngine.ts +51 -1
  63. package/source/MorphologicalAnalysis/Transition.ts +25 -9
  64. package/suffixes.txt +6313 -0
  65. package/tests/DisambiguationCorpusTest.js +14 -0
  66. package/tests/DisambiguationCorpusTest.js.map +1 -0
  67. package/tests/FiniteStateMachineTest.js +96 -0
  68. package/tests/FiniteStateMachineTest.js.map +1 -0
  69. package/tests/FiniteStateMachineTest.ts +1 -1
  70. package/tests/FsmMorphologicalAnalyzerTest.js +250 -0
  71. package/tests/FsmMorphologicalAnalyzerTest.js.map +1 -0
  72. package/tests/FsmMorphologicalAnalyzerTest.ts +12 -6
  73. package/tests/FsmParseListTest.js +100 -0
  74. package/tests/FsmParseListTest.js.map +1 -0
  75. package/tests/FsmParseTest.js +68 -0
  76. package/tests/FsmParseTest.js.map +1 -0
  77. package/tests/InflectionalGroupTest.js +86 -0
  78. package/tests/InflectionalGroupTest.js.map +1 -0
  79. package/tests/MorphologicalParseTest.js +154 -0
  80. package/tests/MorphologicalParseTest.js.map +1 -0
  81. package/tests/TransitionTest.js +184 -0
  82. package/tests/TransitionTest.js.map +1 -0
  83. package/tests/TransitionTest.ts +8 -0
  84. package/turkish_finite_state_machine.xml +11 -3
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var DisambiguationCorpus_1 = require("../dist/Corpus/DisambiguationCorpus");
4
+ var assert = require("assert");
5
+ describe('DisambiguationCorpusTest', function () {
6
+ describe('DisambiguationCorpusTest', function () {
7
+ it('testCorpus', function () {
8
+ var corpus = new DisambiguationCorpus_1.DisambiguationCorpus("penntreebank.txt");
9
+ assert.strictEqual(19109, corpus.sentenceCount());
10
+ assert.strictEqual(170211, corpus.numberOfWords());
11
+ });
12
+ });
13
+ });
14
+ //# sourceMappingURL=DisambiguationCorpusTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisambiguationCorpusTest.js","sourceRoot":"","sources":["DisambiguationCorpusTest.ts"],"names":[],"mappings":";;AAAA,4EAAyE;AACzE,+BAAiC;AAEjC,QAAQ,CAAC,0BAA0B,EAAE;IACjC,QAAQ,CAAC,0BAA0B,EAAE;QACjC,EAAE,CAAC,YAAY,EAAE;YACb,IAAI,MAAM,GAAG,IAAI,2CAAoB,CAAC,kBAAkB,CAAC,CAAC;YAC1D,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert = require("assert");
4
+ var FiniteStateMachine_1 = require("../dist/MorphologicalAnalysis/FiniteStateMachine");
5
+ var CounterHashMap_1 = require("nlptoolkit-datastructure/dist/CounterHashMap");
6
+ describe('FiniteStateMachineTest', function () {
7
+ describe('FiniteStateMachineTest', function () {
8
+ var fsm = new FiniteStateMachine_1.FiniteStateMachine("turkish_finite_state_machine.xml");
9
+ var stateList = fsm.getStates();
10
+ it('testStateCount', function () {
11
+ assert.strictEqual(141, stateList.length);
12
+ });
13
+ it('testStartEndStates', function () {
14
+ var endStateCount = 0;
15
+ for (var _i = 0, stateList_1 = stateList; _i < stateList_1.length; _i++) {
16
+ var state = stateList_1[_i];
17
+ if (state.isEndState()) {
18
+ endStateCount++;
19
+ }
20
+ }
21
+ assert.strictEqual(37, endStateCount);
22
+ var posCounts = new CounterHashMap_1.CounterHashMap();
23
+ for (var _a = 0, stateList_2 = stateList; _a < stateList_2.length; _a++) {
24
+ var state = stateList_2[_a];
25
+ posCounts.put(state.getPos());
26
+ }
27
+ assert.strictEqual(1, posCounts.get("HEAD"));
28
+ assert.strictEqual(6, posCounts.get("PRON"));
29
+ assert.strictEqual(1, posCounts.get("PROP"));
30
+ assert.strictEqual(8, posCounts.get("NUM"));
31
+ assert.strictEqual(7, posCounts.get("ADJ"));
32
+ assert.strictEqual(1, posCounts.get("INTERJ"));
33
+ assert.strictEqual(1, posCounts.get("DET"));
34
+ assert.strictEqual(1, posCounts.get("ADVERB"));
35
+ assert.strictEqual(1, posCounts.get("QUES"));
36
+ assert.strictEqual(1, posCounts.get("CONJ"));
37
+ assert.strictEqual(26, posCounts.get("VERB"));
38
+ assert.strictEqual(1, posCounts.get("POSTP"));
39
+ assert.strictEqual(1, posCounts.get("DUP"));
40
+ assert.strictEqual(11, posCounts.get("NOUN"));
41
+ });
42
+ it('testTransitionCount', function () {
43
+ var transitionCount = 0;
44
+ for (var _i = 0, stateList_3 = stateList; _i < stateList_3.length; _i++) {
45
+ var state = stateList_3[_i];
46
+ transitionCount += fsm.getTransitions(state).length;
47
+ }
48
+ assert.strictEqual(779, transitionCount);
49
+ });
50
+ it('testTransitionWith', function () {
51
+ var transitionCounts = new CounterHashMap_1.CounterHashMap();
52
+ for (var _i = 0, stateList_4 = stateList; _i < stateList_4.length; _i++) {
53
+ var state = stateList_4[_i];
54
+ var transitions = fsm.getTransitions(state);
55
+ for (var _a = 0, transitions_1 = transitions; _a < transitions_1.length; _a++) {
56
+ var transition = transitions_1[_a];
57
+ transitionCounts.put(transition.toString());
58
+ }
59
+ }
60
+ var topList = transitionCounts.topN(5);
61
+ assert.strictEqual("0", topList[0][0]);
62
+ assert.strictEqual(111, topList[0][1]);
63
+ assert.strictEqual("lAr", topList[1][0]);
64
+ assert.strictEqual(37, topList[1][1]);
65
+ assert.strictEqual("DHr", topList[2][0]);
66
+ assert.strictEqual(28, topList[2][1]);
67
+ assert.strictEqual("Hn", topList[3][0]);
68
+ assert.strictEqual(24, topList[3][1]);
69
+ assert.strictEqual("lArH", topList[4][0]);
70
+ assert.strictEqual(23, topList[4][1]);
71
+ });
72
+ it('testTransitionWithName', function () {
73
+ var transitionCounts = new CounterHashMap_1.CounterHashMap();
74
+ for (var _i = 0, stateList_5 = stateList; _i < stateList_5.length; _i++) {
75
+ var state = stateList_5[_i];
76
+ var transitions = fsm.getTransitions(state);
77
+ for (var _a = 0, transitions_2 = transitions; _a < transitions_2.length; _a++) {
78
+ var transition = transitions_2[_a];
79
+ transitionCounts.put(transition.getWith());
80
+ }
81
+ }
82
+ var topList = transitionCounts.topN(5);
83
+ assert.strictEqual("", topList[0][0]);
84
+ assert.strictEqual(52, topList[0][1]);
85
+ assert.strictEqual("^DB+VERB+CAUS", topList[1][0]);
86
+ assert.strictEqual(33, topList[1][1]);
87
+ assert.strictEqual("^DB+VERB+PASS", topList[2][0]);
88
+ assert.strictEqual(31, topList[2][1]);
89
+ assert.strictEqual("A3PL", topList[3][0]);
90
+ assert.strictEqual(28, topList[3][1]);
91
+ assert.strictEqual("LOC", topList[4][0]);
92
+ assert.strictEqual(24, topList[4][1]);
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=FiniteStateMachineTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FiniteStateMachineTest.js","sourceRoot":"","sources":["FiniteStateMachineTest.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ describe('FiniteStateMachineTest', function() {
41
41
  for (let state of stateList){
42
42
  transitionCount += fsm.getTransitions(state).length;
43
43
  }
44
- assert.strictEqual(779, transitionCount);
44
+ assert.strictEqual(783, transitionCount);
45
45
  });
46
46
  it('testTransitionWith', function() {
47
47
  let transitionCounts = new CounterHashMap<string>();
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert = require("assert");
4
+ var FsmMorphologicalAnalyzer_1 = require("../dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer");
5
+ var State_1 = require("../dist/MorphologicalAnalysis/State");
6
+ var Transition_1 = require("../dist/MorphologicalAnalysis/Transition");
7
+ var Sentence_1 = require("nlptoolkit-corpus/dist/Sentence");
8
+ var fs = require("fs");
9
+ describe('FsmMorphologicalAnalyzerTest', function () {
10
+ describe('FsmMorphologicalAnalyzerTest', function () {
11
+ var fsm = new FsmMorphologicalAnalyzer_1.FsmMorphologicalAnalyzer();
12
+ it('morphologicalAnalysisGenerateAllParses', function () {
13
+ var testWords = ["göç", "açıkla", "yıldönümü",
14
+ "resim", "hal", "emlak", "git",
15
+ "kavur", "ye", "yemek", "ak",
16
+ "sıska", "yıka", "bul", "cevapla",
17
+ "coş", "böl", "del", "giy",
18
+ "kaydol", "anla", "çök", "çık",
19
+ "doldur", "azal", "göster", "aksa", "cenk", "kalp"];
20
+ for (var _i = 0, testWords_1 = testWords; _i < testWords_1.length; _i++) {
21
+ var testWord = testWords_1[_i];
22
+ var word = fsm.getDictionary().getWord(testWord);
23
+ var parsesExpected = [];
24
+ var data = fs.readFileSync("parses/" + word.getName() + ".txt", 'utf8');
25
+ var lines = data.split("\n");
26
+ for (var _a = 0, lines_1 = lines; _a < lines_1.length; _a++) {
27
+ var line = lines_1[_a];
28
+ var items = line.split(" ");
29
+ if (items.length == 2) {
30
+ parsesExpected.push(items[1].trim());
31
+ }
32
+ }
33
+ var parsesGenerated = fsm.generateAllParses(word, word.getName().length + 5);
34
+ assert.ok(parsesExpected.length == parsesGenerated.length);
35
+ for (var _b = 0, parsesGenerated_1 = parsesGenerated; _b < parsesGenerated_1.length; _b++) {
36
+ var parseGenerated = parsesGenerated_1[_b];
37
+ assert.ok(parsesExpected.includes(parseGenerated.toString()));
38
+ }
39
+ }
40
+ });
41
+ it('morphologicalAnalysisSpecialProperNoun', function () {
42
+ assert.ok(fsm.morphologicalAnalysis("TL").size() != 0);
43
+ assert.ok(fsm.morphologicalAnalysis("Won'u").size() != 0);
44
+ assert.ok(fsm.morphologicalAnalysis("Slack'in").size() != 0);
45
+ assert.ok(fsm.morphologicalAnalysis("SPK'ya").size() != 0);
46
+ assert.ok(fsm.morphologicalAnalysis("Stephen'ın").size() != 0);
47
+ });
48
+ it('morphologicalAnalysisNewWords', function () {
49
+ assert.ok(fsm.robustMorphologicalAnalysis("googlecılardan").size() == 6);
50
+ assert.ok(fsm.robustMorphologicalAnalysis("zaptıraplaştırılmayana").size() == 8);
51
+ assert.ok(fsm.robustMorphologicalAnalysis("abzürtleşenmiş").size() == 5);
52
+ assert.ok(fsm.robustMorphologicalAnalysis("vışlığından").size() == 8);
53
+ });
54
+ it('morphologicalAnalysisDataTimeNumber', function () {
55
+ assert.ok(fsm.morphologicalAnalysis("3/4").size() != 0);
56
+ assert.ok(fsm.morphologicalAnalysis("3\\/4").size() != 0);
57
+ assert.ok(fsm.morphologicalAnalysis("4/2/1973").size() != 0);
58
+ assert.ok(fsm.morphologicalAnalysis("14/2/1993").size() != 0);
59
+ assert.ok(fsm.morphologicalAnalysis("14/12/1933").size() != 0);
60
+ assert.ok(fsm.morphologicalAnalysis("6/12/1903").size() != 0);
61
+ assert.ok(fsm.morphologicalAnalysis("%34.5").size() != 0);
62
+ assert.ok(fsm.morphologicalAnalysis("%3").size() != 0);
63
+ assert.ok(fsm.morphologicalAnalysis("%56").size() != 0);
64
+ assert.ok(fsm.morphologicalAnalysis("2:3").size() != 0);
65
+ assert.ok(fsm.morphologicalAnalysis("12:3").size() != 0);
66
+ assert.ok(fsm.morphologicalAnalysis("4:23").size() != 0);
67
+ assert.ok(fsm.morphologicalAnalysis("11:56").size() != 0);
68
+ assert.ok(fsm.morphologicalAnalysis("1:2:3").size() != 0);
69
+ assert.ok(fsm.morphologicalAnalysis("3:12:3").size() != 0);
70
+ assert.ok(fsm.morphologicalAnalysis("5:4:23").size() != 0);
71
+ assert.ok(fsm.morphologicalAnalysis("7:11:56").size() != 0);
72
+ assert.ok(fsm.morphologicalAnalysis("12:2:3").size() != 0);
73
+ assert.ok(fsm.morphologicalAnalysis("10:12:3").size() != 0);
74
+ assert.ok(fsm.morphologicalAnalysis("11:4:23").size() != 0);
75
+ assert.ok(fsm.morphologicalAnalysis("22:11:56").size() != 0);
76
+ assert.ok(fsm.morphologicalAnalysis("45").size() != 0);
77
+ assert.ok(fsm.morphologicalAnalysis("34.23").size() != 0);
78
+ });
79
+ it('morphologicalAnalysisProperNoun', function () {
80
+ var dictionary = fsm.getDictionary();
81
+ for (var i = 0; i < 30000; i++) {
82
+ var word = dictionary.getWord(Math.floor(Math.random() * dictionary.size()));
83
+ if (word.isProperNoun()) {
84
+ assert.ok(fsm.morphologicalAnalysis(word.getName().toLocaleUpperCase("tr")).size() != 0);
85
+ }
86
+ }
87
+ });
88
+ it('morphologicalAnalysisNounSoftenDuringSuffixation', function () {
89
+ var dictionary = fsm.getDictionary();
90
+ for (var i = 0; i < dictionary.size(); i++) {
91
+ var word = dictionary.getWord(i);
92
+ if (word.isNominal() && word.nounSoftenDuringSuffixation()) {
93
+ var transitionState = new State_1.State("Possessive", false, false);
94
+ var startState = new State_1.State("NominalRoot", true, false);
95
+ var transition = new Transition_1.Transition("yH", "ACC", transitionState);
96
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
97
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
98
+ }
99
+ }
100
+ });
101
+ it('morphologicalAnalysisVowelAChangesToIDuringYSuffixation', function () {
102
+ var dictionary = fsm.getDictionary();
103
+ for (var i = 0; i < dictionary.size(); i++) {
104
+ var word = dictionary.getWord(i);
105
+ if (word.isVerb() && word.vowelAChangesToIDuringYSuffixation()) {
106
+ var transitionState = new State_1.State("VerbalStem", false, false);
107
+ var startState = new State_1.State("VerbalRoot", true, false);
108
+ var transition = new Transition_1.Transition("Hyor", "PROG1", transitionState);
109
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
110
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
111
+ }
112
+ }
113
+ });
114
+ it('morphologicalAnalysisIsPortmanteau', function () {
115
+ var dictionary = fsm.getDictionary();
116
+ for (var i = 0; i < dictionary.size(); i++) {
117
+ var word = dictionary.getWord(i);
118
+ if (word.isNominal() && word.isPortmanteau() && !word.isPlural() && !word.isPortmanteauFacedVowelEllipsis()) {
119
+ var transitionState = new State_1.State("CompoundNounRoot", true, false);
120
+ var startState = new State_1.State("CompoundNounRoot", true, false);
121
+ var transition = new Transition_1.Transition("lArH", "A3PL+P3PL", transitionState);
122
+ var exceptLast2 = word.getName().substring(0, word.getName().length - 2);
123
+ var exceptLast = word.getName().substring(0, word.getName().length - 1);
124
+ var rootForm = void 0;
125
+ if (word.isPortmanteauFacedSoftening()) {
126
+ switch (word.getName().charAt(word.getName().length - 2)) {
127
+ case 'b':
128
+ rootForm = exceptLast2 + 'p';
129
+ break;
130
+ case 'c':
131
+ rootForm = exceptLast2 + 'ç';
132
+ break;
133
+ case 'd':
134
+ rootForm = exceptLast2 + 't';
135
+ break;
136
+ case 'ğ':
137
+ rootForm = exceptLast2 + 'k';
138
+ break;
139
+ default:
140
+ rootForm = exceptLast;
141
+ }
142
+ }
143
+ else {
144
+ if (word.isPortmanteauEndingWithSI()) {
145
+ rootForm = exceptLast2;
146
+ }
147
+ else {
148
+ rootForm = exceptLast;
149
+ }
150
+ }
151
+ var surfaceForm = transition.makeTransition(word, rootForm, startState);
152
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
153
+ }
154
+ }
155
+ });
156
+ it('morphologicalAnalysisNotObeysVowelHarmonyDuringAgglutination', function () {
157
+ var dictionary = fsm.getDictionary();
158
+ for (var i = 0; i < dictionary.size(); i++) {
159
+ var word = dictionary.getWord(i);
160
+ if (word.isNominal() && word.notObeysVowelHarmonyDuringAgglutination()) {
161
+ var transitionState = new State_1.State("Possessive", false, false);
162
+ var startState = new State_1.State("NominalRoot", true, false);
163
+ var transition = new Transition_1.Transition("yH", "ACC", transitionState);
164
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
165
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
166
+ }
167
+ }
168
+ });
169
+ it('morphologicalAnalysisLastIdropsDuringSuffixation', function () {
170
+ var dictionary = fsm.getDictionary();
171
+ for (var i = 0; i < dictionary.size(); i++) {
172
+ var word = dictionary.getWord(i);
173
+ if (word.isNominal() && word.lastIdropsDuringSuffixation()) {
174
+ var transitionState = new State_1.State("Possessive", false, false);
175
+ var startState = new State_1.State("NominalRoot", true, false);
176
+ var transition = new Transition_1.Transition("yH", "ACC", transitionState);
177
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
178
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
179
+ }
180
+ }
181
+ });
182
+ it('morphologicalAnalysisVerbSoftenDuringSuffixation', function () {
183
+ var dictionary = fsm.getDictionary();
184
+ for (var i = 0; i < dictionary.size(); i++) {
185
+ var word = dictionary.getWord(i);
186
+ if (word.isVerb() && word.verbSoftenDuringSuffixation()) {
187
+ var transitionState = new State_1.State("VerbalStem", false, false);
188
+ var startState = new State_1.State("VerbalRoot", true, false);
189
+ var transition = new Transition_1.Transition("Hyor", "PROG1", transitionState);
190
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
191
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
192
+ }
193
+ }
194
+ });
195
+ it('morphologicalAnalysisDuplicatesDuringSuffixation', function () {
196
+ var dictionary = fsm.getDictionary();
197
+ for (var i = 0; i < dictionary.size(); i++) {
198
+ var word = dictionary.getWord(i);
199
+ if (word.isNominal() && word.duplicatesDuringSuffixation()) {
200
+ var transitionState = new State_1.State("Possessive", false, false);
201
+ var startState = new State_1.State("NominalRoot", true, false);
202
+ var transition = new Transition_1.Transition("yH", "ACC", transitionState);
203
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
204
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
205
+ }
206
+ }
207
+ });
208
+ it('morphologicalAnalysisEndingKChangesIntoG', function () {
209
+ var dictionary = fsm.getDictionary();
210
+ for (var i = 0; i < dictionary.size(); i++) {
211
+ var word = dictionary.getWord(i);
212
+ if (word.isNominal() && word.endingKChangesIntoG()) {
213
+ var transitionState = new State_1.State("Possessive", false, false);
214
+ var startState = new State_1.State("NominalRoot", true, false);
215
+ var transition = new Transition_1.Transition("yH", "ACC", transitionState);
216
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
217
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
218
+ }
219
+ }
220
+ });
221
+ it('morphologicalAnalysisLastIdropsDuringPassiveSuffixation', function () {
222
+ var dictionary = fsm.getDictionary();
223
+ for (var i = 0; i < dictionary.size(); i++) {
224
+ var word = dictionary.getWord(i);
225
+ if (word.isVerb() && word.lastIdropsDuringPassiveSuffixation()) {
226
+ var transitionState = new State_1.State("VerbalStem", false, false);
227
+ var startState = new State_1.State("VerbalRoot", true, false);
228
+ var transition = new Transition_1.Transition("Hl", "^DB+VERB+PASS", transitionState);
229
+ var surfaceForm = transition.makeTransition(word, word.getName(), startState);
230
+ assert.ok(fsm.morphologicalAnalysis(surfaceForm).size() != 0);
231
+ }
232
+ }
233
+ });
234
+ it('testReplaceWord', function () {
235
+ assert.strictEqual("Şvesterine söyle kazağı güzelmiş", fsm.replaceWord(new Sentence_1.Sentence("Hemşirene söyle kazağı güzelmiş"), "hemşire", "şvester").toString());
236
+ assert.strictEqual("Burada çok abartma var", fsm.replaceWord(new Sentence_1.Sentence("Burada çok mübalağa var"), "mübalağa", "abartma").toString());
237
+ assert.strictEqual("Bu bina çok kötü şekilsizleştirildi", fsm.replaceWord(new Sentence_1.Sentence("Bu bina çok kötü biçimsizleştirildi"), "biçimsizleş", "şekilsizleş").toString());
238
+ assert.strictEqual("Abim geçen yıl ölmüştü gibi", fsm.replaceWord(new Sentence_1.Sentence("Abim geçen yıl son yolculuğa çıkmıştı gibi"), "son yolculuğa çık", "öl").toString());
239
+ assert.strictEqual("Hemşirenle evlendim", fsm.replaceWord(new Sentence_1.Sentence("Kız kardeşinle evlendim"), "kız kardeş", "hemşire").toString());
240
+ assert.strictEqual("Dün yaptığı güreş maçında yenildi", fsm.replaceWord(new Sentence_1.Sentence("Dün yaptığı güreş maçında mağlup oldu"), "mağlup ol", "yenil").toString());
241
+ assert.strictEqual("Abim geçen yıl son yolculuğa çıkmıştı gibi", fsm.replaceWord(new Sentence_1.Sentence("Abim geçen yıl ölmüştü gibi"), "öl", "son yolculuğa çık").toString());
242
+ assert.strictEqual("Kız kardeşinle evlendim", fsm.replaceWord(new Sentence_1.Sentence("Hemşirenle evlendim"), "hemşire", "kız kardeş").toString());
243
+ assert.strictEqual("Dün yaptığı güreş maçında mağlup oldu", fsm.replaceWord(new Sentence_1.Sentence("Dün yaptığı güreş maçında yenildi"), "yenil", "mağlup ol").toString());
244
+ assert.strictEqual("Dün yaptığı güreş maçında alt oldu sanki", fsm.replaceWord(new Sentence_1.Sentence("Dün yaptığı güreş maçında mağlup oldu sanki"), "mağlup ol", "alt ol").toString());
245
+ assert.strictEqual("Yemin billah vermişlerdi vazoyu kırmadığına", fsm.replaceWord(new Sentence_1.Sentence("Yemin etmişlerdi vazoyu kırmadığına"), "yemin et", "yemin billah ver").toString());
246
+ assert.strictEqual("Yemin etmişlerdi vazoyu kırmadığına", fsm.replaceWord(new Sentence_1.Sentence("Yemin billah vermişlerdi vazoyu kırmadığına"), "yemin billah ver", "yemin et").toString());
247
+ });
248
+ });
249
+ });
250
+ //# sourceMappingURL=FsmMorphologicalAnalyzerTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsmMorphologicalAnalyzerTest.js","sourceRoot":"","sources":["FsmMorphologicalAnalyzerTest.ts"],"names":[],"mappings":"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"}
@@ -37,12 +37,18 @@ describe('FsmMorphologicalAnalyzerTest', function() {
37
37
  });
38
38
 
39
39
  it('morphologicalAnalysisSpecialProperNoun', function() {
40
- assert.ok(fsm.morphologicalAnalysis("Times'ın").size() != 0);
41
- assert.ok(fsm.morphologicalAnalysis("Times'tır").size() != 0);
42
- assert.ok(fsm.morphologicalAnalysis("Times'mış").size() != 0);
43
- assert.ok(fsm.morphologicalAnalysis("Twitter'ın").size() != 0);
44
- assert.ok(fsm.morphologicalAnalysis("Twitter'dır").size() != 0);
45
- assert.ok(fsm.morphologicalAnalysis("Twitter'mış").size() != 0);
40
+ assert.ok(fsm.morphologicalAnalysis("TL").size() != 0);
41
+ assert.ok(fsm.morphologicalAnalysis("Won'u").size() != 0);
42
+ assert.ok(fsm.morphologicalAnalysis("Slack'in").size() != 0);
43
+ assert.ok(fsm.morphologicalAnalysis("SPK'ya").size() != 0);
44
+ assert.ok(fsm.morphologicalAnalysis("Stephen'ın").size() != 0);
45
+ });
46
+
47
+ it('morphologicalAnalysisNewWords', function() {
48
+ assert.ok(fsm.robustMorphologicalAnalysis("googlecılardan").size() == 6);
49
+ assert.ok(fsm.robustMorphologicalAnalysis("zaptıraplaştırılmayana").size() == 8);
50
+ assert.ok(fsm.robustMorphologicalAnalysis("abzürtleşenmiş").size() == 5);
51
+ assert.ok(fsm.robustMorphologicalAnalysis("vışlığından").size() == 8);
46
52
  });
47
53
 
48
54
  it('morphologicalAnalysisDataTimeNumber', function() {
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var assert = require("assert");
4
+ var FsmMorphologicalAnalyzer_1 = require("../dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer");
5
+ var Word_1 = require("nlptoolkit-dictionary/dist/Dictionary/Word");
6
+ describe('FsmParseTest', function () {
7
+ describe('FsmParseTest', function () {
8
+ var fsm = new FsmMorphologicalAnalyzer_1.FsmMorphologicalAnalyzer();
9
+ var parse1 = fsm.morphologicalAnalysis("açılır");
10
+ var parse2 = fsm.morphologicalAnalysis("koparılarak");
11
+ var parse3 = fsm.morphologicalAnalysis("toplama");
12
+ var parse4 = fsm.morphologicalAnalysis("değerlendirmede");
13
+ var parse5 = fsm.morphologicalAnalysis("soruşturmasının");
14
+ var parse6 = fsm.morphologicalAnalysis("karşılaştırmalı");
15
+ var parse7 = fsm.morphologicalAnalysis("esaslarını");
16
+ var parse8 = fsm.morphologicalAnalysis("güçleriyle");
17
+ var parse9 = fsm.morphologicalAnalysis("bulmayacakları");
18
+ var parse10 = fsm.morphologicalAnalysis("kitabı");
19
+ var parse11 = fsm.morphologicalAnalysis("kitapları");
20
+ var parse12 = fsm.morphologicalAnalysis("o");
21
+ var parse13 = fsm.morphologicalAnalysis("arabası");
22
+ var parse14 = fsm.morphologicalAnalysis("sana");
23
+ var parse15 = fsm.morphologicalAnalysis("açacağını");
24
+ var parse16 = fsm.morphologicalAnalysis("kollarımız");
25
+ var parse17 = fsm.morphologicalAnalysis("yapmamızı");
26
+ var parse18 = fsm.morphologicalAnalysis("koşmalıyız");
27
+ it('testSize', function () {
28
+ assert.strictEqual(2, parse1.size());
29
+ assert.strictEqual(2, parse2.size());
30
+ assert.strictEqual(6, parse3.size());
31
+ assert.strictEqual(4, parse4.size());
32
+ assert.strictEqual(5, parse5.size());
33
+ assert.strictEqual(12, parse6.size());
34
+ assert.strictEqual(8, parse7.size());
35
+ assert.strictEqual(6, parse8.size());
36
+ assert.strictEqual(5, parse9.size());
37
+ assert.strictEqual(4, parse14.size());
38
+ });
39
+ it('testRootWords', function () {
40
+ assert.strictEqual("aç", parse1.rootWords());
41
+ assert.strictEqual("kop$kopar", parse2.rootWords());
42
+ assert.strictEqual("topla$toplam$toplama", parse3.rootWords());
43
+ assert.strictEqual("değer$değerlen$değerlendir$değerlendirme", parse4.rootWords());
44
+ assert.strictEqual("sor$soru$soruş$soruştur$soruşturma", parse5.rootWords());
45
+ assert.strictEqual("karşı$karşıla$karşılaş$karşılaştır$karşılaştırma$karşılaştırmalı", parse6.rootWords());
46
+ assert.strictEqual("esas", parse7.rootWords());
47
+ assert.strictEqual("güç", parse8.rootWords());
48
+ assert.strictEqual("bul", parse9.rootWords());
49
+ });
50
+ it('testGetParseWithLongestRootWord', function () {
51
+ assert.strictEqual("kopar", parse2.getParseWithLongestRootWord().getWord().getName());
52
+ assert.strictEqual("toplama", parse3.getParseWithLongestRootWord().getWord().getName());
53
+ assert.strictEqual("değerlendirme", parse4.getParseWithLongestRootWord().getWord().getName());
54
+ assert.strictEqual("soruşturma", parse5.getParseWithLongestRootWord().getWord().getName());
55
+ assert.strictEqual("karşılaştırmalı", parse6.getParseWithLongestRootWord().getWord().getName());
56
+ assert.strictEqual("aç", parse15.getParseWithLongestRootWord().getWord().getName());
57
+ assert.strictEqual("kol", parse16.getParseWithLongestRootWord().getWord().getName());
58
+ assert.strictEqual("yap", parse17.getParseWithLongestRootWord().getWord().getName());
59
+ assert.strictEqual("koş", parse18.getParseWithLongestRootWord().getWord().getName());
60
+ });
61
+ it('testReduceToParsesWithSameRootAndPos', function () {
62
+ parse2.reduceToParsesWithSameRootAndPos(new Word_1.Word("kop+VERB"));
63
+ assert.strictEqual(1, parse2.size());
64
+ parse3.reduceToParsesWithSameRootAndPos(new Word_1.Word("topla+VERB"));
65
+ assert.strictEqual(2, parse3.size());
66
+ parse6.reduceToParsesWithSameRootAndPos(new Word_1.Word("karşıla+VERB"));
67
+ assert.strictEqual(2, parse6.size());
68
+ });
69
+ it('testReduceToParsesWithSameRoot', function () {
70
+ parse2.reduceToParsesWithSameRoot("kop");
71
+ assert.strictEqual(1, parse2.size());
72
+ parse3.reduceToParsesWithSameRoot("topla");
73
+ assert.strictEqual(3, parse3.size());
74
+ parse6.reduceToParsesWithSameRoot("karşı");
75
+ assert.strictEqual(4, parse6.size());
76
+ parse7.reduceToParsesWithSameRoot("esas");
77
+ assert.strictEqual(8, parse7.size());
78
+ parse8.reduceToParsesWithSameRoot("güç");
79
+ assert.strictEqual(6, parse8.size());
80
+ });
81
+ it('testConstructParseListForDifferentRootWithPos', function () {
82
+ assert.strictEqual(1, parse1.constructParseListForDifferentRootWithPos().length);
83
+ assert.strictEqual(2, parse2.constructParseListForDifferentRootWithPos().length);
84
+ assert.strictEqual(5, parse3.constructParseListForDifferentRootWithPos().length);
85
+ assert.strictEqual(4, parse4.constructParseListForDifferentRootWithPos().length);
86
+ assert.strictEqual(5, parse5.constructParseListForDifferentRootWithPos().length);
87
+ assert.strictEqual(7, parse6.constructParseListForDifferentRootWithPos().length);
88
+ assert.strictEqual(2, parse7.constructParseListForDifferentRootWithPos().length);
89
+ assert.strictEqual(2, parse8.constructParseListForDifferentRootWithPos().length);
90
+ assert.strictEqual(1, parse9.constructParseListForDifferentRootWithPos().length);
91
+ });
92
+ it('testParsesWithoutPrefixAndSuffix', function () {
93
+ assert.strictEqual("P3SG+NOM$PNON+ACC", parse10.parsesWithoutPrefixAndSuffix());
94
+ assert.strictEqual("A3PL+P3PL+NOM$A3PL+P3SG+NOM$A3PL+PNON+ACC$A3SG+P3PL+NOM", parse11.parsesWithoutPrefixAndSuffix());
95
+ assert.strictEqual("DET$PRON+DEMONSP+A3SG+PNON+NOM$PRON+PERS+A3SG+PNON+NOM", parse12.parsesWithoutPrefixAndSuffix());
96
+ assert.strictEqual("NOUN+A3SG+P3SG+NOM$NOUN^DB+ADJ+ALMOST", parse13.parsesWithoutPrefixAndSuffix());
97
+ });
98
+ });
99
+ });
100
+ //# sourceMappingURL=FsmParseListTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FsmParseListTest.js","sourceRoot":"","sources":["FsmParseListTest.ts"],"names":[],"mappings":"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"}