nlptoolkit-annotatedtree 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 (258) hide show
  1. package/README.md +153 -0
  2. package/dist/ChunkType.d.ts +5 -0
  3. package/dist/ChunkType.js +20 -0
  4. package/dist/ChunkType.js.map +1 -0
  5. package/dist/Layer/DependencyLayer.d.ts +4 -0
  6. package/dist/Layer/DependencyLayer.js +23 -0
  7. package/dist/Layer/DependencyLayer.js.map +1 -0
  8. package/dist/Layer/EnglishPropbankLayer.d.ts +6 -0
  9. package/dist/Layer/EnglishPropbankLayer.js +34 -0
  10. package/dist/Layer/EnglishPropbankLayer.js.map +1 -0
  11. package/dist/Layer/EnglishSemanticLayer.d.ts +4 -0
  12. package/dist/Layer/EnglishSemanticLayer.js +23 -0
  13. package/dist/Layer/EnglishSemanticLayer.js.map +1 -0
  14. package/dist/Layer/EnglishWordLayer.d.ts +4 -0
  15. package/dist/Layer/EnglishWordLayer.js +22 -0
  16. package/dist/Layer/EnglishWordLayer.js.map +1 -0
  17. package/dist/Layer/MetaMorphemeLayer.d.ts +8 -0
  18. package/dist/Layer/MetaMorphemeLayer.js +63 -0
  19. package/dist/Layer/MetaMorphemeLayer.js.map +1 -0
  20. package/dist/Layer/MetaMorphemesMovedLayer.d.ts +9 -0
  21. package/dist/Layer/MetaMorphemesMovedLayer.js +51 -0
  22. package/dist/Layer/MetaMorphemesMovedLayer.js.map +1 -0
  23. package/dist/Layer/MorphologicalAnalysisLayer.d.ts +11 -0
  24. package/dist/Layer/MorphologicalAnalysisLayer.js +110 -0
  25. package/dist/Layer/MorphologicalAnalysisLayer.js.map +1 -0
  26. package/dist/Layer/MultiWordLayer.d.ts +7 -0
  27. package/dist/Layer/MultiWordLayer.js +33 -0
  28. package/dist/Layer/MultiWordLayer.js.map +1 -0
  29. package/dist/Layer/MultiWordMultiItemLayer.d.ts +6 -0
  30. package/dist/Layer/MultiWordMultiItemLayer.js +18 -0
  31. package/dist/Layer/MultiWordMultiItemLayer.js.map +1 -0
  32. package/dist/Layer/NERLayer.d.ts +8 -0
  33. package/dist/Layer/NERLayer.js +32 -0
  34. package/dist/Layer/NERLayer.js.map +1 -0
  35. package/dist/Layer/PersianWordLayer.d.ts +4 -0
  36. package/dist/Layer/PersianWordLayer.js +22 -0
  37. package/dist/Layer/PersianWordLayer.js.map +1 -0
  38. package/dist/Layer/ShallowParseLayer.d.ts +5 -0
  39. package/dist/Layer/ShallowParseLayer.js +33 -0
  40. package/dist/Layer/ShallowParseLayer.js.map +1 -0
  41. package/dist/Layer/SingleWordLayer.d.ts +4 -0
  42. package/dist/Layer/SingleWordLayer.js +21 -0
  43. package/dist/Layer/SingleWordLayer.js.map +1 -0
  44. package/dist/Layer/SingleWordMultiItemLayer.d.ts +7 -0
  45. package/dist/Layer/SingleWordMultiItemLayer.js +33 -0
  46. package/dist/Layer/SingleWordMultiItemLayer.js.map +1 -0
  47. package/dist/Layer/SourceLanguageWordLayer.d.ts +4 -0
  48. package/dist/Layer/SourceLanguageWordLayer.js +22 -0
  49. package/dist/Layer/SourceLanguageWordLayer.js.map +1 -0
  50. package/dist/Layer/TargetLanguageWordLayer.d.ts +8 -0
  51. package/dist/Layer/TargetLanguageWordLayer.js +38 -0
  52. package/dist/Layer/TargetLanguageWordLayer.js.map +1 -0
  53. package/dist/Layer/TurkishPropbankLayer.d.ts +9 -0
  54. package/dist/Layer/TurkishPropbankLayer.js +35 -0
  55. package/dist/Layer/TurkishPropbankLayer.js.map +1 -0
  56. package/dist/Layer/TurkishSemanticLayer.d.ts +5 -0
  57. package/dist/Layer/TurkishSemanticLayer.js +33 -0
  58. package/dist/Layer/TurkishSemanticLayer.js.map +1 -0
  59. package/dist/Layer/TurkishWordLayer.d.ts +4 -0
  60. package/dist/Layer/TurkishWordLayer.js +22 -0
  61. package/dist/Layer/TurkishWordLayer.js.map +1 -0
  62. package/dist/Layer/WordLayer.d.ts +7 -0
  63. package/dist/Layer/WordLayer.js +26 -0
  64. package/dist/Layer/WordLayer.js.map +1 -0
  65. package/dist/LayerInfo.d.ts +45 -0
  66. package/dist/LayerInfo.js +474 -0
  67. package/dist/LayerInfo.js.map +1 -0
  68. package/dist/ParseNodeDrawable.d.ts +30 -0
  69. package/dist/ParseNodeDrawable.js +263 -0
  70. package/dist/ParseNodeDrawable.js.map +1 -0
  71. package/dist/ParseTreeDrawable.d.ts +31 -0
  72. package/dist/ParseTreeDrawable.js +200 -0
  73. package/dist/ParseTreeDrawable.js.map +1 -0
  74. package/dist/Processor/Condition/IsDoubleNode.d.ts +5 -0
  75. package/dist/Processor/Condition/IsDoubleNode.js +23 -0
  76. package/dist/Processor/Condition/IsDoubleNode.js.map +1 -0
  77. package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.d.ts +5 -0
  78. package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.js +23 -0
  79. package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.js.map +1 -0
  80. package/dist/Processor/Condition/IsEnglishLeafNode.d.ts +5 -0
  81. package/dist/Processor/Condition/IsEnglishLeafNode.js +25 -0
  82. package/dist/Processor/Condition/IsEnglishLeafNode.js.map +1 -0
  83. package/dist/Processor/Condition/IsLeafNode.d.ts +5 -0
  84. package/dist/Processor/Condition/IsLeafNode.js +20 -0
  85. package/dist/Processor/Condition/IsLeafNode.js.map +1 -0
  86. package/dist/Processor/Condition/IsNodeWithPredicate.d.ts +6 -0
  87. package/dist/Processor/Condition/IsNodeWithPredicate.js +29 -0
  88. package/dist/Processor/Condition/IsNodeWithPredicate.js.map +1 -0
  89. package/dist/Processor/Condition/IsNodeWithSymbol.d.ts +7 -0
  90. package/dist/Processor/Condition/IsNodeWithSymbol.js +28 -0
  91. package/dist/Processor/Condition/IsNodeWithSymbol.js.map +1 -0
  92. package/dist/Processor/Condition/IsNodeWithSynSetId.d.ts +7 -0
  93. package/dist/Processor/Condition/IsNodeWithSynSetId.js +34 -0
  94. package/dist/Processor/Condition/IsNodeWithSynSetId.js.map +1 -0
  95. package/dist/Processor/Condition/IsNoneNode.d.ts +8 -0
  96. package/dist/Processor/Condition/IsNoneNode.js +29 -0
  97. package/dist/Processor/Condition/IsNoneNode.js.map +1 -0
  98. package/dist/Processor/Condition/IsNullElement.d.ts +5 -0
  99. package/dist/Processor/Condition/IsNullElement.js +27 -0
  100. package/dist/Processor/Condition/IsNullElement.js.map +1 -0
  101. package/dist/Processor/Condition/IsNumber.d.ts +5 -0
  102. package/dist/Processor/Condition/IsNumber.js +27 -0
  103. package/dist/Processor/Condition/IsNumber.js.map +1 -0
  104. package/dist/Processor/Condition/IsPredicateVerbNode.d.ts +7 -0
  105. package/dist/Processor/Condition/IsPredicateVerbNode.js +28 -0
  106. package/dist/Processor/Condition/IsPredicateVerbNode.js.map +1 -0
  107. package/dist/Processor/Condition/IsProperNoun.d.ts +5 -0
  108. package/dist/Processor/Condition/IsProperNoun.js +25 -0
  109. package/dist/Processor/Condition/IsProperNoun.js.map +1 -0
  110. package/dist/Processor/Condition/IsPunctuationNode.d.ts +5 -0
  111. package/dist/Processor/Condition/IsPunctuationNode.js +27 -0
  112. package/dist/Processor/Condition/IsPunctuationNode.js.map +1 -0
  113. package/dist/Processor/Condition/IsTransferable.d.ts +8 -0
  114. package/dist/Processor/Condition/IsTransferable.js +33 -0
  115. package/dist/Processor/Condition/IsTransferable.js.map +1 -0
  116. package/dist/Processor/Condition/IsTurkishLeafNode.d.ts +5 -0
  117. package/dist/Processor/Condition/IsTurkishLeafNode.js +27 -0
  118. package/dist/Processor/Condition/IsTurkishLeafNode.js.map +1 -0
  119. package/dist/Processor/Condition/IsVPNode.d.ts +5 -0
  120. package/dist/Processor/Condition/IsVPNode.js +20 -0
  121. package/dist/Processor/Condition/IsVPNode.js.map +1 -0
  122. package/dist/Processor/Condition/IsVerbNode.d.ts +8 -0
  123. package/dist/Processor/Condition/IsVerbNode.js +36 -0
  124. package/dist/Processor/Condition/IsVerbNode.js.map +1 -0
  125. package/dist/Processor/Condition/NodeDrawableCondition.d.ts +4 -0
  126. package/dist/Processor/Condition/NodeDrawableCondition.js +13 -0
  127. package/dist/Processor/Condition/NodeDrawableCondition.js.map +1 -0
  128. package/dist/Processor/LayerExist/ContainsLayerInformation.d.ts +8 -0
  129. package/dist/Processor/LayerExist/ContainsLayerInformation.js +45 -0
  130. package/dist/Processor/LayerExist/ContainsLayerInformation.js.map +1 -0
  131. package/dist/Processor/LayerExist/LeafListCondition.d.ts +4 -0
  132. package/dist/Processor/LayerExist/LeafListCondition.js +13 -0
  133. package/dist/Processor/LayerExist/LeafListCondition.js.map +1 -0
  134. package/dist/Processor/LayerExist/NotContainsLayerInformation.d.ts +8 -0
  135. package/dist/Processor/LayerExist/NotContainsLayerInformation.js +44 -0
  136. package/dist/Processor/LayerExist/NotContainsLayerInformation.js.map +1 -0
  137. package/dist/Processor/LayerExist/SemiContainsLayerInformation.d.ts +8 -0
  138. package/dist/Processor/LayerExist/SemiContainsLayerInformation.js +53 -0
  139. package/dist/Processor/LayerExist/SemiContainsLayerInformation.js.map +1 -0
  140. package/dist/Processor/LeafConverter/LeafToEnglish.d.ts +4 -0
  141. package/dist/Processor/LeafConverter/LeafToEnglish.js +23 -0
  142. package/dist/Processor/LeafConverter/LeafToEnglish.js.map +1 -0
  143. package/dist/Processor/LeafConverter/LeafToLanguageConverter.d.ts +7 -0
  144. package/dist/Processor/LeafConverter/LeafToLanguageConverter.js +44 -0
  145. package/dist/Processor/LeafConverter/LeafToLanguageConverter.js.map +1 -0
  146. package/dist/Processor/LeafConverter/LeafToPersian.d.ts +4 -0
  147. package/dist/Processor/LeafConverter/LeafToPersian.js +23 -0
  148. package/dist/Processor/LeafConverter/LeafToPersian.js.map +1 -0
  149. package/dist/Processor/LeafConverter/LeafToRootFormConverter.d.ts +5 -0
  150. package/dist/Processor/LeafConverter/LeafToRootFormConverter.js +28 -0
  151. package/dist/Processor/LeafConverter/LeafToRootFormConverter.js.map +1 -0
  152. package/dist/Processor/LeafConverter/LeafToStringConverter.d.ts +4 -0
  153. package/dist/Processor/LeafConverter/LeafToStringConverter.js +13 -0
  154. package/dist/Processor/LeafConverter/LeafToStringConverter.js.map +1 -0
  155. package/dist/Processor/LeafConverter/LeafToTurkish.d.ts +4 -0
  156. package/dist/Processor/LeafConverter/LeafToTurkish.js +23 -0
  157. package/dist/Processor/LeafConverter/LeafToTurkish.js.map +1 -0
  158. package/dist/Processor/NodeDrawableCollector.d.ts +9 -0
  159. package/dist/Processor/NodeDrawableCollector.js +34 -0
  160. package/dist/Processor/NodeDrawableCollector.js.map +1 -0
  161. package/dist/Processor/NodeModification/ConvertToLayeredFormat.d.ts +5 -0
  162. package/dist/Processor/NodeModification/ConvertToLayeredFormat.js +26 -0
  163. package/dist/Processor/NodeModification/ConvertToLayeredFormat.js.map +1 -0
  164. package/dist/Processor/NodeModification/NodeModifier.d.ts +4 -0
  165. package/dist/Processor/NodeModification/NodeModifier.js +13 -0
  166. package/dist/Processor/NodeModification/NodeModifier.js.map +1 -0
  167. package/dist/Processor/TreeModifier.d.ts +6 -0
  168. package/dist/Processor/TreeModifier.js +26 -0
  169. package/dist/Processor/TreeModifier.js.map +1 -0
  170. package/dist/Processor/TreeToStringConverter.d.ts +9 -0
  171. package/dist/Processor/TreeToStringConverter.js +36 -0
  172. package/dist/Processor/TreeToStringConverter.js.map +1 -0
  173. package/dist/TreeBankDrawable.d.ts +11 -0
  174. package/dist/TreeBankDrawable.js +52 -0
  175. package/dist/TreeBankDrawable.js.map +1 -0
  176. package/index.js +58 -0
  177. package/package.json +37 -0
  178. package/source/ChunkType.ts +3 -0
  179. package/source/Layer/DependencyLayer.ts +10 -0
  180. package/source/Layer/EnglishPropbankLayer.ts +22 -0
  181. package/source/Layer/EnglishSemanticLayer.ts +10 -0
  182. package/source/Layer/EnglishWordLayer.ts +9 -0
  183. package/source/Layer/MetaMorphemeLayer.ts +53 -0
  184. package/source/Layer/MetaMorphemesMovedLayer.ts +43 -0
  185. package/source/Layer/MorphologicalAnalysisLayer.ts +100 -0
  186. package/source/Layer/MultiWordLayer.ts +20 -0
  187. package/source/Layer/MultiWordMultiItemLayer.ts +9 -0
  188. package/source/Layer/NERLayer.ts +23 -0
  189. package/source/Layer/PersianWordLayer.ts +9 -0
  190. package/source/Layer/ShallowParseLayer.ts +22 -0
  191. package/source/Layer/SingleWordLayer.ts +9 -0
  192. package/source/Layer/SingleWordMultiItemLayer.ts +19 -0
  193. package/source/Layer/SourceLanguageWordLayer.ts +9 -0
  194. package/source/Layer/TargetLanguageWordLayer.ts +29 -0
  195. package/source/Layer/TurkishPropbankLayer.ts +26 -0
  196. package/source/Layer/TurkishSemanticLayer.ts +22 -0
  197. package/source/Layer/TurkishWordLayer.ts +9 -0
  198. package/source/Layer/WordLayer.ts +17 -0
  199. package/source/LayerInfo.ts +481 -0
  200. package/source/ParseNodeDrawable.ts +257 -0
  201. package/source/ParseTreeDrawable.ts +205 -0
  202. package/source/Processor/Condition/IsDoubleNode.ts +13 -0
  203. package/source/Processor/Condition/IsDoubleNodeWithDifferentTags.ts +13 -0
  204. package/source/Processor/Condition/IsEnglishLeafNode.ts +14 -0
  205. package/source/Processor/Condition/IsLeafNode.ts +10 -0
  206. package/source/Processor/Condition/IsNodeWithPredicate.ts +19 -0
  207. package/source/Processor/Condition/IsNodeWithSymbol.ts +20 -0
  208. package/source/Processor/Condition/IsNodeWithSynSetId.ts +26 -0
  209. package/source/Processor/Condition/IsNoneNode.ts +22 -0
  210. package/source/Processor/Condition/IsNullElement.ts +16 -0
  211. package/source/Processor/Condition/IsNumber.ts +16 -0
  212. package/source/Processor/Condition/IsPredicateVerbNode.ts +19 -0
  213. package/source/Processor/Condition/IsProperNoun.ts +14 -0
  214. package/source/Processor/Condition/IsPunctuationNode.ts +16 -0
  215. package/source/Processor/Condition/IsTransferable.ts +26 -0
  216. package/source/Processor/Condition/IsTurkishLeafNode.ts +16 -0
  217. package/source/Processor/Condition/IsVPNode.ts +10 -0
  218. package/source/Processor/Condition/IsVerbNode.ts +29 -0
  219. package/source/Processor/Condition/NodeDrawableCondition.ts +6 -0
  220. package/source/Processor/LayerExist/ContainsLayerInformation.ts +38 -0
  221. package/source/Processor/LayerExist/LeafListCondition.ts +6 -0
  222. package/source/Processor/LayerExist/NotContainsLayerInformation.ts +37 -0
  223. package/source/Processor/LayerExist/SemiContainsLayerInformation.ts +44 -0
  224. package/source/Processor/LeafConverter/LeafToEnglish.ts +11 -0
  225. package/source/Processor/LeafConverter/LeafToLanguageConverter.ts +35 -0
  226. package/source/Processor/LeafConverter/LeafToPersian.ts +10 -0
  227. package/source/Processor/LeafConverter/LeafToRootFormConverter.ts +18 -0
  228. package/source/Processor/LeafConverter/LeafToStringConverter.ts +6 -0
  229. package/source/Processor/LeafConverter/LeafToTurkish.ts +10 -0
  230. package/source/Processor/NodeDrawableCollector.ts +28 -0
  231. package/source/Processor/NodeModification/ConvertToLayeredFormat.ts +16 -0
  232. package/source/Processor/NodeModification/NodeModifier.ts +6 -0
  233. package/source/Processor/TreeModifier.ts +20 -0
  234. package/source/Processor/TreeToStringConverter.ts +31 -0
  235. package/source/TreeBankDrawable.ts +47 -0
  236. package/source/tsconfig.json +13 -0
  237. package/tests/ParseTreeDrawableTest.ts +161 -0
  238. package/trees/0000.dev +1 -0
  239. package/trees/0001.dev +1 -0
  240. package/trees/0002.dev +1 -0
  241. package/trees/0003.dev +1 -0
  242. package/trees/0004.dev +1 -0
  243. package/trees/0005.dev +1 -0
  244. package/trees/0006.dev +1 -0
  245. package/trees/0007.dev +1 -0
  246. package/trees/0008.dev +1 -0
  247. package/trees/0009.dev +1 -0
  248. package/trees2/0000.dev +1 -0
  249. package/trees2/0001.dev +1 -0
  250. package/trees2/0002.dev +1 -0
  251. package/trees2/0003.dev +1 -0
  252. package/trees2/0004.dev +1 -0
  253. package/trees2/0005.dev +1 -0
  254. package/trees2/0006.dev +1 -0
  255. package/trees2/0007.dev +1 -0
  256. package/trees2/0008.dev +1 -0
  257. package/trees2/0009.dev +1 -0
  258. package/tsconfig.json +15 -0
