nlptoolkit-morphologicalanalysis 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +144 -0
  2. package/dist/Corpus/DisambiguatedWord.d.ts +20 -0
  3. package/dist/Corpus/DisambiguatedWord.js +38 -0
  4. package/dist/Corpus/DisambiguatedWord.js.map +1 -0
  5. package/dist/Corpus/DisambiguationCorpus.d.ts +4 -0
  6. package/dist/Corpus/DisambiguationCorpus.js +54 -0
  7. package/dist/Corpus/DisambiguationCorpus.js.map +1 -0
  8. package/dist/MorphologicalAnalysis/FiniteStateMachine.d.ts +63 -0
  9. package/dist/MorphologicalAnalysis/FiniteStateMachine.js +178 -0
  10. package/dist/MorphologicalAnalysis/FiniteStateMachine.js.map +1 -0
  11. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.d.ts +399 -0
  12. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js +1255 -0
  13. package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js.map +1 -0
  14. package/dist/MorphologicalAnalysis/FsmParse.d.ts +290 -0
  15. package/dist/MorphologicalAnalysis/FsmParse.js +684 -0
  16. package/dist/MorphologicalAnalysis/FsmParse.js.map +1 -0
  17. package/dist/MorphologicalAnalysis/FsmParseList.d.ts +96 -0
  18. package/dist/MorphologicalAnalysis/FsmParseList.js +242 -0
  19. package/dist/MorphologicalAnalysis/FsmParseList.js.map +1 -0
  20. package/dist/MorphologicalAnalysis/InflectionalGroup.d.ts +77 -0
  21. package/dist/MorphologicalAnalysis/InflectionalGroup.js +213 -0
  22. package/dist/MorphologicalAnalysis/InflectionalGroup.js.map +1 -0
  23. package/dist/MorphologicalAnalysis/MetamorphicParse.d.ts +63 -0
  24. package/dist/MorphologicalAnalysis/MetamorphicParse.js +592 -0
  25. package/dist/MorphologicalAnalysis/MetamorphicParse.js.map +1 -0
  26. package/dist/MorphologicalAnalysis/MorphologicalParse.d.ts +301 -0
  27. package/dist/MorphologicalAnalysis/MorphologicalParse.js +969 -0
  28. package/dist/MorphologicalAnalysis/MorphologicalParse.js.map +1 -0
  29. package/dist/MorphologicalAnalysis/MorphologicalTag.d.ts +510 -0
  30. package/dist/MorphologicalAnalysis/MorphologicalTag.js +525 -0
  31. package/dist/MorphologicalAnalysis/MorphologicalTag.js.map +1 -0
  32. package/dist/MorphologicalAnalysis/State.d.ts +40 -0
  33. package/dist/MorphologicalAnalysis/State.js +64 -0
  34. package/dist/MorphologicalAnalysis/State.js.map +1 -0
  35. package/dist/MorphologicalAnalysis/Transition.d.ts +159 -0
  36. package/dist/MorphologicalAnalysis/Transition.js +751 -0
  37. package/dist/MorphologicalAnalysis/Transition.js.map +1 -0
  38. package/index.js +12 -0
  39. package/package.json +30 -0
  40. package/penntreebank.txt +208431 -0
  41. package/source/Corpus/DisambiguatedWord.ts +29 -0
  42. package/source/Corpus/DisambiguationCorpus.ts +39 -0
  43. package/source/MorphologicalAnalysis/FiniteStateMachine.ts +165 -0
  44. package/source/MorphologicalAnalysis/FsmMorphologicalAnalyzer.ts +1256 -0
  45. package/source/MorphologicalAnalysis/FsmParse.ts +664 -0
  46. package/source/MorphologicalAnalysis/FsmParseList.ts +238 -0
  47. package/source/MorphologicalAnalysis/InflectionalGroup.ts +210 -0
  48. package/source/MorphologicalAnalysis/MetamorphicParse.ts +589 -0
  49. package/source/MorphologicalAnalysis/MorphologicalParse.ts +995 -0
  50. package/source/MorphologicalAnalysis/MorphologicalTag.ts +510 -0
  51. package/source/MorphologicalAnalysis/State.ts +59 -0
  52. package/source/MorphologicalAnalysis/Transition.ts +733 -0
  53. package/source/tsconfig.json +13 -0
  54. package/tests/DisambiguationCorpusTest.ts +12 -0
  55. package/tests/FiniteStateMachineTest.ts +87 -0
  56. package/tests/FsmMorphologicalAnalyzerTest.ts +204 -0
  57. package/tests/FsmParseListTest.ts +90 -0
  58. package/tests/FsmParseTest.ts +66 -0
  59. package/tests/InflectionalGroupTest.ts +84 -0
  60. package/tests/MorphologicalParseTest.ts +152 -0
  61. package/tests/TransitionTest.ts +174 -0
  62. package/tsconfig.json +15 -0
  63. package/turkish_dictionary.txt +62120 -0
  64. package/turkish_finite_state_machine.xml +1887 -0
  65. package/turkish_misspellings.txt +148932 -0
