nlptoolkit-morphologicalanalysis 1.0.18 → 1.0.20
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/Corpus/DisambiguatedWord.js +26 -35
- package/dist/Corpus/DisambiguatedWord.js.map +1 -1
- package/dist/Corpus/DisambiguationCorpus.js +70 -47
- package/dist/Corpus/DisambiguationCorpus.js.map +1 -1
- package/dist/MorphologicalAnalysis/FiniteStateMachine.js +148 -158
- package/dist/MorphologicalAnalysis/FiniteStateMachine.js.map +1 -1
- package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js +1281 -1254
- package/dist/MorphologicalAnalysis/FsmMorphologicalAnalyzer.js.map +1 -1
- package/dist/MorphologicalAnalysis/FsmParse.js +596 -603
- package/dist/MorphologicalAnalysis/FsmParse.js.map +1 -1
- package/dist/MorphologicalAnalysis/FsmParseList.js +263 -273
- package/dist/MorphologicalAnalysis/FsmParseList.js.map +1 -1
- package/dist/MorphologicalAnalysis/InflectionalGroup.js +152 -162
- package/dist/MorphologicalAnalysis/InflectionalGroup.js.map +1 -1
- package/dist/MorphologicalAnalysis/MetamorphicParse.js +120 -129
- package/dist/MorphologicalAnalysis/MetamorphicParse.js.map +1 -1
- package/dist/MorphologicalAnalysis/MorphologicalParse.js +1037 -1046
- package/dist/MorphologicalAnalysis/MorphologicalParse.js.map +1 -1
- package/dist/MorphologicalAnalysis/MorphologicalTag.js +530 -540
- package/dist/MorphologicalAnalysis/MorphologicalTag.js.map +1 -1
- package/dist/MorphologicalAnalysis/MorphotacticEngine.js +230 -240
- package/dist/MorphologicalAnalysis/MorphotacticEngine.js.map +1 -1
- package/dist/MorphologicalAnalysis/State.js +54 -60
- package/dist/MorphologicalAnalysis/State.js.map +1 -1
- package/dist/MorphologicalAnalysis/Transition.js +408 -418
- package/dist/MorphologicalAnalysis/Transition.js.map +1 -1
- package/dist/index.js +19 -25
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
- package/tests/FsmParseListTest.ts +3 -3
- package/tests/FsmParseTest.ts +1 -1
- package/tsconfig.json +4 -3
- package/turkish_dictionary.txt +9114 -9114
- package/source/tsconfig.json +0 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MorphologicalTag.js","sourceRoot":"","sources":["../../source/MorphologicalAnalysis/MorphologicalTag.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MorphologicalTag.js","sourceRoot":"","sources":["../../source/MorphologicalAnalysis/MorphologicalTag.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,284 +1,274 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
switch (Word_1.Word.lastPhoneme(formationToCheck)) {
|
|
34
|
-
case '3':
|
|
35
|
-
case '4':
|
|
36
|
-
case '5':
|
|
37
|
-
//3->3'tü, 5->5'ti, 4->4'tü
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MorphotacticEngine = void 0;
|
|
4
|
+
const Word_1 = require("nlptoolkit-dictionary/dist/Dictionary/Word");
|
|
5
|
+
const TurkishLanguage_1 = require("nlptoolkit-dictionary/dist/Language/TurkishLanguage");
|
|
6
|
+
class MorphotacticEngine {
|
|
7
|
+
/**
|
|
8
|
+
* resolveD resolves the D metamorpheme to 'd' or 't' depending on the root and current formationToCheck. It adds
|
|
9
|
+
* 'd' if the root is an abbreviation; 't' if the last phoneme is one of the "çfhkpsşt" (fıstıkçı şahap) or 'd'
|
|
10
|
+
* otherwise; 't' if the word is a number ending with 3, 4, 5, 40, 60, or 70 or 'd' otherwise.
|
|
11
|
+
* @param root Root of the word
|
|
12
|
+
* @param formation Formation is current status of the wordform in the current state of the finite state machine. It
|
|
13
|
+
* is always equal to formationToCheck except the case where there is an apostrophe after the
|
|
14
|
+
* formationToCheck such as (3').
|
|
15
|
+
* @param formationToCheck FormationToCheck is current status of the wordform in the current state of the finite
|
|
16
|
+
* state machine except the apostrophe at the end if it exists.
|
|
17
|
+
* @return Formation with added 'd' or 't' character.
|
|
18
|
+
*/
|
|
19
|
+
static resolveD(root, formation, formationToCheck) {
|
|
20
|
+
if (root.isAbbreviation()) {
|
|
21
|
+
return formation + 'd';
|
|
22
|
+
}
|
|
23
|
+
if (Word_1.Word.lastPhoneme(formationToCheck) >= '0' && Word_1.Word.lastPhoneme(formationToCheck) <= '9') {
|
|
24
|
+
switch (Word_1.Word.lastPhoneme(formationToCheck)) {
|
|
25
|
+
case '3':
|
|
26
|
+
case '4':
|
|
27
|
+
case '5':
|
|
28
|
+
//3->3'tü, 5->5'ti, 4->4'tü
|
|
29
|
+
return formation + 't';
|
|
30
|
+
case '0':
|
|
31
|
+
if (root.getName().endsWith("40") || root.getName().endsWith("60") || root.getName().endsWith("70"))
|
|
32
|
+
//40->40'tı, 60->60'tı, 70->70'ti
|
|
38
33
|
return formation + 't';
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
//40->40'tı, 60->60'tı, 70->70'ti
|
|
42
|
-
return formation + 't';
|
|
43
|
-
else
|
|
44
|
-
//30->30'du, 50->50'ydi, 80->80'di
|
|
45
|
-
return formation + 'd';
|
|
46
|
-
default:
|
|
34
|
+
else
|
|
35
|
+
//30->30'du, 50->50'ydi, 80->80'di
|
|
47
36
|
return formation + 'd';
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
if (TurkishLanguage_1.TurkishLanguage.isSertSessiz(Word_1.Word.lastPhoneme(formationToCheck))) {
|
|
52
|
-
//yap+DH->yaptı
|
|
53
|
-
return formation + 't';
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
//sar+DH->sardı
|
|
37
|
+
default:
|
|
57
38
|
return formation + 'd';
|
|
58
|
-
}
|
|
59
39
|
}
|
|
60
40
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
* is always equal to formationToCheck except the case where there is an apostrophe after the
|
|
70
|
-
* formationToCheck such as (3').
|
|
71
|
-
* @param rootWord True if the current word form is root form, false otherwise.
|
|
72
|
-
* @param formationToCheck FormationToCheck is current status of the wordform in the current state of the finite
|
|
73
|
-
* state machine except the apostrophe at the end if it exists.
|
|
74
|
-
* @return Formation with added 'a' or 'e' character.
|
|
75
|
-
*/
|
|
76
|
-
static resolveA(root, formation, rootWord, formationToCheck) {
|
|
77
|
-
if (root.isAbbreviation()) {
|
|
78
|
-
return formation + 'e';
|
|
41
|
+
else {
|
|
42
|
+
if (TurkishLanguage_1.TurkishLanguage.isSertSessiz(Word_1.Word.lastPhoneme(formationToCheck))) {
|
|
43
|
+
//yap+DH->yaptı
|
|
44
|
+
return formation + 't';
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
//sar+DH->sardı
|
|
48
|
+
return formation + 'd';
|
|
79
49
|
}
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* resolveA resolves the A metamorpheme to 'a' or 'e' depending on the root and current formationToCheck. It adds
|
|
54
|
+
* 'e' if the root is an abbreviation; 'a' if the last vowel is a back vowel (except words that do not obey vowel
|
|
55
|
+
* harmony during agglutination); 'e' if the last vowel is a front vowel (except words that do not obey vowel
|
|
56
|
+
* harmony during agglutination); 'a' if the word is a number ending with 6, 9, 10, 30, 40, 60, or 90 or 'e'
|
|
57
|
+
* otherwise.
|
|
58
|
+
* @param root Root of the word
|
|
59
|
+
* @param formation Formation is current status of the wordform in the current state of the finite state machine. It
|
|
60
|
+
* is always equal to formationToCheck except the case where there is an apostrophe after the
|
|
61
|
+
* formationToCheck such as (3').
|
|
62
|
+
* @param rootWord True if the current word form is root form, false otherwise.
|
|
63
|
+
* @param formationToCheck FormationToCheck is current status of the wordform in the current state of the finite
|
|
64
|
+
* state machine except the apostrophe at the end if it exists.
|
|
65
|
+
* @return Formation with added 'a' or 'e' character.
|
|
66
|
+
*/
|
|
67
|
+
static resolveA(root, formation, rootWord, formationToCheck) {
|
|
68
|
+
if (root.isAbbreviation()) {
|
|
69
|
+
return formation + 'e';
|
|
70
|
+
}
|
|
71
|
+
if (Word_1.Word.lastVowel(formationToCheck) >= '0' && Word_1.Word.lastVowel(formationToCheck) <= '9') {
|
|
72
|
+
switch (Word_1.Word.lastVowel(formationToCheck)) {
|
|
73
|
+
case '6':
|
|
74
|
+
case '9':
|
|
75
|
+
//6'ya, 9'a
|
|
76
|
+
return formation + 'a';
|
|
77
|
+
case '0':
|
|
78
|
+
if (root.getName().endsWith("10") || root.getName().endsWith("30") || root.getName().endsWith("40") ||
|
|
79
|
+
root.getName().endsWith("60") || root.getName().endsWith("90"))
|
|
80
|
+
//10'a, 30'a, 40'a, 60'a, 90'a
|
|
85
81
|
return formation + 'a';
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
root.getName().endsWith("60") || root.getName().endsWith("90"))
|
|
89
|
-
//10'a, 30'a, 40'a, 60'a, 90'a
|
|
90
|
-
return formation + 'a';
|
|
91
|
-
else
|
|
92
|
-
//20'ye, 50'ye, 80'e, 70'e
|
|
93
|
-
return formation + 'e';
|
|
94
|
-
default:
|
|
95
|
-
//3'e, 8'e, 4'e, 2'ye
|
|
82
|
+
else
|
|
83
|
+
//20'ye, 50'ye, 80'e, 70'e
|
|
96
84
|
return formation + 'e';
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (TurkishLanguage_1.TurkishLanguage.isBackVowel(Word_1.Word.lastVowel(formationToCheck))) {
|
|
100
|
-
if (root.notObeysVowelHarmonyDuringAgglutination() && rootWord) {
|
|
101
|
-
//alkole, anormale
|
|
85
|
+
default:
|
|
86
|
+
//3'e, 8'e, 4'e, 2'ye
|
|
102
87
|
return formation + 'e';
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
//sakala, kabala
|
|
106
|
-
return formation + 'a';
|
|
107
|
-
}
|
|
108
88
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
else {
|
|
115
|
-
//kediye, eve
|
|
116
|
-
return formation + 'e';
|
|
117
|
-
}
|
|
89
|
+
}
|
|
90
|
+
if (TurkishLanguage_1.TurkishLanguage.isBackVowel(Word_1.Word.lastVowel(formationToCheck))) {
|
|
91
|
+
if (root.notObeysVowelHarmonyDuringAgglutination() && rootWord) {
|
|
92
|
+
//alkole, anormale
|
|
93
|
+
return formation + 'e';
|
|
118
94
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
root.getName().endsWith("90")) {
|
|
123
|
-
return formation + 'a';
|
|
124
|
-
}
|
|
125
|
-
else {
|
|
126
|
-
return formation + 'e';
|
|
127
|
-
}
|
|
95
|
+
else {
|
|
96
|
+
//sakala, kabala
|
|
97
|
+
return formation + 'a';
|
|
128
98
|
}
|
|
129
|
-
return formation;
|
|
130
99
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
* character before the last vowel is front unrounded; 'u' if the character before the last vowel is back rounded;
|
|
136
|
-
* 'ı' if the character before the last vowel is back unrounded (or front unrounded when the root word does not obey
|
|
137
|
-
* vowel harmony during agglutination); 'ı' if the word is a number ending with 6, 40, 60 or 90; 'ü' if the word
|
|
138
|
-
* is a number ending with 3, 4, or 00; 'u' if the word is a number ending with 9, 10, or 30; 'i' otherwise for
|
|
139
|
-
* numbers. Special case for 'Hyor' suffix is handled with resolveHforSpecialCaseTenseSuffix method.
|
|
140
|
-
* @param root Root of the word
|
|
141
|
-
* @param formation Formation is current status of the wordform in the current state of the finite state machine. It
|
|
142
|
-
* is always equal to formationToCheck except the case where there is an apostrophe after the
|
|
143
|
-
* formationToCheck such as (3').
|
|
144
|
-
* @param beginningOfSuffix True if H appears in the beginning of the suffix, false otherwise.
|
|
145
|
-
* @param specialCaseTenseSuffix True if the suffix is 'Hyor', false otherwise.
|
|
146
|
-
* @param rootWord True if the current word form is root form, false otherwise.
|
|
147
|
-
* @param formationToCheck FormationToCheck is current status of the word form in the current state of the finite
|
|
148
|
-
* state machine except the apostrophe at the end if it exists.
|
|
149
|
-
* @return Formation with possibly last character dropped and 'ı', 'i', 'u' or 'ü' character added.
|
|
150
|
-
*/
|
|
151
|
-
static resolveH(root, formation, beginningOfSuffix, specialCaseTenseSuffix, rootWord, formationToCheck) {
|
|
152
|
-
if (root.isAbbreviation())
|
|
153
|
-
return formation + 'i';
|
|
154
|
-
if (beginningOfSuffix && TurkishLanguage_1.TurkishLanguage.isVowel(Word_1.Word.lastPhoneme(formationToCheck)) &&
|
|
155
|
-
!specialCaseTenseSuffix) {
|
|
156
|
-
return formation;
|
|
100
|
+
if (TurkishLanguage_1.TurkishLanguage.isFrontVowel(Word_1.Word.lastVowel(formationToCheck))) {
|
|
101
|
+
if (root.notObeysVowelHarmonyDuringAgglutination() && rootWord) {
|
|
102
|
+
//faika, halika
|
|
103
|
+
return formation + 'a';
|
|
157
104
|
}
|
|
158
|
-
|
|
159
|
-
//
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
105
|
+
else {
|
|
106
|
+
//kediye, eve
|
|
107
|
+
return formation + 'e';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (root.isNumeral() || root.isFraction() || root.isReal()) {
|
|
111
|
+
if (root.getName().endsWith("6") || root.getName().endsWith("9") || root.getName().endsWith("10") ||
|
|
112
|
+
root.getName().endsWith("30") || root.getName().endsWith("40") || root.getName().endsWith("60") ||
|
|
113
|
+
root.getName().endsWith("90")) {
|
|
114
|
+
return formation + 'a';
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return formation + 'e';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return formation;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* resolveH resolves the H metamorpheme to 'ı', 'i', 'u' or 'ü', depending on the current formationToCheck, root,
|
|
124
|
+
* and formation. It adds 'i' if the root is an abbreviation; 'ü' if the character before the last vowel is
|
|
125
|
+
* front rounded (or back rounded when the root word does not obey vowel harmony during agglutination); 'i' if the
|
|
126
|
+
* character before the last vowel is front unrounded; 'u' if the character before the last vowel is back rounded;
|
|
127
|
+
* 'ı' if the character before the last vowel is back unrounded (or front unrounded when the root word does not obey
|
|
128
|
+
* vowel harmony during agglutination); 'ı' if the word is a number ending with 6, 40, 60 or 90; 'ü' if the word
|
|
129
|
+
* is a number ending with 3, 4, or 00; 'u' if the word is a number ending with 9, 10, or 30; 'i' otherwise for
|
|
130
|
+
* numbers. Special case for 'Hyor' suffix is handled with resolveHforSpecialCaseTenseSuffix method.
|
|
131
|
+
* @param root Root of the word
|
|
132
|
+
* @param formation Formation is current status of the wordform in the current state of the finite state machine. It
|
|
133
|
+
* is always equal to formationToCheck except the case where there is an apostrophe after the
|
|
134
|
+
* formationToCheck such as (3').
|
|
135
|
+
* @param beginningOfSuffix True if H appears in the beginning of the suffix, false otherwise.
|
|
136
|
+
* @param specialCaseTenseSuffix True if the suffix is 'Hyor', false otherwise.
|
|
137
|
+
* @param rootWord True if the current word form is root form, false otherwise.
|
|
138
|
+
* @param formationToCheck FormationToCheck is current status of the word form in the current state of the finite
|
|
139
|
+
* state machine except the apostrophe at the end if it exists.
|
|
140
|
+
* @return Formation with possibly last character dropped and 'ı', 'i', 'u' or 'ü' character added.
|
|
141
|
+
*/
|
|
142
|
+
static resolveH(root, formation, beginningOfSuffix, specialCaseTenseSuffix, rootWord, formationToCheck) {
|
|
143
|
+
if (root.isAbbreviation())
|
|
144
|
+
return formation + 'i';
|
|
145
|
+
if (beginningOfSuffix && TurkishLanguage_1.TurkishLanguage.isVowel(Word_1.Word.lastPhoneme(formationToCheck)) &&
|
|
146
|
+
!specialCaseTenseSuffix) {
|
|
147
|
+
return formation;
|
|
148
|
+
}
|
|
149
|
+
if (specialCaseTenseSuffix) {
|
|
150
|
+
//eğer ek Hyor eki ise,
|
|
151
|
+
if (rootWord) {
|
|
152
|
+
if (root.vowelAChangesToIDuringYSuffixation()) {
|
|
181
153
|
if (TurkishLanguage_1.TurkishLanguage.isFrontRoundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
154
|
+
//büyülüyor, bölümlüyor, çözümlüyor, döşüyor
|
|
182
155
|
return formation.substring(0, formation.length - 1) + 'ü';
|
|
183
156
|
}
|
|
184
157
|
if (TurkishLanguage_1.TurkishLanguage.isFrontUnroundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
158
|
+
//adresliyor, alevliyor, ateşliyor, bekliyor
|
|
185
159
|
return formation.substring(0, formation.length - 1) + 'i';
|
|
186
160
|
}
|
|
187
161
|
if (TurkishLanguage_1.TurkishLanguage.isBackRoundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
162
|
+
//buğuluyor, bulguluyor, çamurluyor, aforozluyor
|
|
188
163
|
return formation.substring(0, formation.length - 1) + 'u';
|
|
189
164
|
}
|
|
190
165
|
if (TurkishLanguage_1.TurkishLanguage.isBackUnroundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
166
|
+
//açıklıyor, çalkalıyor, gazlıyor, gıcırdıyor
|
|
191
167
|
return formation.substring(0, formation.length - 1) + 'ı';
|
|
192
168
|
}
|
|
193
169
|
}
|
|
194
170
|
}
|
|
195
|
-
if (TurkishLanguage_1.TurkishLanguage.
|
|
196
|
-
(TurkishLanguage_1.TurkishLanguage.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
171
|
+
if (TurkishLanguage_1.TurkishLanguage.isVowel(Word_1.Word.lastPhoneme(formationToCheck))) {
|
|
172
|
+
if (TurkishLanguage_1.TurkishLanguage.isFrontRoundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
173
|
+
return formation.substring(0, formation.length - 1) + 'ü';
|
|
174
|
+
}
|
|
175
|
+
if (TurkishLanguage_1.TurkishLanguage.isFrontUnroundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
176
|
+
return formation.substring(0, formation.length - 1) + 'i';
|
|
177
|
+
}
|
|
178
|
+
if (TurkishLanguage_1.TurkishLanguage.isBackRoundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
179
|
+
return formation.substring(0, formation.length - 1) + 'u';
|
|
180
|
+
}
|
|
181
|
+
if (TurkishLanguage_1.TurkishLanguage.isBackUnroundedVowel(Word_1.Word.beforeLastVowel(formationToCheck))) {
|
|
182
|
+
return formation.substring(0, formation.length - 1) + 'ı';
|
|
183
|
+
}
|
|
205
184
|
}
|
|
206
|
-
|
|
185
|
+
}
|
|
186
|
+
if (TurkishLanguage_1.TurkishLanguage.isFrontRoundedVowel(Word_1.Word.lastVowel(formationToCheck)) ||
|
|
187
|
+
(TurkishLanguage_1.TurkishLanguage.isBackRoundedVowel(Word_1.Word.lastVowel(formationToCheck)) && root.notObeysVowelHarmonyDuringAgglutination())) {
|
|
188
|
+
return formation + 'ü';
|
|
189
|
+
}
|
|
190
|
+
if ((TurkishLanguage_1.TurkishLanguage.isFrontUnroundedVowel(Word_1.Word.lastVowel(formationToCheck)) && (!root.notObeysVowelHarmonyDuringAgglutination() || !rootWord)) ||
|
|
191
|
+
((Word_1.Word.lastVowel(formationToCheck) == 'a' || Word_1.Word.lastVowel(formationToCheck) == 'â') && root.notObeysVowelHarmonyDuringAgglutination())) {
|
|
192
|
+
return formation + 'i';
|
|
193
|
+
}
|
|
194
|
+
if (TurkishLanguage_1.TurkishLanguage.isBackRoundedVowel(Word_1.Word.lastVowel(formationToCheck))) {
|
|
195
|
+
return formation + 'u';
|
|
196
|
+
}
|
|
197
|
+
if (TurkishLanguage_1.TurkishLanguage.isBackUnroundedVowel(Word_1.Word.lastVowel(formationToCheck)) || (TurkishLanguage_1.TurkishLanguage.isFrontUnroundedVowel(Word_1.Word.lastVowel(formationToCheck)) && root.notObeysVowelHarmonyDuringAgglutination())) {
|
|
198
|
+
return formation + 'ı';
|
|
199
|
+
}
|
|
200
|
+
if (root.isNumeral() || root.isFraction() || root.isReal()) {
|
|
201
|
+
if (root.getName().endsWith("6") || root.getName().endsWith("40") || root.getName().endsWith("60") ||
|
|
202
|
+
root.getName().endsWith("90")) {
|
|
203
|
+
//6'yı, 40'ı, 60'ı
|
|
207
204
|
return formation + 'ı';
|
|
208
205
|
}
|
|
209
|
-
|
|
210
|
-
if (root.getName().endsWith("
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return formation + 'ı';
|
|
206
|
+
else {
|
|
207
|
+
if (root.getName().endsWith("3") || root.getName().endsWith("4") || root.getName().endsWith("00")) {
|
|
208
|
+
//3'ü, 4'ü, 100'ü
|
|
209
|
+
return formation + 'ü';
|
|
214
210
|
}
|
|
215
211
|
else {
|
|
216
|
-
if (root.getName().endsWith("
|
|
217
|
-
//
|
|
218
|
-
return formation + '
|
|
212
|
+
if (root.getName().endsWith("9") || root.getName().endsWith("10") || root.getName().endsWith("30")) {
|
|
213
|
+
//9'u, 10'u, 30'u
|
|
214
|
+
return formation + 'u';
|
|
219
215
|
}
|
|
220
216
|
else {
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return formation + 'u';
|
|
224
|
-
}
|
|
225
|
-
else {
|
|
226
|
-
//2'yi, 5'i, 8'i
|
|
227
|
-
return formation + 'i';
|
|
228
|
-
}
|
|
217
|
+
//2'yi, 5'i, 8'i
|
|
218
|
+
return formation + 'i';
|
|
229
219
|
}
|
|
230
220
|
}
|
|
231
221
|
}
|
|
232
|
-
if (Word_1.Word.lastVowel(formationToCheck) == '0') {
|
|
233
|
-
return formation + 'i';
|
|
234
|
-
}
|
|
235
|
-
return formation;
|
|
236
222
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
* concatenates given formation with 'ç', if not it concatenates given formation with 'c'.
|
|
240
|
-
*
|
|
241
|
-
* @param formation {@link String} input.
|
|
242
|
-
* @param formationToCheck {@link String} input.
|
|
243
|
-
* @return resolved String.
|
|
244
|
-
*/
|
|
245
|
-
static resolveC(formation, formationToCheck) {
|
|
246
|
-
if (TurkishLanguage_1.TurkishLanguage.isSertSessiz(Word_1.Word.lastPhoneme(formationToCheck))) {
|
|
247
|
-
return formation + 'ç';
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
return formation + 'c';
|
|
251
|
-
}
|
|
223
|
+
if (Word_1.Word.lastVowel(formationToCheck) == '0') {
|
|
224
|
+
return formation + 'i';
|
|
252
225
|
}
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
226
|
+
return formation;
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* The resolveC method takes a {@link String} formation as an input. If the last phoneme is on of the "çfhkpsşt", it
|
|
230
|
+
* concatenates given formation with 'ç', if not it concatenates given formation with 'c'.
|
|
231
|
+
*
|
|
232
|
+
* @param formation {@link String} input.
|
|
233
|
+
* @param formationToCheck {@link String} input.
|
|
234
|
+
* @return resolved String.
|
|
235
|
+
*/
|
|
236
|
+
static resolveC(formation, formationToCheck) {
|
|
237
|
+
if (TurkishLanguage_1.TurkishLanguage.isSertSessiz(Word_1.Word.lastPhoneme(formationToCheck))) {
|
|
238
|
+
return formation + 'ç';
|
|
261
239
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
240
|
+
else {
|
|
241
|
+
return formation + 'c';
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* The resolveS method takes a {@link String} formation as an input. It then concatenates given formation with 's'.
|
|
246
|
+
*
|
|
247
|
+
* @param formation {@link String} input.
|
|
248
|
+
* @return resolved String.
|
|
249
|
+
*/
|
|
250
|
+
static resolveS(formation) {
|
|
251
|
+
return formation + 's';
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* The resolveSh method takes a {@link String} formation as an input. If the last character is a vowel, it concatenates
|
|
255
|
+
* given formation with ş, if the last character is not a vowel, and not 't' it directly returns given formation, but if it
|
|
256
|
+
* is equal to 't', it transforms it to 'd'.
|
|
257
|
+
*
|
|
258
|
+
* @param formation {@link String} input.
|
|
259
|
+
* @return resolved String.
|
|
260
|
+
*/
|
|
261
|
+
static resolveSh(formation) {
|
|
262
|
+
if (TurkishLanguage_1.TurkishLanguage.isVowel(formation.charAt(formation.length - 1))) {
|
|
263
|
+
return formation + 'ş';
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
if (formation.charAt(formation.length - 1) != 't')
|
|
267
|
+
return formation;
|
|
268
|
+
else
|
|
269
|
+
return formation.substring(0, formation.length - 1) + 'd';
|
|
280
270
|
}
|
|
281
271
|
}
|
|
282
|
-
|
|
283
|
-
|
|
272
|
+
}
|
|
273
|
+
exports.MorphotacticEngine = MorphotacticEngine;
|
|
284
274
|
//# sourceMappingURL=MorphotacticEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MorphotacticEngine.js","sourceRoot":"","sources":["../../source/MorphologicalAnalysis/MorphotacticEngine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MorphotacticEngine.js","sourceRoot":"","sources":["../../source/MorphologicalAnalysis/MorphotacticEngine.ts"],"names":[],"mappings":"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"}
|