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 @@
1
+ {"version":3,"file":"FsmMorphologicalAnalyzer.js","sourceRoot":"","sources":["../../source/MorphologicalAnalysis/FsmMorphologicalAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,290 @@
1
+ import { MorphologicalParse } from "./MorphologicalParse";
2
+ import { State } from "./State";
3
+ import { TxtWord } from "nlptoolkit-dictionary/dist/Dictionary/TxtWord";
4
+ export declare class FsmParse extends MorphologicalParse {
5
+ private suffixList;
6
+ private formList;
7
+ private transitionList;
8
+ private withList;
9
+ private initialPos;
10
+ private pos;
11
+ private form;
12
+ private verbAgreement;
13
+ private possesiveAgreement;
14
+ /**
15
+ * Another constructor of {@link FsmParse} class which takes a {@link TxtWord} root and a {@link State} as inputs.
16
+ * First, initializes root variable with this {@link TxtWord}. It also initializes form with root's name, pos and
17
+ * initialPos with given {@link State}'s POS, creates 4 new {@link Array} suffixList, formList, transitionList
18
+ * and withList and adds given {@link State} to suffixList, form to formList.
19
+ *
20
+ * @param root {@link TxtWord} input.
21
+ * @param startState {@link State} input.
22
+ */
23
+ constructor(root: any, startState?: State);
24
+ /**
25
+ * The constructInflectionalGroups method initially calls the transitionList method and assigns the resulting {@link String}
26
+ * to the parse variable and creates a new {@link Array} as iGs. If parse {@link String} contains a derivational boundary
27
+ * it adds the substring starting from the 0 to the index of derivational boundary to the iGs. If it does not contain a DB,
28
+ * it directly adds parse to the iGs. Then, creates and initializes new {@link Array} as inflectionalGroups and fills with
29
+ * the items of iGs.
30
+ */
31
+ constructInflectionalGroups(): void;
32
+ /**
33
+ * Getter for the verbAgreement variable.
34
+ *
35
+ * @return the verbAgreement variable.
36
+ */
37
+ getVerbAgreement(): string;
38
+ /**
39
+ * Getter for the getPossesiveAgreement variable.
40
+ *
41
+ * @return the possesiveAgreement variable.
42
+ */
43
+ getPossesiveAgreement(): string;
44
+ /**
45
+ * The setAgreement method takes a {@link String} transitionName as an input and if it is one of the A1SG, A2SG, A3SG,
46
+ * A1PL, A2PL or A3PL it assigns transitionName input to the verbAgreement variable. Or if it is ine of the PNON, P1SG, P2SG,P3SG,
47
+ * P1PL, P2PL or P3PL it assigns transitionName input to the possesiveAgreement variable.
48
+ *
49
+ * @param transitionName {@link String} input.
50
+ */
51
+ setAgreement(transitionName?: string): void;
52
+ /**
53
+ * The getLastLemmaWithTag method takes a String input pos as an input. If given pos is an initial pos then it assigns
54
+ * root to the lemma, and assign null otherwise. Then, it loops i times where i ranges from 1 to size of the formList,
55
+ * if the item at i-1 of transitionList is not null and contains a derivational boundary with pos but not with ZERO,
56
+ * it assigns the ith item of formList to lemma.
57
+ *
58
+ * @param pos {@link String} input.
59
+ * @return String output lemma.
60
+ */
61
+ getLastLemmaWithTag(pos: string): string;
62
+ /**
63
+ * The getLastLemma method initially assigns root as lemma. Then, it loops i times where i ranges from 1 to size of the formList,
64
+ * if the item at i-1 of transitionList is not null and contains a derivational boundary, it assigns the ith item of formList to lemma.
65
+ *
66
+ * @return String output lemma.
67
+ */
68
+ getLastLemma(): string;
69
+ /**
70
+ * The addSuffix method takes 5 different inputs; {@link State} suffix, {@link String} form, transition, with and toPos.
71
+ * If the pos of given input suffix is not null, it then assigns it to the pos variable. If the pos of the given suffix
72
+ * is null but given toPos is not null than it assigns toPos to pos variable. At the end, it adds suffix to the suffixList,
73
+ * form to the formList, transition to the transitionList and if given with is not 0, it is also added to withList.
74
+ *
75
+ * @param suffix {@link State} input.
76
+ * @param form {@link String} input.
77
+ * @param transition {@link String} input.
78
+ * @param _with {@link String} input.
79
+ * @param toPos {@link String} input.
80
+ */
81
+ addSuffix(suffix: State, form: string, transition: string, _with: string, toPos: string): void;
82
+ /**
83
+ * Getter for the form variable.
84
+ *
85
+ * @return the form variable.
86
+ */
87
+ getSurfaceForm(): string;
88
+ /**
89
+ * The getStartState method returns the first item of suffixList {@link Array}.
90
+ *
91
+ * @return the first item of suffixList {@link Array}.
92
+ */
93
+ getStartState(): State;
94
+ /**
95
+ * Getter for the pos variable.
96
+ *
97
+ * @return the pos variable.
98
+ */
99
+ getFinalPos(): string;
100
+ /**
101
+ * Getter for the initialPos variable.
102
+ *
103
+ * @return the initialPos variable.
104
+ */
105
+ getInitialPos(): string;
106
+ /**
107
+ * The setForm method takes a {@link String} name as an input and assigns it to the form variable, then it removes
108
+ * the first item of formList {@link Array} and adds the given name to the formList.
109
+ *
110
+ * @param name String input to set form.
111
+ */
112
+ setForm(name: string): void;
113
+ /**
114
+ * The getFinalSuffix method returns the last item of suffixList {@link Array}.
115
+ *
116
+ * @return the last item of suffixList {@link Array}.
117
+ */
118
+ getFinalSuffix(): State;
119
+ /**
120
+ * The overridden clone method creates a new {@link FsmParse} abject with root variable and initializes variables form, pos,
121
+ * initialPos, verbAgreement, possesiveAgreement, and also the {@link ArrayList}s suffixList, formList, transitionList and withList.
122
+ * Then returns newly created and cloned {@link FsmParse} object.
123
+ *
124
+ * @return FsmParse object.
125
+ */
126
+ clone(): FsmParse;
127
+ /**
128
+ * The headerTransition method gets the first item of formList and checks for cases;
129
+ * <p>
130
+ * If it is &lt;DOC&gt;, it returns &lt;DOC&gt;+BDTAG which indicates the beginning of a document.
131
+ * If it is &lt;/DOC&gt;, it returns &lt;/DOC&gt;+EDTAG which indicates the ending of a document.
132
+ * If it is &lt;TITLE&gt;, it returns &lt;TITLE&gt;+BTTAG which indicates the beginning of a title.
133
+ * If it is &lt;/TITLE&gt;, it returns &lt;/TITLE&gt;+ETTAG which indicates the ending of a title.
134
+ * If it is &lt;S&gt;, it returns &lt;S&gt;+BSTAG which indicates the beginning of a sentence.
135
+ * If it is &lt;/S&gt;, it returns &lt;/S&gt;+ESTAG which indicates the ending of a sentence.
136
+ *
137
+ * @return corresponding tags of the headers and an empty {@link String} if any case does not match.
138
+ */
139
+ headerTransition(): string;
140
+ /**
141
+ * The pronounTransition method gets the first item of formList and checks for cases;
142
+ * <p>
143
+ * If it is "kendi", it returns kendi+PRON+REFLEXP which indicates a reflexive pronoun.
144
+ * If it is one of the "hep, öbür, topu, öteki, kimse, hiçbiri, tümü, çoğu, hepsi, herkes, başkası, birçoğu, birçokları, biri, birbirleri, birbiri, birkaçı, böylesi, diğeri, cümlesi, bazı, kimi", it returns
145
+ * +PRON+QUANTP which indicates a quantitative pronoun.
146
+ * If it is one of the "o, bu, şu" and if it is "o" it also checks the first item of suffixList and if it is a PronounRoot(DEMONS),
147
+ * it returns +PRON+DEMONSP which indicates a demonstrative pronoun.
148
+ * If it is "ben", it returns +PRON+PERS+A1SG+PNON which indicates a 1st person singular agreement.
149
+ * If it is "sen", it returns +PRON+PERS+A2SG+PNON which indicates a 2nd person singular agreement.
150
+ * If it is "o" and the first item of suffixList, if it is a PronounRoot(PERS), it returns +PRON+PERS+A3SG+PNON which
151
+ * indicates a 3rd person singular agreement.
152
+ * If it is "biz", it returns +PRON+PERS+A1PL+PNON which indicates a 1st person plural agreement.
153
+ * If it is "siz", it returns +PRON+PERS+A2PL+PNON which indicates a 2nd person plural agreement.
154
+ * If it is "onlar" and the first item of suffixList, if it is a PronounRoot(PERS), it returns o+PRON+PERS+A3PL+PNON which
155
+ * indicates a 3rd person plural agreement.
156
+ * If it is one of the "nere, ne, kim, hangi", it returns +PRON+QUESP which indicates a question pronoun.
157
+ *
158
+ * @return corresponding transitions of pronouns and an empty {@link String} if any case does not match.
159
+ */
160
+ pronounTransition(): string;
161
+ /**
162
+ * The transitionList method first creates an empty {@link String} result, then gets the first item of suffixList and checks for cases;
163
+ * <p>
164
+ * If it is one of the "NominalRoot, NominalRootNoPossesive, CompoundNounRoot, NominalRootPlural", it assigns concatenation of first
165
+ * item of formList and +NOUN to the result String.
166
+ * Ex : Birincilik
167
+ * <p>
168
+ * If it is one of the "VerbalRoot, PassiveHn", it assigns concatenation of first item of formList and +VERB to the result String.
169
+ * Ex : Başkalaştı
170
+ * <p>
171
+ * If it is "CardinalRoot", it assigns concatenation of first item of formList and +NUM+CARD to the result String.
172
+ * Ex : Onuncu
173
+ * <p>
174
+ * If it is "FractionRoot", it assigns concatenation of first item of formList and NUM+FRACTION to the result String.
175
+ * Ex : 1/2
176
+ * <p>
177
+ * If it is "TimeRoot", it assigns concatenation of first item of formList and +TIME to the result String.
178
+ * Ex : 14:28
179
+ * <p>
180
+ * If it is "RealRoot", it assigns concatenation of first item of formList and +NUM+REAL to the result String.
181
+ * Ex : 1.2
182
+ * <p>
183
+ * If it is "Punctuation", it assigns concatenation of first item of formList and +PUNC to the result String.
184
+ * Ex : ,
185
+ * <p>
186
+ * If it is "Hashtag", it assigns concatenation of first item of formList and +HASHTAG to the result String.
187
+ * Ex : #
188
+ * <p>
189
+ * If it is "DateRoot", it assigns concatenation of first item of formList and +DATE to the result String.
190
+ * Ex : 11/06/2018
191
+ * <p>
192
+ * If it is "RangeRoot", it assigns concatenation of first item of formList and +RANGE to the result String.
193
+ * Ex : 3-5
194
+ * <p>
195
+ * If it is "Email", it assigns concatenation of first item of formList and +EMAIL to the result String.
196
+ * Ex : abc@
197
+ * <p>
198
+ * If it is "PercentRoot", it assigns concatenation of first item of formList and +PERCENT to the result String.
199
+ * Ex : %12.5
200
+ * <p>
201
+ * If it is "DeterminerRoot", it assigns concatenation of first item of formList and +DET to the result String.
202
+ * Ex : Birtakım
203
+ * <p>
204
+ * If it is "ConjunctionRoot", it assigns concatenation of first item of formList and +CONJ to the result String.
205
+ * Ex : Ama
206
+ * <p>
207
+ * If it is "AdverbRoot", it assigns concatenation of first item of formList and +ADV to the result String.
208
+ * Ex : Acilen
209
+ * <p>
210
+ * If it is "ProperRoot", it assigns concatenation of first item of formList and +NOUN+PROP to the result String.
211
+ * Ex : Ahmet
212
+ * <p>
213
+ * If it is "HeaderRoot", it assigns the result of the headerTransition method to the result String.
214
+ * Ex : &lt;DOC&gt;
215
+ * <p>
216
+ * If it is "InterjectionRoot", it assigns concatenation of first item of formList and +INTERJ to the result String.
217
+ * Ex : Hey
218
+ * <p>
219
+ * If it is "DuplicateRoot", it assigns concatenation of first item of formList and +DUP to the result String.
220
+ * Ex : Allak
221
+ * <p>
222
+ * If it is "QuestionRoot", it assigns concatenation of first item of formList and +QUES to the result String.
223
+ * Ex : Mı
224
+ * <p>
225
+ * If it is "PostP", and the first item of formList is one of the "karşı, ilişkin, göre, kadar, ait, yönelik, rağmen, değin,
226
+ * dek, doğru, karşın, dair, atfen, binaen, hitaben, istinaden, mahsuben, mukabil, nazaran", it assigns concatenation of first
227
+ * item of formList and +POSTP+PCDAT to the result String.
228
+ * Ex : İlişkin
229
+ * <p>
230
+ * If it is "PostP", and the first item of formList is one of the "sonra, önce, beri, fazla, dolayı, itibaren, başka,
231
+ * çok, evvel, ötürü, yana, öte, aşağı, yukarı, dışarı, az, gayrı", it assigns concatenation of first
232
+ * item of formList and +POSTP+PCABL to the result String.
233
+ * Ex : Başka
234
+ * <p>
235
+ * If it is "PostP", and the first item of formList is "yanısıra", it assigns concatenation of first
236
+ * item of formList and +POSTP+PCGEN to the result String.
237
+ * Ex : Yanısıra
238
+ * <p>
239
+ * If it is "PostP", and the first item of formList is one of the "birlikte, beraber", it assigns concatenation of first
240
+ * item of formList and +PPOSTP+PCINS to the result String.
241
+ * Ex : Birlikte
242
+ * <p>
243
+ * If it is "PostP", and the first item of formList is one of the "aşkın, takiben", it assigns concatenation of first
244
+ * item of formList and +POSTP+PCACC to the result String.
245
+ * Ex : Takiben
246
+ * <p>
247
+ * If it is "PostP", it assigns concatenation of first item of formList and +POSTP+PCNOM to the result String.
248
+ * <p>
249
+ * If it is "PronounRoot", it assigns result of the pronounTransition method to the result String.
250
+ * Ex : Ben
251
+ * <p>
252
+ * If it is "OrdinalRoot", it assigns concatenation of first item of formList and +NUM+ORD to the result String.
253
+ * Ex : Altıncı
254
+ * <p>
255
+ * If it starts with "Adjective", it assigns concatenation of first item of formList and +ADJ to the result String.
256
+ * Ex : Güzel
257
+ * <p>
258
+ * At the end, it loops through the formList and concatenates each item with result {@link String}.
259
+ *
260
+ * @return String result accumulated with items of formList.
261
+ */
262
+ getFsmParseTransitionList(): string;
263
+ /**
264
+ * The suffixList method gets the first items of suffixList and formList and concatenates them with parenthesis and
265
+ * assigns a String result. Then, loops through the formList and it the current ith item is not equal to previous
266
+ * item it accumulates ith items of formList and suffixList to the result {@link String}.
267
+ *
268
+ * @return result {@link String} accumulated with the items of formList and suffixList.
269
+ */
270
+ getSuffixList(): string;
271
+ /**
272
+ * The withList method gets the root as a result {@link String} then loops through the withList and concatenates each item
273
+ * with result {@link String}.
274
+ *
275
+ * @return result {@link String} accumulated with items of withList.
276
+ */
277
+ getWithList(): string;
278
+ /**
279
+ * Replace root word of the current parse with the new root word and returns the new word.
280
+ * @param newRoot Replaced root word
281
+ * @return Root word of the parse will be replaced with the newRoot and the resulting surface form is returned.
282
+ */
283
+ replaceRootWord(newRoot: TxtWord): string;
284
+ /**
285
+ * The overridden toString method which returns transitionList method.
286
+ *
287
+ * @return returns transitionList method.
288
+ */
289
+ toString(): string;
290
+ }