@@ -0,0 +1,16 @@
1
+ import {IsLeafNode} from "./IsLeafNode";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+ import {Word} from "nlptoolkit-dictionary/dist/Dictionary/Word";
5
+
6
+ export class IsPunctuationNode extends IsLeafNode{
7
+
8
+ satisfies(parseNode: ParseNodeDrawable): boolean {
9
+ if (super.satisfies(parseNode)){
10
+ let data = parseNode.getLayerData(ViewLayerType.ENGLISH_WORD);
11
+ return Word.isPunctuation(data) && data != "$";
12
+ }
13
+ return false;
14
+ }
15
+
16
+ }
@@ -0,0 +1,26 @@
1
+ import {IsLeafNode} from "./IsLeafNode";
2
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
3
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
4
+ import {IsNoneNode} from "./IsNoneNode";
5
+ import {IsNullElement} from "./IsNullElement";
6
+
7
+ export class IsTransferable extends IsLeafNode{
8
+
9
+ private secondLanguage: ViewLayerType
10
+
11
+ constructor(secondLanguage: ViewLayerType) {
12
+ super();
13
+ this.secondLanguage = secondLanguage
14
+ }
15
+
16
+ satisfies(parseNode: ParseNodeDrawable): boolean {
17
+ if (super.satisfies(parseNode)) {
18
+ if (new IsNoneNode(this.secondLanguage).satisfies(parseNode)){
19
+ return false;
20
+ }
21
+ return !new IsNullElement().satisfies(parseNode);
22
+ }
23
+ return false;
24
+ }
25
+
26
+ }
@@ -0,0 +1,16 @@
1
+ import {IsLeafNode} from "./IsLeafNode";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+
5
+ export class IsTurkishLeafNode extends IsLeafNode{
6
+
7
+ satisfies(parseNode: ParseNodeDrawable): boolean {
8
+ if (super.satisfies(parseNode)){
9
+ let data = parseNode.getLayerInfo().getLayerData(ViewLayerType.TURKISH_WORD);
10
+ let parentData = parseNode.getParent().getData().getName();
11
+ return data != null && !data.includes("*") && !(data == "0" && parentData == "-NONE-");
12
+ }
13
+ return false;
14
+ }
15
+
16
+ }
@@ -0,0 +1,10 @@
1
+ import {NodeDrawableCondition} from "./NodeDrawableCondition";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+
4
+ export class IsVPNode implements NodeDrawableCondition{
5
+
6
+ satisfies(parseNode: ParseNodeDrawable): boolean {
7
+ return parseNode.numberOfChildren() > 0 && parseNode.getData().isVP();
8
+ }
9
+
10
+ }
@@ -0,0 +1,29 @@
1
+ import {IsLeafNode} from "./IsLeafNode";
2
+ import {WordNet} from "nlptoolkit-wordnet/dist/WordNet";
3
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
4
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
5
+ import {Pos} from "nlptoolkit-dictionary/dist/Dictionary/Pos";
6
+
7
+ export class IsVerbNode extends IsLeafNode{
8
+
9
+ private wordNet: WordNet
10
+
11
+ constructor(wordNet: WordNet) {
12
+ super();
13
+ this.wordNet = wordNet
14
+ }
15
+
16
+ satisfies(parseNode: ParseNodeDrawable): boolean {
17
+ let layerInfo = parseNode.getLayerInfo();
18
+ if (super.satisfies(parseNode) && layerInfo != null && layerInfo.getLayerData(ViewLayerType.SEMANTICS) != null){
19
+ for (let i = 0; i < layerInfo.getNumberOfMeanings(); i++){
20
+ let synSetId = layerInfo.getSemanticAt(i);
21
+ if (this.wordNet.getSynSetWithId(synSetId) != null && this.wordNet.getSynSetWithId(synSetId).getPos() == Pos.VERB){
22
+ return true;
23
+ }
24
+ }
25
+ }
26
+ return false;
27
+ }
28
+
29
+ }
@@ -0,0 +1,6 @@
1
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
2
+
3
+ export interface NodeDrawableCondition {
4
+
5
+ satisfies(parseNode: ParseNodeDrawable): boolean
6
+ }
@@ -0,0 +1,38 @@
1
+ import {LeafListCondition} from "./LeafListCondition";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+ import {IsTurkishLeafNode} from "../Condition/IsTurkishLeafNode";
5
+
6
+ export class ContainsLayerInformation implements LeafListCondition{
7
+
8
+ private readonly viewLayerType: ViewLayerType
9
+
10
+ constructor(viewLayerType: ViewLayerType) {
11
+ this.viewLayerType = viewLayerType
12
+ }
13
+
14
+ satisfies(leafList: Array<ParseNodeDrawable>): boolean {
15
+ for (let parseNode of leafList){
16
+ if (!parseNode.getLayerData(ViewLayerType.ENGLISH_WORD).includes("*")){
17
+ switch (this.viewLayerType){
18
+ case ViewLayerType.TURKISH_WORD:
19
+ if (parseNode.getLayerData(this.viewLayerType) == null){
20
+ return false;
21
+ }
22
+ break;
23
+ case ViewLayerType.PART_OF_SPEECH:
24
+ case ViewLayerType.INFLECTIONAL_GROUP:
25
+ case ViewLayerType.NER:
26
+ case ViewLayerType.SEMANTICS:
27
+ case ViewLayerType.PROPBANK:
28
+ if (parseNode.getLayerData(this.viewLayerType) == null && new IsTurkishLeafNode().satisfies(parseNode)){
29
+ return false;
30
+ }
31
+ break;
32
+ }
33
+ }
34
+ }
35
+ return true;
36
+ }
37
+
38
+ }
@@ -0,0 +1,6 @@
1
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
2
+
3
+ export interface LeafListCondition {
4
+
5
+ satisfies(leafList: Array<ParseNodeDrawable>): boolean
6
+ }
@@ -0,0 +1,37 @@
1
+ import {LeafListCondition} from "./LeafListCondition";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+ import {IsTurkishLeafNode} from "../Condition/IsTurkishLeafNode";
5
+
6
+ export class NotContainsLayerInformation implements LeafListCondition{
7
+
8
+ private readonly viewLayerType: ViewLayerType
9
+
10
+ constructor(viewLayerType: ViewLayerType) {
11
+ this.viewLayerType = viewLayerType
12
+ }
13
+
14
+ satisfies(leafList: Array<ParseNodeDrawable>): boolean {
15
+ for (let parseNode of leafList){
16
+ if (!parseNode.getLayerData(ViewLayerType.ENGLISH_WORD).includes("*")) {
17
+ switch (this.viewLayerType){
18
+ case ViewLayerType.TURKISH_WORD:
19
+ if (parseNode.getLayerData(this.viewLayerType) != null){
20
+ return false;
21
+ }
22
+ break;
23
+ case ViewLayerType.PART_OF_SPEECH:
24
+ case ViewLayerType.INFLECTIONAL_GROUP:
25
+ case ViewLayerType.NER:
26
+ case ViewLayerType.SEMANTICS:
27
+ if (parseNode.getLayerData(this.viewLayerType) != null && new IsTurkishLeafNode().satisfies(parseNode)){
28
+ return false;
29
+ }
30
+ break;
31
+ }
32
+ }
33
+ }
34
+ return true;
35
+ }
36
+
37
+ }
@@ -0,0 +1,44 @@
1
+ import {LeafListCondition} from "./LeafListCondition";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+ import {IsTurkishLeafNode} from "../Condition/IsTurkishLeafNode";
5
+
6
+ export class SemiContainsLayerInformation implements LeafListCondition{
7
+
8
+ private readonly viewLayerType: ViewLayerType
9
+
10
+ constructor(viewLayerType: ViewLayerType) {
11
+ this.viewLayerType = viewLayerType
12
+ }
13
+
14
+ satisfies(leafList: Array<ParseNodeDrawable>): boolean {
15
+ let notDone = 0, done = 0;
16
+ for (let parseNode of leafList){
17
+ if (!parseNode.getLayerData(ViewLayerType.ENGLISH_WORD).includes("*")) {
18
+ switch (this.viewLayerType){
19
+ case ViewLayerType.TURKISH_WORD:
20
+ if (parseNode.getLayerData(this.viewLayerType) != null){
21
+ done++;
22
+ } else {
23
+ notDone++;
24
+ }
25
+ break;
26
+ case ViewLayerType.PART_OF_SPEECH:
27
+ case ViewLayerType.INFLECTIONAL_GROUP:
28
+ case ViewLayerType.NER:
29
+ case ViewLayerType.SEMANTICS:
30
+ if (new IsTurkishLeafNode().satisfies(parseNode)){
31
+ if (parseNode.getLayerData(this.viewLayerType) != null){
32
+ done++;
33
+ } else {
34
+ notDone++;
35
+ }
36
+ }
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ return done != 0 && notDone != 0;
42
+ }
43
+
44
+ }
@@ -0,0 +1,11 @@
1
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
2
+ import {LeafToLanguageConverter} from "./LeafToLanguageConverter";
3
+
4
+ export class LeafToEnglish extends LeafToLanguageConverter{
5
+
6
+ constructor() {
7
+ super()
8
+ this.viewLayerType = ViewLayerType.ENGLISH_WORD;
9
+ }
10
+
11
+ }
@@ -0,0 +1,35 @@
1
+ import {LeafToStringConverter} from "./LeafToStringConverter";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+
5
+ export class LeafToLanguageConverter implements LeafToStringConverter{
6
+
7
+ protected viewLayerType: ViewLayerType
8
+
9
+ leafConverter(leafNode: ParseNodeDrawable): string {
10
+ let layerData = leafNode.getLayerData(this.viewLayerType);
11
+ let parentLayerData = (<ParseNodeDrawable>leafNode.getParent()).getLayerData(this.viewLayerType);
12
+ if (layerData != null){
13
+ if (layerData.includes("*") || (layerData == "0" && parentLayerData == "-NONE-")){
14
+ return "";
15
+ } else {
16
+ return " " + layerData
17
+ .replace("-LRB-", "(")
18
+ .replace("-RRB-", ")")
19
+ .replace("-LSB-", "[")
20
+ .replace("-RSB-", "]")
21
+ .replace("-LCB-", "{")
22
+ .replace("-RCB-", "}")
23
+ .replace("-lrb-", "(")
24
+ .replace("-rrb-", ")")
25
+ .replace("-lsb-", "[")
26
+ .replace("-rsb-", "]")
27
+ .replace("-lcb-", "{")
28
+ .replace("-rcb-", "}");
29
+ }
30
+ } else {
31
+ return "";
32
+ }
33
+ }
34
+
35
+ }
@@ -0,0 +1,10 @@
1
+ import {LeafToLanguageConverter} from "./LeafToLanguageConverter";
2
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
3
+
4
+ export class LeafToPersian extends LeafToLanguageConverter{
5
+
6
+ constructor() {
7
+ super();
8
+ this.viewLayerType = ViewLayerType.PERSIAN_WORD
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ import {LeafToStringConverter} from "./LeafToStringConverter";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+
4
+ export class LeafToRootFormConverter implements LeafToStringConverter{
5
+
6
+ leafConverter(parseNodeDrawable: ParseNodeDrawable): string {
7
+ let layerInfo = parseNodeDrawable.getLayerInfo();
8
+ let rootWords = " ";
9
+ for (let i = 0; i < layerInfo.getNumberOfWords(); i++) {
10
+ let root = layerInfo.getMorphologicalParseAt(i).getWord().getName();
11
+ if (root != null && root != ""){
12
+ rootWords += " " + root;
13
+ }
14
+ }
15
+ return rootWords.toString();
16
+ }
17
+
18
+ }
@@ -0,0 +1,6 @@
1
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
2
+
3
+ export interface LeafToStringConverter {
4
+
5
+ leafConverter(leafNode: ParseNodeDrawable): string
6
+ }
@@ -0,0 +1,10 @@
1
+ import {LeafToLanguageConverter} from "./LeafToLanguageConverter";
2
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
3
+
4
+ export class LeafToTurkish extends LeafToLanguageConverter{
5
+
6
+ constructor() {
7
+ super();
8
+ this.viewLayerType = ViewLayerType.TURKISH_WORD
9
+ }
10
+ }
@@ -0,0 +1,28 @@
1
+ import {NodeDrawableCondition} from "./Condition/NodeDrawableCondition";
2
+ import {ParseNodeDrawable} from "../ParseNodeDrawable";
3
+
4
+ export class NodeDrawableCollector {
5
+
6
+ private condition: NodeDrawableCondition
7
+ private rootNode: ParseNodeDrawable
8
+
9
+ constructor(rootNode: ParseNodeDrawable, condition: NodeDrawableCondition) {
10
+ this.rootNode = rootNode
11
+ this.condition = condition
12
+ }
13
+
14
+ private collectNodes(parseNode: ParseNodeDrawable, collected: Array<ParseNodeDrawable>){
15
+ if (this.condition == null || this.condition.satisfies(parseNode)){
16
+ collected.push(parseNode);
17
+ }
18
+ for (let i = 0; i < parseNode.numberOfChildren(); i++){
19
+ this.collectNodes(<ParseNodeDrawable>parseNode.getChild(i), collected);
20
+ }
21
+ }
22
+
23
+ collect(): Array<ParseNodeDrawable>{
24
+ let result = new Array<ParseNodeDrawable>();
25
+ this.collectNodes(this.rootNode, result);
26
+ return result;
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ import {NodeModifier} from "./NodeModifier";
2
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
3
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
4
+
5
+ export class ConvertToLayeredFormat implements NodeModifier{
6
+
7
+ modifier(parseNode: ParseNodeDrawable): void {
8
+ if (parseNode.isLeaf()){
9
+ let name = parseNode.getData().getName();
10
+ parseNode.clearLayers();
11
+ parseNode.getLayerInfo().setLayerData(ViewLayerType.ENGLISH_WORD, name);
12
+ parseNode.clearData();
13
+ }
14
+ }
15
+
16
+ }
@@ -0,0 +1,6 @@
1
+ import {ParseNodeDrawable} from "../../ParseNodeDrawable";
2
+
3
+ export interface NodeModifier {
4
+
5
+ modifier(parseNode: ParseNodeDrawable): void
6
+ }
@@ -0,0 +1,20 @@
1
+ import {ParseTreeDrawable} from "../ParseTreeDrawable";
2
+ import {NodeModifier} from "./NodeModification/NodeModifier";
3
+ import {ParseNodeDrawable} from "../ParseNodeDrawable";
4
+
5
+ export class TreeModifier{
6
+
7
+ private parseTree: ParseTreeDrawable
8
+ private nodeModifier: NodeModifier
9
+
10
+ private nodeModifyPrivate(parseNode: ParseNodeDrawable){
11
+ this.nodeModifier.modifier(parseNode);
12
+ for (let i = 0; i < parseNode.numberOfChildren(); i++){
13
+ this.nodeModifyPrivate(<ParseNodeDrawable> parseNode.getChild(i));
14
+ }
15
+ }
16
+
17
+ nodeModify(){
18
+ this.nodeModifyPrivate(<ParseNodeDrawable> this.parseTree.getRoot());
19
+ }
20
+ }
@@ -0,0 +1,31 @@
1
+ import {LeafToStringConverter} from "./LeafConverter/LeafToStringConverter";
2
+ import {ParseTreeDrawable} from "../ParseTreeDrawable";
3
+ import {ParseNodeDrawable} from "../ParseNodeDrawable";
4
+
5
+ export class TreeToStringConverter {
6
+
7
+ private converter: LeafToStringConverter
8
+ private parseTree: ParseTreeDrawable
9
+
10
+ constructor(parseTree: ParseTreeDrawable, converter: LeafToStringConverter) {
11
+ this.converter = converter
12
+ this.parseTree = parseTree
13
+ }
14
+
15
+ private convertToString(parseNode: ParseNodeDrawable): string{
16
+ if (parseNode.isLeaf()){
17
+ return this.converter.leafConverter(parseNode);
18
+ } else {
19
+ let st = "";
20
+ for (let i = 0; i < parseNode.numberOfChildren(); i++) {
21
+ st = st + this.convertToString(<ParseNodeDrawable> parseNode.getChild(i));
22
+ }
23
+ return st;
24
+ }
25
+ }
26
+
27
+ convert(){
28
+ return this.convertToString(<ParseNodeDrawable> this.parseTree.getRoot());
29
+ }
30
+
31
+ }
@@ -0,0 +1,47 @@
1
+ import {TreeBank} from "nlptoolkit-parsetree/dist/TreeBank";
2
+ import * as fs from "fs";
3
+ import {ParseTreeDrawable} from "./ParseTreeDrawable";
4
+ import {FileDescription} from "nlptoolkit-corpus/dist/FileDescription";
5
+ import {ParseTree} from "nlptoolkit-parsetree/dist/ParseTree";
6
+ import {ViewLayerType} from "nlptoolkit-annotatedsentence/dist/ViewLayerType";
7
+
8
+ export class TreeBankDrawable extends TreeBank{
9
+
10
+ constructor(folder?: string, pattern?: string) {
11
+ super();
12
+ let files = fs.readdirSync(folder);
13
+ files.sort()
14
+ for (let file of files){
15
+ if (pattern != undefined){
16
+ if (!file.includes(pattern)){
17
+ continue
18
+ }
19
+ }
20
+ let parseTree = new ParseTreeDrawable(folder + "/" + file)
21
+ if (parseTree.getRoot() != undefined){
22
+ parseTree.setName(file);
23
+ this.parseTrees.push(parseTree);
24
+ }
25
+ }
26
+ }
27
+
28
+ getParseTrees(): Array<ParseTree>{
29
+ return this.parseTrees
30
+ }
31
+
32
+ get(index: number): ParseTreeDrawable{
33
+ return <ParseTreeDrawable> this.parseTrees[index];
34
+ }
35
+
36
+ clearLayer(layerType: ViewLayerType){
37
+ for (let tree of this.parseTrees){
38
+ let parseTree = <ParseTreeDrawable> tree;
39
+ parseTree.clearLayer(layerType);
40
+ }
41
+ }
42
+
43
+ removeTree(index: number){
44
+ this.parseTrees.slice(index, 1)
45
+ }
46
+
47
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "../dist",
4
+ "module": "umd",
5
+ "target": "es6",
6
+ "sourceMap": true,
7
+ "noImplicitAny": true,
8
+ "strictNullChecks": false,
9
+ "removeComments": false,
10
+ "moduleResolution": "node",
11
+ "declaration": true
12
+ }
13
+ }