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.
- package/README.md +153 -0
- package/dist/ChunkType.d.ts +5 -0
- package/dist/ChunkType.js +20 -0
- package/dist/ChunkType.js.map +1 -0
- package/dist/Layer/DependencyLayer.d.ts +4 -0
- package/dist/Layer/DependencyLayer.js +23 -0
- package/dist/Layer/DependencyLayer.js.map +1 -0
- package/dist/Layer/EnglishPropbankLayer.d.ts +6 -0
- package/dist/Layer/EnglishPropbankLayer.js +34 -0
- package/dist/Layer/EnglishPropbankLayer.js.map +1 -0
- package/dist/Layer/EnglishSemanticLayer.d.ts +4 -0
- package/dist/Layer/EnglishSemanticLayer.js +23 -0
- package/dist/Layer/EnglishSemanticLayer.js.map +1 -0
- package/dist/Layer/EnglishWordLayer.d.ts +4 -0
- package/dist/Layer/EnglishWordLayer.js +22 -0
- package/dist/Layer/EnglishWordLayer.js.map +1 -0
- package/dist/Layer/MetaMorphemeLayer.d.ts +8 -0
- package/dist/Layer/MetaMorphemeLayer.js +63 -0
- package/dist/Layer/MetaMorphemeLayer.js.map +1 -0
- package/dist/Layer/MetaMorphemesMovedLayer.d.ts +9 -0
- package/dist/Layer/MetaMorphemesMovedLayer.js +51 -0
- package/dist/Layer/MetaMorphemesMovedLayer.js.map +1 -0
- package/dist/Layer/MorphologicalAnalysisLayer.d.ts +11 -0
- package/dist/Layer/MorphologicalAnalysisLayer.js +110 -0
- package/dist/Layer/MorphologicalAnalysisLayer.js.map +1 -0
- package/dist/Layer/MultiWordLayer.d.ts +7 -0
- package/dist/Layer/MultiWordLayer.js +33 -0
- package/dist/Layer/MultiWordLayer.js.map +1 -0
- package/dist/Layer/MultiWordMultiItemLayer.d.ts +6 -0
- package/dist/Layer/MultiWordMultiItemLayer.js +18 -0
- package/dist/Layer/MultiWordMultiItemLayer.js.map +1 -0
- package/dist/Layer/NERLayer.d.ts +8 -0
- package/dist/Layer/NERLayer.js +32 -0
- package/dist/Layer/NERLayer.js.map +1 -0
- package/dist/Layer/PersianWordLayer.d.ts +4 -0
- package/dist/Layer/PersianWordLayer.js +22 -0
- package/dist/Layer/PersianWordLayer.js.map +1 -0
- package/dist/Layer/ShallowParseLayer.d.ts +5 -0
- package/dist/Layer/ShallowParseLayer.js +33 -0
- package/dist/Layer/ShallowParseLayer.js.map +1 -0
- package/dist/Layer/SingleWordLayer.d.ts +4 -0
- package/dist/Layer/SingleWordLayer.js +21 -0
- package/dist/Layer/SingleWordLayer.js.map +1 -0
- package/dist/Layer/SingleWordMultiItemLayer.d.ts +7 -0
- package/dist/Layer/SingleWordMultiItemLayer.js +33 -0
- package/dist/Layer/SingleWordMultiItemLayer.js.map +1 -0
- package/dist/Layer/SourceLanguageWordLayer.d.ts +4 -0
- package/dist/Layer/SourceLanguageWordLayer.js +22 -0
- package/dist/Layer/SourceLanguageWordLayer.js.map +1 -0
- package/dist/Layer/TargetLanguageWordLayer.d.ts +8 -0
- package/dist/Layer/TargetLanguageWordLayer.js +38 -0
- package/dist/Layer/TargetLanguageWordLayer.js.map +1 -0
- package/dist/Layer/TurkishPropbankLayer.d.ts +9 -0
- package/dist/Layer/TurkishPropbankLayer.js +35 -0
- package/dist/Layer/TurkishPropbankLayer.js.map +1 -0
- package/dist/Layer/TurkishSemanticLayer.d.ts +5 -0
- package/dist/Layer/TurkishSemanticLayer.js +33 -0
- package/dist/Layer/TurkishSemanticLayer.js.map +1 -0
- package/dist/Layer/TurkishWordLayer.d.ts +4 -0
- package/dist/Layer/TurkishWordLayer.js +22 -0
- package/dist/Layer/TurkishWordLayer.js.map +1 -0
- package/dist/Layer/WordLayer.d.ts +7 -0
- package/dist/Layer/WordLayer.js +26 -0
- package/dist/Layer/WordLayer.js.map +1 -0
- package/dist/LayerInfo.d.ts +45 -0
- package/dist/LayerInfo.js +474 -0
- package/dist/LayerInfo.js.map +1 -0
- package/dist/ParseNodeDrawable.d.ts +30 -0
- package/dist/ParseNodeDrawable.js +263 -0
- package/dist/ParseNodeDrawable.js.map +1 -0
- package/dist/ParseTreeDrawable.d.ts +31 -0
- package/dist/ParseTreeDrawable.js +200 -0
- package/dist/ParseTreeDrawable.js.map +1 -0
- package/dist/Processor/Condition/IsDoubleNode.d.ts +5 -0
- package/dist/Processor/Condition/IsDoubleNode.js +23 -0
- package/dist/Processor/Condition/IsDoubleNode.js.map +1 -0
- package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.d.ts +5 -0
- package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.js +23 -0
- package/dist/Processor/Condition/IsDoubleNodeWithDifferentTags.js.map +1 -0
- package/dist/Processor/Condition/IsEnglishLeafNode.d.ts +5 -0
- package/dist/Processor/Condition/IsEnglishLeafNode.js +25 -0
- package/dist/Processor/Condition/IsEnglishLeafNode.js.map +1 -0
- package/dist/Processor/Condition/IsLeafNode.d.ts +5 -0
- package/dist/Processor/Condition/IsLeafNode.js +20 -0
- package/dist/Processor/Condition/IsLeafNode.js.map +1 -0
- package/dist/Processor/Condition/IsNodeWithPredicate.d.ts +6 -0
- package/dist/Processor/Condition/IsNodeWithPredicate.js +29 -0
- package/dist/Processor/Condition/IsNodeWithPredicate.js.map +1 -0
- package/dist/Processor/Condition/IsNodeWithSymbol.d.ts +7 -0
- package/dist/Processor/Condition/IsNodeWithSymbol.js +28 -0
- package/dist/Processor/Condition/IsNodeWithSymbol.js.map +1 -0
- package/dist/Processor/Condition/IsNodeWithSynSetId.d.ts +7 -0
- package/dist/Processor/Condition/IsNodeWithSynSetId.js +34 -0
- package/dist/Processor/Condition/IsNodeWithSynSetId.js.map +1 -0
- package/dist/Processor/Condition/IsNoneNode.d.ts +8 -0
- package/dist/Processor/Condition/IsNoneNode.js +29 -0
- package/dist/Processor/Condition/IsNoneNode.js.map +1 -0
- package/dist/Processor/Condition/IsNullElement.d.ts +5 -0
- package/dist/Processor/Condition/IsNullElement.js +27 -0
- package/dist/Processor/Condition/IsNullElement.js.map +1 -0
- package/dist/Processor/Condition/IsNumber.d.ts +5 -0
- package/dist/Processor/Condition/IsNumber.js +27 -0
- package/dist/Processor/Condition/IsNumber.js.map +1 -0
- package/dist/Processor/Condition/IsPredicateVerbNode.d.ts +7 -0
- package/dist/Processor/Condition/IsPredicateVerbNode.js +28 -0
- package/dist/Processor/Condition/IsPredicateVerbNode.js.map +1 -0
- package/dist/Processor/Condition/IsProperNoun.d.ts +5 -0
- package/dist/Processor/Condition/IsProperNoun.js +25 -0
- package/dist/Processor/Condition/IsProperNoun.js.map +1 -0
- package/dist/Processor/Condition/IsPunctuationNode.d.ts +5 -0
- package/dist/Processor/Condition/IsPunctuationNode.js +27 -0
- package/dist/Processor/Condition/IsPunctuationNode.js.map +1 -0
- package/dist/Processor/Condition/IsTransferable.d.ts +8 -0
- package/dist/Processor/Condition/IsTransferable.js +33 -0
- package/dist/Processor/Condition/IsTransferable.js.map +1 -0
- package/dist/Processor/Condition/IsTurkishLeafNode.d.ts +5 -0
- package/dist/Processor/Condition/IsTurkishLeafNode.js +27 -0
- package/dist/Processor/Condition/IsTurkishLeafNode.js.map +1 -0
- package/dist/Processor/Condition/IsVPNode.d.ts +5 -0
- package/dist/Processor/Condition/IsVPNode.js +20 -0
- package/dist/Processor/Condition/IsVPNode.js.map +1 -0
- package/dist/Processor/Condition/IsVerbNode.d.ts +8 -0
- package/dist/Processor/Condition/IsVerbNode.js +36 -0
- package/dist/Processor/Condition/IsVerbNode.js.map +1 -0
- package/dist/Processor/Condition/NodeDrawableCondition.d.ts +4 -0
- package/dist/Processor/Condition/NodeDrawableCondition.js +13 -0
- package/dist/Processor/Condition/NodeDrawableCondition.js.map +1 -0
- package/dist/Processor/LayerExist/ContainsLayerInformation.d.ts +8 -0
- package/dist/Processor/LayerExist/ContainsLayerInformation.js +45 -0
- package/dist/Processor/LayerExist/ContainsLayerInformation.js.map +1 -0
- package/dist/Processor/LayerExist/LeafListCondition.d.ts +4 -0
- package/dist/Processor/LayerExist/LeafListCondition.js +13 -0
- package/dist/Processor/LayerExist/LeafListCondition.js.map +1 -0
- package/dist/Processor/LayerExist/NotContainsLayerInformation.d.ts +8 -0
- package/dist/Processor/LayerExist/NotContainsLayerInformation.js +44 -0
- package/dist/Processor/LayerExist/NotContainsLayerInformation.js.map +1 -0
- package/dist/Processor/LayerExist/SemiContainsLayerInformation.d.ts +8 -0
- package/dist/Processor/LayerExist/SemiContainsLayerInformation.js +53 -0
- package/dist/Processor/LayerExist/SemiContainsLayerInformation.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToEnglish.d.ts +4 -0
- package/dist/Processor/LeafConverter/LeafToEnglish.js +23 -0
- package/dist/Processor/LeafConverter/LeafToEnglish.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToLanguageConverter.d.ts +7 -0
- package/dist/Processor/LeafConverter/LeafToLanguageConverter.js +44 -0
- package/dist/Processor/LeafConverter/LeafToLanguageConverter.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToPersian.d.ts +4 -0
- package/dist/Processor/LeafConverter/LeafToPersian.js +23 -0
- package/dist/Processor/LeafConverter/LeafToPersian.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToRootFormConverter.d.ts +5 -0
- package/dist/Processor/LeafConverter/LeafToRootFormConverter.js +28 -0
- package/dist/Processor/LeafConverter/LeafToRootFormConverter.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToStringConverter.d.ts +4 -0
- package/dist/Processor/LeafConverter/LeafToStringConverter.js +13 -0
- package/dist/Processor/LeafConverter/LeafToStringConverter.js.map +1 -0
- package/dist/Processor/LeafConverter/LeafToTurkish.d.ts +4 -0
- package/dist/Processor/LeafConverter/LeafToTurkish.js +23 -0
- package/dist/Processor/LeafConverter/LeafToTurkish.js.map +1 -0
- package/dist/Processor/NodeDrawableCollector.d.ts +9 -0
- package/dist/Processor/NodeDrawableCollector.js +34 -0
- package/dist/Processor/NodeDrawableCollector.js.map +1 -0
- package/dist/Processor/NodeModification/ConvertToLayeredFormat.d.ts +5 -0
- package/dist/Processor/NodeModification/ConvertToLayeredFormat.js +26 -0
- package/dist/Processor/NodeModification/ConvertToLayeredFormat.js.map +1 -0
- package/dist/Processor/NodeModification/NodeModifier.d.ts +4 -0
- package/dist/Processor/NodeModification/NodeModifier.js +13 -0
- package/dist/Processor/NodeModification/NodeModifier.js.map +1 -0
- package/dist/Processor/TreeModifier.d.ts +6 -0
- package/dist/Processor/TreeModifier.js +26 -0
- package/dist/Processor/TreeModifier.js.map +1 -0
- package/dist/Processor/TreeToStringConverter.d.ts +9 -0
- package/dist/Processor/TreeToStringConverter.js +36 -0
- package/dist/Processor/TreeToStringConverter.js.map +1 -0
- package/dist/TreeBankDrawable.d.ts +11 -0
- package/dist/TreeBankDrawable.js +52 -0
- package/dist/TreeBankDrawable.js.map +1 -0
- package/index.js +58 -0
- package/package.json +37 -0
- package/source/ChunkType.ts +3 -0
- package/source/Layer/DependencyLayer.ts +10 -0
- package/source/Layer/EnglishPropbankLayer.ts +22 -0
- package/source/Layer/EnglishSemanticLayer.ts +10 -0
- package/source/Layer/EnglishWordLayer.ts +9 -0
- package/source/Layer/MetaMorphemeLayer.ts +53 -0
- package/source/Layer/MetaMorphemesMovedLayer.ts +43 -0
- package/source/Layer/MorphologicalAnalysisLayer.ts +100 -0
- package/source/Layer/MultiWordLayer.ts +20 -0
- package/source/Layer/MultiWordMultiItemLayer.ts +9 -0
- package/source/Layer/NERLayer.ts +23 -0
- package/source/Layer/PersianWordLayer.ts +9 -0
- package/source/Layer/ShallowParseLayer.ts +22 -0
- package/source/Layer/SingleWordLayer.ts +9 -0
- package/source/Layer/SingleWordMultiItemLayer.ts +19 -0
- package/source/Layer/SourceLanguageWordLayer.ts +9 -0
- package/source/Layer/TargetLanguageWordLayer.ts +29 -0
- package/source/Layer/TurkishPropbankLayer.ts +26 -0
- package/source/Layer/TurkishSemanticLayer.ts +22 -0
- package/source/Layer/TurkishWordLayer.ts +9 -0
- package/source/Layer/WordLayer.ts +17 -0
- package/source/LayerInfo.ts +481 -0
- package/source/ParseNodeDrawable.ts +257 -0
- package/source/ParseTreeDrawable.ts +205 -0
- package/source/Processor/Condition/IsDoubleNode.ts +13 -0
- package/source/Processor/Condition/IsDoubleNodeWithDifferentTags.ts +13 -0
- package/source/Processor/Condition/IsEnglishLeafNode.ts +14 -0
- package/source/Processor/Condition/IsLeafNode.ts +10 -0
- package/source/Processor/Condition/IsNodeWithPredicate.ts +19 -0
- package/source/Processor/Condition/IsNodeWithSymbol.ts +20 -0
- package/source/Processor/Condition/IsNodeWithSynSetId.ts +26 -0
- package/source/Processor/Condition/IsNoneNode.ts +22 -0
- package/source/Processor/Condition/IsNullElement.ts +16 -0
- package/source/Processor/Condition/IsNumber.ts +16 -0
- package/source/Processor/Condition/IsPredicateVerbNode.ts +19 -0
- package/source/Processor/Condition/IsProperNoun.ts +14 -0
- package/source/Processor/Condition/IsPunctuationNode.ts +16 -0
- package/source/Processor/Condition/IsTransferable.ts +26 -0
- package/source/Processor/Condition/IsTurkishLeafNode.ts +16 -0
- package/source/Processor/Condition/IsVPNode.ts +10 -0
- package/source/Processor/Condition/IsVerbNode.ts +29 -0
- package/source/Processor/Condition/NodeDrawableCondition.ts +6 -0
- package/source/Processor/LayerExist/ContainsLayerInformation.ts +38 -0
- package/source/Processor/LayerExist/LeafListCondition.ts +6 -0
- package/source/Processor/LayerExist/NotContainsLayerInformation.ts +37 -0
- package/source/Processor/LayerExist/SemiContainsLayerInformation.ts +44 -0
- package/source/Processor/LeafConverter/LeafToEnglish.ts +11 -0
- package/source/Processor/LeafConverter/LeafToLanguageConverter.ts +35 -0
- package/source/Processor/LeafConverter/LeafToPersian.ts +10 -0
- package/source/Processor/LeafConverter/LeafToRootFormConverter.ts +18 -0
- package/source/Processor/LeafConverter/LeafToStringConverter.ts +6 -0
- package/source/Processor/LeafConverter/LeafToTurkish.ts +10 -0
- package/source/Processor/NodeDrawableCollector.ts +28 -0
- package/source/Processor/NodeModification/ConvertToLayeredFormat.ts +16 -0
- package/source/Processor/NodeModification/NodeModifier.ts +6 -0
- package/source/Processor/TreeModifier.ts +20 -0
- package/source/Processor/TreeToStringConverter.ts +31 -0
- package/source/TreeBankDrawable.ts +47 -0
- package/source/tsconfig.json +13 -0
- package/tests/ParseTreeDrawableTest.ts +161 -0
- package/trees/0000.dev +1 -0
- package/trees/0001.dev +1 -0
- package/trees/0002.dev +1 -0
- package/trees/0003.dev +1 -0
- package/trees/0004.dev +1 -0
- package/trees/0005.dev +1 -0
- package/trees/0006.dev +1 -0
- package/trees/0007.dev +1 -0
- package/trees/0008.dev +1 -0
- package/trees/0009.dev +1 -0
- package/trees2/0000.dev +1 -0
- package/trees2/0001.dev +1 -0
- package/trees2/0002.dev +1 -0
- package/trees2/0003.dev +1 -0
- package/trees2/0004.dev +1 -0
- package/trees2/0005.dev +1 -0
- package/trees2/0006.dev +1 -0
- package/trees2/0007.dev +1 -0
- package/trees2/0008.dev +1 -0
- package/trees2/0009.dev +1 -0
- 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,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,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,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,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
|
+
}
|