@@ -0,0 +1,152 @@
1
+ import * as assert from "assert";
2
+ import {MorphologicalParse} from "../dist/MorphologicalAnalysis/MorphologicalParse";
3
+
4
+ describe('MorphologicalParseTest', function() {
5
+ describe('MorphologicalParseTest', function() {
6
+ let parse1 = new MorphologicalParse("bayan+NOUN+A3SG+PNON+NOM");
7
+ let parse2 = new MorphologicalParse("yaşa+VERB+POS^DB+ADJ+PRESPART");
8
+ let parse3 = new MorphologicalParse("serbest+ADJ");
9
+ let parse4 = new MorphologicalParse("et+VERB^DB+VERB+PASS^DB+VERB+ABLE+NEG+AOR+A3SG");
10
+ let parse5 = new MorphologicalParse("sür+VERB^DB+VERB+CAUS^DB+VERB+PASS+POS^DB+NOUN+INF2+A3SG+P3SG+NOM");
11
+ let parse6 = new MorphologicalParse("değiş+VERB^DB+VERB+CAUS^DB+VERB+PASS+POS^DB+VERB+ABLE+AOR^DB+ADJ+ZERO");
12
+ let parse7 = new MorphologicalParse("iyi+ADJ^DB+VERB+BECOME^DB+VERB+CAUS^DB+VERB+PASS+POS^DB+VERB+ABLE^DB+NOUN+INF2+A3PL+P3PL+ABL");
13
+ let parse8 = new MorphologicalParse("değil+ADJ^DB+VERB+ZERO+PAST+A3SG");
14
+ let parse9 = new MorphologicalParse("hazır+ADJ^DB+VERB+ZERO+PAST+A3SG");
15
+ it('testGetTransitionList', function() {
16
+ assert.strictEqual("NOUN+A3SG+PNON+NOM", parse1.getMorphologicalParseTransitionList());
17
+ assert.strictEqual("VERB+POS+ADJ+PRESPART", parse2.getMorphologicalParseTransitionList());
18
+ assert.strictEqual("ADJ", parse3.getMorphologicalParseTransitionList());
19
+ assert.strictEqual("VERB+VERB+PASS+VERB+ABLE+NEG+AOR+A3SG", parse4.getMorphologicalParseTransitionList());
20
+ assert.strictEqual("VERB+VERB+CAUS+VERB+PASS+POS+NOUN+INF2+A3SG+P3SG+NOM", parse5.getMorphologicalParseTransitionList());
21
+ assert.strictEqual("VERB+VERB+CAUS+VERB+PASS+POS+VERB+ABLE+AOR+ADJ+ZERO", parse6.getMorphologicalParseTransitionList());
22
+ assert.strictEqual("ADJ+VERB+BECOME+VERB+CAUS+VERB+PASS+POS+VERB+ABLE+NOUN+INF2+A3PL+P3PL+ABL", parse7.getMorphologicalParseTransitionList());
23
+ assert.strictEqual("ADJ+VERB+ZERO+PAST+A3SG", parse8.getMorphologicalParseTransitionList());
24
+ });
25
+ it('testGetTag', function() {
26
+ assert.strictEqual("A3SG", parse1.getTag(2));
27
+ assert.strictEqual("PRESPART", parse2.getTag(4));
28
+ assert.strictEqual("serbest", parse3.getTag(0));
29
+ assert.strictEqual("AOR", parse4.getTag(7));
30
+ assert.strictEqual("P3SG", parse5.getTag(10));
31
+ assert.strictEqual("ABLE", parse6.getTag(8));
32
+ assert.strictEqual("ABL", parse7.getTag(15));
33
+ });
34
+ it('testGetTagSize', function() {
35
+ assert.strictEqual(5, parse1.tagSize());
36
+ assert.strictEqual(5, parse2.tagSize());
37
+ assert.strictEqual(2, parse3.tagSize());
38
+ assert.strictEqual(9, parse4.tagSize());
39
+ assert.strictEqual(12, parse5.tagSize());
40
+ assert.strictEqual(12, parse6.tagSize());
41
+ assert.strictEqual(16, parse7.tagSize());
42
+ assert.strictEqual(6, parse8.tagSize());
43
+ });
44
+ it('testSize', function() {
45
+ assert.strictEqual(1, parse1.size());
46
+ assert.strictEqual(2, parse2.size());
47
+ assert.strictEqual(1, parse3.size());
48
+ assert.strictEqual(3, parse4.size());
49
+ assert.strictEqual(4, parse5.size());
50
+ assert.strictEqual(5, parse6.size());
51
+ assert.strictEqual(6, parse7.size());
52
+ assert.strictEqual(2, parse8.size());
53
+ });
54
+ it('testGetRootPos', function() {
55
+ assert.strictEqual("NOUN", parse1.getRootPos());
56
+ assert.strictEqual("VERB", parse2.getRootPos());
57
+ assert.strictEqual("ADJ", parse3.getRootPos());
58
+ assert.strictEqual("VERB", parse4.getRootPos());
59
+ assert.strictEqual("VERB", parse5.getRootPos());
60
+ assert.strictEqual("VERB", parse6.getRootPos());
61
+ assert.strictEqual("ADJ", parse7.getRootPos());
62
+ assert.strictEqual("ADJ", parse8.getRootPos());
63
+ });
64
+ it('testGetPos', function() {
65
+ assert.strictEqual("NOUN", parse1.getPos());
66
+ assert.strictEqual("ADJ", parse2.getPos());
67
+ assert.strictEqual("ADJ", parse3.getPos());
68
+ assert.strictEqual("VERB", parse4.getPos());
69
+ assert.strictEqual("NOUN", parse5.getPos());
70
+ assert.strictEqual("ADJ", parse6.getPos());
71
+ assert.strictEqual("NOUN", parse7.getPos());
72
+ assert.strictEqual("VERB", parse8.getPos());
73
+ });
74
+ it('testGetWordWithPos', function() {
75
+ assert.strictEqual("bayan+NOUN", parse1.getWordWithPos().getName());
76
+ assert.strictEqual("yaşa+VERB", parse2.getWordWithPos().getName());
77
+ assert.strictEqual("serbest+ADJ", parse3.getWordWithPos().getName());
78
+ assert.strictEqual("et+VERB", parse4.getWordWithPos().getName());
79
+ assert.strictEqual("sür+VERB", parse5.getWordWithPos().getName());
80
+ assert.strictEqual("değiş+VERB", parse6.getWordWithPos().getName());
81
+ assert.strictEqual("iyi+ADJ", parse7.getWordWithPos().getName());
82
+ assert.strictEqual("değil+ADJ", parse8.getWordWithPos().getName());
83
+ });
84
+ it('testLastIGContainsCase', function() {
85
+ assert.strictEqual("NOM", parse1.lastIGContainsCase());
86
+ assert.strictEqual("NULL", parse2.lastIGContainsCase());
87
+ assert.strictEqual("NULL", parse3.lastIGContainsCase());
88
+ assert.strictEqual("NULL", parse4.lastIGContainsCase());
89
+ assert.strictEqual("NOM", parse5.lastIGContainsCase());
90
+ assert.strictEqual("NULL", parse6.lastIGContainsCase());
91
+ assert.strictEqual("ABL", parse7.lastIGContainsCase());
92
+ });
93
+ it('testLastIGContainsPossessive', function() {
94
+ assert.ok(!parse1.lastIGContainsPossessive());
95
+ assert.ok(!parse2.lastIGContainsPossessive());
96
+ assert.ok(!parse3.lastIGContainsPossessive());
97
+ assert.ok(!parse4.lastIGContainsPossessive());
98
+ assert.ok(parse5.lastIGContainsPossessive());
99
+ assert.ok(!parse6.lastIGContainsPossessive());
100
+ assert.ok(parse7.lastIGContainsPossessive());
101
+ });
102
+ it('testIsPlural', function() {
103
+ assert.ok(!parse1.isPlural());
104
+ assert.ok(!parse2.isPlural());
105
+ assert.ok(!parse3.isPlural());
106
+ assert.ok(!parse4.isPlural());
107
+ assert.ok(!parse5.isPlural());
108
+ assert.ok(!parse6.isPlural());
109
+ assert.ok(parse7.isPlural());
110
+ });
111
+ it('testIsAuxiliary', function() {
112
+ assert.ok(!parse1.isAuxiliary());
113
+ assert.ok(!parse2.isAuxiliary());
114
+ assert.ok(!parse3.isAuxiliary());
115
+ assert.ok(parse4.isAuxiliary());
116
+ assert.ok(!parse5.isAuxiliary());
117
+ assert.ok(!parse6.isAuxiliary());
118
+ assert.ok(!parse7.isAuxiliary());
119
+ });
120
+ it('testIsNoun', function() {
121
+ assert.ok(parse1.isNoun());
122
+ assert.ok(parse5.isNoun());
123
+ assert.ok(parse7.isNoun());
124
+ });
125
+ it('testIsAdjective', function() {
126
+ assert.ok(parse2.isAdjective());
127
+ assert.ok(parse3.isAdjective());
128
+ assert.ok(parse6.isAdjective());
129
+ });
130
+ it('testIsVerb', function() {
131
+ assert.ok(parse4.isVerb());
132
+ assert.ok(parse8.isVerb());
133
+ });
134
+ it('testIsRootVerb', function() {
135
+ assert.ok(parse2.isRootVerb());
136
+ assert.ok(parse4.isRootVerb());
137
+ assert.ok(parse5.isRootVerb());
138
+ assert.ok(parse6.isRootVerb());
139
+ });
140
+ it('testGetTreePos', function() {
141
+ assert.strictEqual("NP", parse1.getTreePos());
142
+ assert.strictEqual("ADJP", parse2.getTreePos());
143
+ assert.strictEqual("ADJP", parse3.getTreePos());
144
+ assert.strictEqual("VP", parse4.getTreePos());
145
+ assert.strictEqual("NP", parse5.getTreePos());
146
+ assert.strictEqual("ADJP", parse6.getTreePos());
147
+ assert.strictEqual("NP", parse7.getTreePos());
148
+ assert.strictEqual("NEG", parse8.getTreePos());
149
+ assert.strictEqual("NOMP", parse9.getTreePos());
150
+ });
151
+ });
152
+ });
@@ -0,0 +1,174 @@
1
+ import * as assert from "assert";
2
+ import {FsmMorphologicalAnalyzer} from "../dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer";
3
+
4
+ describe('TransitionTest', function() {
5
+ describe('TransitionTest', function() {
6
+ let fsm = new FsmMorphologicalAnalyzer();
7
+ it('testNumberWithAccusative', function() {
8
+ assert.ok(fsm.morphologicalAnalysis("2'yi").size() != 0);
9
+ assert.strictEqual(0, fsm.morphologicalAnalysis("2'i").size());
10
+ assert.ok(fsm.morphologicalAnalysis("5'i").size() != 0);
11
+ assert.ok(fsm.morphologicalAnalysis("9'u").size() != 0);
12
+ assert.ok(fsm.morphologicalAnalysis("10'u").size() != 0);
13
+ assert.ok(fsm.morphologicalAnalysis("30'u").size() != 0);
14
+ assert.ok(fsm.morphologicalAnalysis("3'ü").size() != 0);
15
+ assert.ok(fsm.morphologicalAnalysis("4'ü").size() != 0);
16
+ assert.ok(fsm.morphologicalAnalysis("100'ü").size() != 0);
17
+ assert.ok(fsm.morphologicalAnalysis("6'yı").size() != 0);
18
+ assert.strictEqual(0, fsm.morphologicalAnalysis("6'ı").size());
19
+ assert.ok(fsm.morphologicalAnalysis("40'ı").size() != 0);
20
+ assert.ok(fsm.morphologicalAnalysis("60'ı").size() != 0);
21
+ assert.ok(fsm.morphologicalAnalysis("90'ı").size() != 0);
22
+ });
23
+ it('testNumberWithDative', function() {
24
+ assert.ok(fsm.morphologicalAnalysis("6'ya").size() != 0);
25
+ assert.strictEqual(0, fsm.morphologicalAnalysis("6'a").size());
26
+ assert.ok(fsm.morphologicalAnalysis("9'a").size() != 0);
27
+ assert.ok(fsm.morphologicalAnalysis("10'a").size() != 0);
28
+ assert.ok(fsm.morphologicalAnalysis("30'a").size() != 0);
29
+ assert.ok(fsm.morphologicalAnalysis("40'a").size() != 0);
30
+ assert.ok(fsm.morphologicalAnalysis("60'a").size() != 0);
31
+ assert.ok(fsm.morphologicalAnalysis("90'a").size() != 0);
32
+ assert.ok(fsm.morphologicalAnalysis("2'ye").size() != 0);
33
+ assert.strictEqual(0, fsm.morphologicalAnalysis("2'e").size());
34
+ assert.ok(fsm.morphologicalAnalysis("8'e").size() != 0);
35
+ assert.ok(fsm.morphologicalAnalysis("5'e").size() != 0);
36
+ assert.ok(fsm.morphologicalAnalysis("4'e").size() != 0);
37
+ assert.ok(fsm.morphologicalAnalysis("1'e").size() != 0);
38
+ assert.ok(fsm.morphologicalAnalysis("3'e").size() != 0);
39
+ assert.ok(fsm.morphologicalAnalysis("7'ye").size() != 0);
40
+ assert.strictEqual(0, fsm.morphologicalAnalysis("7'e").size());
41
+ });
42
+ it('testPresentTense', function() {
43
+ assert.ok(fsm.morphologicalAnalysis("büyülüyor").size() != 0);
44
+ assert.ok(fsm.morphologicalAnalysis("bölümlüyor").size() != 0);
45
+ assert.ok(fsm.morphologicalAnalysis("buğuluyor").size() != 0);
46
+ assert.ok(fsm.morphologicalAnalysis("bulguluyor").size() != 0);
47
+ assert.ok(fsm.morphologicalAnalysis("açıklıyor").size() != 0);
48
+ assert.ok(fsm.morphologicalAnalysis("çalkalıyor").size() != 0);
49
+ });
50
+ it('testA', function() {
51
+ assert.ok(fsm.morphologicalAnalysis("alkole").size() != 0);
52
+ assert.ok(fsm.morphologicalAnalysis("anormale").size() != 0);
53
+ assert.ok(fsm.morphologicalAnalysis("sakala").size() != 0);
54
+ assert.ok(fsm.morphologicalAnalysis("kabala").size() != 0);
55
+ assert.ok(fsm.morphologicalAnalysis("faika").size() != 0);
56
+ assert.ok(fsm.morphologicalAnalysis("halika").size() != 0);
57
+ assert.ok(fsm.morphologicalAnalysis("kediye").size() != 0);
58
+ assert.ok(fsm.morphologicalAnalysis("eve").size() != 0);
59
+ });
60
+ it('testC', function() {
61
+ assert.ok(fsm.morphologicalAnalysis("gripçi").size() != 0);
62
+ assert.ok(fsm.morphologicalAnalysis("güllaççı").size() != 0);
63
+ assert.ok(fsm.morphologicalAnalysis("gülütçü").size() != 0);
64
+ assert.ok(fsm.morphologicalAnalysis("gülükçü").size() != 0);
65
+ });
66
+ it('testSH', function() {
67
+ assert.ok(fsm.morphologicalAnalysis("altışar").size() != 0);
68
+ assert.ok(fsm.morphologicalAnalysis("yedişer").size() != 0);
69
+ assert.ok(fsm.morphologicalAnalysis("üçer").size() != 0);
70
+ assert.ok(fsm.morphologicalAnalysis("beşer").size() != 0);
71
+ assert.ok(fsm.morphologicalAnalysis("dörder").size() != 0);
72
+ });
73
+ it('testNumberWithD', function() {
74
+ assert.ok(fsm.morphologicalAnalysis("1'di").size() != 0);
75
+ assert.ok(fsm.morphologicalAnalysis("2'ydi").size() != 0);
76
+ assert.ok(fsm.morphologicalAnalysis("3'tü").size() != 0);
77
+ assert.ok(fsm.morphologicalAnalysis("4'tü").size() != 0);
78
+ assert.ok(fsm.morphologicalAnalysis("5'ti").size() != 0);
79
+ assert.ok(fsm.morphologicalAnalysis("6'ydı").size() != 0);
80
+ assert.ok(fsm.morphologicalAnalysis("7'ydi").size() != 0);
81
+ assert.ok(fsm.morphologicalAnalysis("8'di").size() != 0);
82
+ assert.ok(fsm.morphologicalAnalysis("9'du").size() != 0);
83
+ assert.ok(fsm.morphologicalAnalysis("30'du").size() != 0);
84
+ assert.ok(fsm.morphologicalAnalysis("40'tı").size() != 0);
85
+ assert.ok(fsm.morphologicalAnalysis("60'tı").size() != 0);
86
+ assert.ok(fsm.morphologicalAnalysis("70'ti").size() != 0);
87
+ assert.ok(fsm.morphologicalAnalysis("50'ydi").size() != 0);
88
+ });
89
+ it('testD', function() {
90
+ assert.ok(fsm.morphologicalAnalysis("koştu").size() != 0);
91
+ assert.ok(fsm.morphologicalAnalysis("kitaptı").size() != 0);
92
+ assert.ok(fsm.morphologicalAnalysis("kaçtı").size() != 0);
93
+ assert.ok(fsm.morphologicalAnalysis("evdi").size() != 0);
94
+ assert.ok(fsm.morphologicalAnalysis("fraktı").size() != 0);
95
+ assert.ok(fsm.morphologicalAnalysis("sattı").size() != 0);
96
+ assert.ok(fsm.morphologicalAnalysis("aftı").size() != 0);
97
+ assert.ok(fsm.morphologicalAnalysis("kesti").size() != 0);
98
+ assert.ok(fsm.morphologicalAnalysis("ahtı").size() != 0);
99
+ });
100
+ it('testExceptions', function() {
101
+ assert.ok(fsm.morphologicalAnalysis("yiyip").size() != 0);
102
+ assert.ok(fsm.morphologicalAnalysis("sana").size() != 0);
103
+ assert.ok(fsm.morphologicalAnalysis("bununla").size() != 0);
104
+ assert.strictEqual(0, fsm.morphologicalAnalysis("buyla").size());
105
+ assert.ok(fsm.morphologicalAnalysis("onunla").size() != 0);
106
+ assert.ok(fsm.morphologicalAnalysis("şununla").size() != 0);
107
+ assert.strictEqual(0, fsm.morphologicalAnalysis("şuyla").size());
108
+ assert.ok(fsm.morphologicalAnalysis("bana").size() != 0);
109
+ });
110
+ it('testVowelEChangesToIDuringYSuffixation', function() {
111
+ assert.ok(fsm.morphologicalAnalysis("diyor").size() != 0);
112
+ assert.ok(fsm.morphologicalAnalysis("yiyor").size() != 0);
113
+ });
114
+ it('testLastIdropsDuringPassiveSuffixation', function() {
115
+ assert.ok(fsm.morphologicalAnalysis("yoğruldu").size() != 0);
116
+ assert.ok(fsm.morphologicalAnalysis("buyruldu").size() != 0);
117
+ });
118
+ it('testShowsSuRegularities', function() {
119
+ assert.ok(fsm.morphologicalAnalysis("karasuyu").size() != 0);
120
+ assert.ok(fsm.morphologicalAnalysis("suyu").size() != 0);
121
+ });
122
+ it('testDuplicatesDuringSuffixation', function() {
123
+ assert.ok(fsm.morphologicalAnalysis("tıbbı").size() != 0);
124
+ assert.ok(fsm.morphologicalAnalysis("ceddi").size() != 0);
125
+ assert.ok(fsm.morphologicalAnalysis("zıddı").size() != 0);
126
+ assert.ok(fsm.morphologicalAnalysis("serhaddi").size() != 0);
127
+ assert.ok(fsm.morphologicalAnalysis("fenni").size() != 0);
128
+ assert.ok(fsm.morphologicalAnalysis("haddi").size() != 0);
129
+ assert.ok(fsm.morphologicalAnalysis("hazzı").size() != 0);
130
+ assert.ok(fsm.morphologicalAnalysis("şakkı").size() != 0);
131
+ assert.ok(fsm.morphologicalAnalysis("şakı").size() != 0);
132
+ assert.ok(fsm.morphologicalAnalysis("halli").size() != 0);
133
+ assert.ok(fsm.morphologicalAnalysis("hali").size() != 0);
134
+ });
135
+ it('testLastIdropsDuringSuffixation', function() {
136
+ assert.ok(fsm.morphologicalAnalysis("hizbi").size() != 0);
137
+ assert.ok(fsm.morphologicalAnalysis("kaybı").size() != 0);
138
+ assert.ok(fsm.morphologicalAnalysis("ahdi").size() != 0);
139
+ assert.ok(fsm.morphologicalAnalysis("nesci").size() != 0);
140
+ assert.ok(fsm.morphologicalAnalysis("zehri").size() != 0);
141
+ assert.ok(fsm.morphologicalAnalysis("zikri").size() != 0);
142
+ assert.ok(fsm.morphologicalAnalysis("metni").size() != 0);
143
+ assert.ok(fsm.morphologicalAnalysis("metini").size() != 0);
144
+ assert.ok(fsm.morphologicalAnalysis("katli").size() != 0);
145
+ assert.ok(fsm.morphologicalAnalysis("katili").size() != 0);
146
+ });
147
+ it('testNounSoftenDuringSuffixation', function() {
148
+ assert.ok(fsm.morphologicalAnalysis("adabı").size() != 0);
149
+ assert.ok(fsm.morphologicalAnalysis("amibi").size() != 0);
150
+ assert.ok(fsm.morphologicalAnalysis("armudu").size() != 0);
151
+ assert.ok(fsm.morphologicalAnalysis("ağacı").size() != 0);
152
+ assert.ok(fsm.morphologicalAnalysis("akacı").size() != 0);
153
+ assert.ok(fsm.morphologicalAnalysis("arkeoloğu").size() != 0);
154
+ assert.ok(fsm.morphologicalAnalysis("filoloğu").size() != 0);
155
+ assert.ok(fsm.morphologicalAnalysis("ahengi").size() != 0);
156
+ assert.ok(fsm.morphologicalAnalysis("küngü").size() != 0);
157
+ assert.ok(fsm.morphologicalAnalysis("kitaplığı").size() != 0);
158
+ assert.ok(fsm.morphologicalAnalysis("küllüğü").size() != 0);
159
+ assert.ok(fsm.morphologicalAnalysis("adedi").size() != 0);
160
+ assert.ok(fsm.morphologicalAnalysis("adeti").size() != 0);
161
+ assert.ok(fsm.morphologicalAnalysis("ağıdı").size() != 0);
162
+ assert.ok(fsm.morphologicalAnalysis("ağıtı").size() != 0);
163
+ assert.ok(fsm.morphologicalAnalysis("anotu").size() != 0);
164
+ assert.ok(fsm.morphologicalAnalysis("anodu").size() != 0);
165
+ assert.ok(fsm.morphologicalAnalysis("Kuzguncuk'u").size() != 0);
166
+ assert.ok(fsm.morphologicalAnalysis("Leylak'ı").size() != 0);
167
+ });
168
+ it('testVerbSoftenDuringSuffixation', function() {
169
+ assert.ok(fsm.morphologicalAnalysis("cezbediyor").size() != 0);
170
+ assert.ok(fsm.morphologicalAnalysis("ediyor").size() != 0);
171
+ assert.ok(fsm.morphologicalAnalysis("bahsediyor").size() != 0);
172
+ });
173
+ });
174
+ });
package/tsconfig.json ADDED
@@ -0,0 +1,15 @@
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "target": "es5",
5
+ "sourceMap": true,
6
+ "noImplicitAny": true,
7
+ "removeComments": false,
8
+ "moduleResolution": "node"
9
+ },
10
+ "exclude": [
11
+ "source",
12
+ "node_modules",
13
+ "dist"
14
+ ]
15
+ }