From bf24f7f67242d0b0786e29f81483824d0f6ecfc7 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Wed, 22 Jul 2020 16:02:51 +0200 Subject: [PATCH 01/44] Update invalid tag maps (#5796) * Remove copy of (old?) PTB tag map for: bn, eu * Remove unsupported features from: hy, pl, ro, ru --- spacy/lang/bn/__init__.py | 2 - spacy/lang/bn/tag_map.py | 82 --- spacy/lang/eu/__init__.py | 2 - spacy/lang/eu/tag_map.py | 71 -- spacy/lang/hy/tag_map.py | 423 ++++------- spacy/lang/pl/tag_map.py | 348 ++++----- spacy/lang/ro/tag_map.py | 682 ++++++++--------- spacy/lang/ru/tag_map.py | 1472 ++++++++++++++++++------------------- 8 files changed, 1375 insertions(+), 1707 deletions(-) delete mode 100644 spacy/lang/bn/tag_map.py delete mode 100644 spacy/lang/eu/tag_map.py diff --git a/spacy/lang/bn/__init__.py b/spacy/lang/bn/__init__.py index e70232552..7da50ff2d 100644 --- a/spacy/lang/bn/__init__.py +++ b/spacy/lang/bn/__init__.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals from .tokenizer_exceptions import TOKENIZER_EXCEPTIONS from .punctuation import TOKENIZER_PREFIXES, TOKENIZER_SUFFIXES, TOKENIZER_INFIXES -from .tag_map import TAG_MAP from .stop_words import STOP_WORDS from ..tokenizer_exceptions import BASE_EXCEPTIONS @@ -16,7 +15,6 @@ class BengaliDefaults(Language.Defaults): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) lex_attr_getters[LANG] = lambda text: "bn" tokenizer_exceptions = update_exc(BASE_EXCEPTIONS, TOKENIZER_EXCEPTIONS) - tag_map = TAG_MAP stop_words = STOP_WORDS prefixes = TOKENIZER_PREFIXES suffixes = TOKENIZER_SUFFIXES diff --git a/spacy/lang/bn/tag_map.py b/spacy/lang/bn/tag_map.py deleted file mode 100644 index 1efb35858..000000000 --- a/spacy/lang/bn/tag_map.py +++ /dev/null @@ -1,82 +0,0 @@ -# coding: utf8 -from __future__ import unicode_literals - -from ...symbols import POS, PUNCT, ADJ, CONJ, SCONJ, NUM, DET, ADV, ADP, X, VERB -from ...symbols import CCONJ, NOUN, PROPN, PART, INTJ, SPACE, PRON, AUX, SYM - - -TAG_MAP = { - ".": {POS: PUNCT, "PunctType": "peri"}, - ",": {POS: PUNCT, "PunctType": "comm"}, - "-LRB-": {POS: PUNCT, "PunctType": "brck", "PunctSide": "ini"}, - "-RRB-": {POS: PUNCT, "PunctType": "brck", "PunctSide": "fin"}, - "``": {POS: PUNCT, "PunctType": "quot", "PunctSide": "ini"}, - '""': {POS: PUNCT, "PunctType": "quot", "PunctSide": "fin"}, - "''": {POS: PUNCT, "PunctType": "quot", "PunctSide": "fin"}, - ":": {POS: PUNCT}, - "৳": {POS: SYM, "Other": {"SymType": "currency"}}, - "#": {POS: SYM, "Other": {"SymType": "numbersign"}}, - "AFX": {POS: ADJ, "Hyph": "yes"}, - "CC": {POS: CONJ, "ConjType": "coor"}, - "CD": {POS: NUM, "NumType": "card"}, - "DT": {POS: DET}, - "EX": {POS: ADV, "AdvType": "ex"}, - "FW": {POS: X, "Foreign": "yes"}, - "HYPH": {POS: PUNCT, "PunctType": "dash"}, - "IN": {POS: ADP}, - "JJ": {POS: ADJ, "Degree": "pos"}, - "JJR": {POS: ADJ, "Degree": "comp"}, - "JJS": {POS: ADJ, "Degree": "sup"}, - "LS": {POS: PUNCT, "NumType": "ord"}, - "MD": {POS: VERB, "VerbType": "mod"}, - "NIL": {POS: ""}, - "NN": {POS: NOUN, "Number": "sing"}, - "NNP": {POS: PROPN, "NounType": "prop", "Number": "sing"}, - "NNPS": {POS: PROPN, "NounType": "prop", "Number": "plur"}, - "NNS": {POS: NOUN, "Number": "plur"}, - "PDT": {POS: ADJ, "AdjType": "pdt", "PronType": "prn"}, - "POS": {POS: PART, "Poss": "yes"}, - "PRP": {POS: PRON, "PronType": "prs"}, - "PRP$": {POS: ADJ, "PronType": "prs", "Poss": "yes"}, - "RB": {POS: ADV, "Degree": "pos"}, - "RBR": {POS: ADV, "Degree": "comp"}, - "RBS": {POS: ADV, "Degree": "sup"}, - "RP": {POS: PART}, - "TO": {POS: PART, "PartType": "inf", "VerbForm": "inf"}, - "UH": {POS: INTJ}, - "VB": {POS: VERB, "VerbForm": "inf"}, - "VBD": {POS: VERB, "VerbForm": "fin", "Tense": "past"}, - "VBG": {POS: VERB, "VerbForm": "part", "Tense": "pres", "Aspect": "prog"}, - "VBN": {POS: VERB, "VerbForm": "part", "Tense": "past", "Aspect": "perf"}, - "VBP": {POS: VERB, "VerbForm": "fin", "Tense": "pres"}, - "VBZ": { - POS: VERB, - "VerbForm": "fin", - "Tense": "pres", - "Number": "sing", - "Person": 3, - }, - "WDT": {POS: ADJ, "PronType": "int|rel"}, - "WP": {POS: NOUN, "PronType": "int|rel"}, - "WP$": {POS: ADJ, "Poss": "yes", "PronType": "int|rel"}, - "WRB": {POS: ADV, "PronType": "int|rel"}, - "SP": {POS: SPACE}, - "ADV": {POS: ADV}, - "NOUN": {POS: NOUN}, - "ADP": {POS: ADP}, - "PRON": {POS: PRON}, - "SCONJ": {POS: SCONJ}, - "PROPN": {POS: PROPN}, - "DET": {POS: DET}, - "SYM": {POS: SYM}, - "INTJ": {POS: INTJ}, - "PUNCT": {POS: PUNCT}, - "NUM": {POS: NUM}, - "AUX": {POS: AUX}, - "X": {POS: X}, - "CONJ": {POS: CONJ}, - "CCONJ": {POS: CCONJ}, - "ADJ": {POS: ADJ}, - "VERB": {POS: VERB}, - "PART": {POS: PART}, -} diff --git a/spacy/lang/eu/__init__.py b/spacy/lang/eu/__init__.py index 4f3338c1d..b72529fab 100644 --- a/spacy/lang/eu/__init__.py +++ b/spacy/lang/eu/__init__.py @@ -4,7 +4,6 @@ from __future__ import unicode_literals from .stop_words import STOP_WORDS from .lex_attrs import LEX_ATTRS from .punctuation import TOKENIZER_SUFFIXES -from .tag_map import TAG_MAP from ..tokenizer_exceptions import BASE_EXCEPTIONS from ...language import Language @@ -17,7 +16,6 @@ class BasqueDefaults(Language.Defaults): lex_attr_getters[LANG] = lambda text: "eu" tokenizer_exceptions = BASE_EXCEPTIONS - tag_map = TAG_MAP stop_words = STOP_WORDS suffixes = TOKENIZER_SUFFIXES diff --git a/spacy/lang/eu/tag_map.py b/spacy/lang/eu/tag_map.py deleted file mode 100644 index 2499d7e3e..000000000 --- a/spacy/lang/eu/tag_map.py +++ /dev/null @@ -1,71 +0,0 @@ -# coding: utf8 -from __future__ import unicode_literals - -from ...symbols import POS, PUNCT, SYM, ADJ, CCONJ, NUM, DET, ADV, ADP, X, VERB -from ...symbols import NOUN, PROPN, PART, INTJ, SPACE, PRON - -TAG_MAP = { - ".": {POS: PUNCT, "PunctType": "peri"}, - ",": {POS: PUNCT, "PunctType": "comm"}, - "-LRB-": {POS: PUNCT, "PunctType": "brck", "PunctSide": "ini"}, - "-RRB-": {POS: PUNCT, "PunctType": "brck", "PunctSide": "fin"}, - "``": {POS: PUNCT, "PunctType": "quot", "PunctSide": "ini"}, - '""': {POS: PUNCT, "PunctType": "quot", "PunctSide": "fin"}, - "''": {POS: PUNCT, "PunctType": "quot", "PunctSide": "fin"}, - ":": {POS: PUNCT}, - "$": {POS: SYM, "Other": {"SymType": "currency"}}, - "#": {POS: SYM, "Other": {"SymType": "numbersign"}}, - "AFX": {POS: ADJ, "Hyph": "yes"}, - "CC": {POS: CCONJ, "ConjType": "coor"}, - "CD": {POS: NUM, "NumType": "card"}, - "DT": {POS: DET}, - "EX": {POS: ADV, "AdvType": "ex"}, - "FW": {POS: X, "Foreign": "yes"}, - "HYPH": {POS: PUNCT, "PunctType": "dash"}, - "IN": {POS: ADP}, - "JJ": {POS: ADJ, "Degree": "pos"}, - "JJR": {POS: ADJ, "Degree": "comp"}, - "JJS": {POS: ADJ, "Degree": "sup"}, - "LS": {POS: PUNCT, "NumType": "ord"}, - "MD": {POS: VERB, "VerbType": "mod"}, - "NIL": {POS: ""}, - "NN": {POS: NOUN, "Number": "sing"}, - "NNP": {POS: PROPN, "NounType": "prop", "Number": "sing"}, - "NNPS": {POS: PROPN, "NounType": "prop", "Number": "plur"}, - "NNS": {POS: NOUN, "Number": "plur"}, - "PDT": {POS: ADJ, "AdjType": "pdt", "PronType": "prn"}, - "POS": {POS: PART, "Poss": "yes"}, - "PRP": {POS: PRON, "PronType": "prs"}, - "PRP$": {POS: ADJ, "PronType": "prs", "Poss": "yes"}, - "RB": {POS: ADV, "Degree": "pos"}, - "RBR": {POS: ADV, "Degree": "comp"}, - "RBS": {POS: ADV, "Degree": "sup"}, - "RP": {POS: PART}, - "SP": {POS: SPACE}, - "SYM": {POS: SYM}, - "TO": {POS: PART, "PartType": "inf", "VerbForm": "inf"}, - "UH": {POS: INTJ}, - "VB": {POS: VERB, "VerbForm": "inf"}, - "VBD": {POS: VERB, "VerbForm": "fin", "Tense": "past"}, - "VBG": {POS: VERB, "VerbForm": "part", "Tense": "pres", "Aspect": "prog"}, - "VBN": {POS: VERB, "VerbForm": "part", "Tense": "past", "Aspect": "perf"}, - "VBP": {POS: VERB, "VerbForm": "fin", "Tense": "pres"}, - "VBZ": { - POS: VERB, - "VerbForm": "fin", - "Tense": "pres", - "Number": "sing", - "Person": 3, - }, - "WDT": {POS: ADJ, "PronType": "int|rel"}, - "WP": {POS: NOUN, "PronType": "int|rel"}, - "WP$": {POS: ADJ, "Poss": "yes", "PronType": "int|rel"}, - "WRB": {POS: ADV, "PronType": "int|rel"}, - "ADD": {POS: X}, - "NFP": {POS: PUNCT}, - "GW": {POS: X}, - "XX": {POS: X}, - "BES": {POS: VERB}, - "HVS": {POS: VERB}, - "_SP": {POS: SPACE}, -} diff --git a/spacy/lang/hy/tag_map.py b/spacy/lang/hy/tag_map.py index 722270110..4d5b6e918 100644 --- a/spacy/lang/hy/tag_map.py +++ b/spacy/lang/hy/tag_map.py @@ -27,7 +27,7 @@ TAG_MAP = { POS: ADP, "AdpType": "Post", "Number": "Plur", - "Person": "3", + "Person": "three", }, "ADP_AdpType=Post": {POS: ADP, "AdpType": "Post"}, "ADP_AdpType=Prep": {POS: ADP, "AdpType": "Prep"}, @@ -35,12 +35,11 @@ TAG_MAP = { "ADV_Degree=Cmp": {POS: ADV, "Degree": "Cmp"}, "ADV_Degree=Pos": {POS: ADV, "Degree": "Pos"}, "ADV_Degree=Sup": {POS: ADV, "Degree": "Sup"}, - "ADV_Distance=Dist|PronType=Dem": {POS: ADV, "Distance": "Dist", "PronType": "Dem"}, - "ADV_Distance=Dist|PronType=Exc": {POS: ADV, "Distance": "Dist", "PronType": "Exc"}, - "ADV_Distance=Med|PronType=Dem": {POS: ADV, "Distance": "Med", "PronType": "Dem"}, + "ADV_Distance=Dist|PronType=Dem": {POS: ADV, "PronType": "Dem"}, + "ADV_Distance=Dist|PronType=Exc": {POS: ADV, "PronType": "Exc"}, + "ADV_Distance=Med|PronType=Dem": {POS: ADV, "PronType": "Dem"}, "ADV_Distance=Med|PronType=Dem|Style=Coll": { POS: ADV, - "Distance": "Med", "PronType": "Dem", "Style": "Coll", }, @@ -63,7 +62,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "1", + "Person": "one", "Polarity": "Neg", "Tense": "Pres", "VerbForm": "Fin", @@ -73,7 +72,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "2", + "Person": "two", "Polarity": "Pos", "Tense": "Pres", "VerbForm": "Fin", @@ -83,7 +82,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Neg", "Tense": "Imp", "VerbForm": "Fin", @@ -93,7 +92,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Neg", "Tense": "Pres", "VerbForm": "Fin", @@ -103,7 +102,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", "Tense": "Imp", "VerbForm": "Fin", @@ -113,7 +112,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", "Tense": "Pres", "VerbForm": "Fin", @@ -123,7 +122,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Neg", "Tense": "Imp", "VerbForm": "Fin", @@ -133,7 +132,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Neg", "Tense": "Pres", "VerbForm": "Fin", @@ -143,7 +142,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", "Tense": "Imp", "VerbForm": "Fin", @@ -153,7 +152,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", "Tense": "Pres", "VerbForm": "Fin", @@ -163,7 +162,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Neg", "Tense": "Pres", "VerbForm": "Fin", @@ -173,7 +172,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Pos", "Tense": "Pres", "VerbForm": "Fin", @@ -183,7 +182,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", "Tense": "Imp", "VerbForm": "Fin", @@ -193,7 +192,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", "Tense": "Pres", "VerbForm": "Fin", @@ -203,7 +202,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", "Tense": "Imp", "VerbForm": "Fin", @@ -213,7 +212,7 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", "Tense": "Pres", "VerbForm": "Fin", @@ -227,7 +226,6 @@ TAG_MAP = { "DET_Case=Gen|Distance=Med|Number=Plur|Poss=Yes|PronType=Dem": { POS: DET, "Case": "Gen", - "Distance": "Med", "Number": "Plur", "Poss": "Yes", "PronType": "Dem", @@ -235,7 +233,6 @@ TAG_MAP = { "DET_Case=Gen|Distance=Med|Number=Sing|Poss=Yes|PronType=Dem": { POS: DET, "Case": "Gen", - "Distance": "Med", "Number": "Sing", "Poss": "Yes", "PronType": "Dem", @@ -244,7 +241,7 @@ TAG_MAP = { POS: DET, "Case": "Gen", "Number": "Plur", - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, @@ -252,8 +249,7 @@ TAG_MAP = { POS: DET, "Case": "Gen", "Number": "Plur", - "Person": "2", - "Polite": "Infm", + "Person": "two", "Poss": "Yes", "PronType": "Prs", }, @@ -261,24 +257,22 @@ TAG_MAP = { POS: DET, "Case": "Gen", "Number": "Plur", - "Person": "3", + "Person": "three", "Poss": "Yes", - "PronType": "Emp", }, "DET_Case=Gen|Number=Plur|Person=3|Poss=Yes|PronType=Emp|Reflex=Yes": { POS: DET, "Case": "Gen", "Number": "Plur", - "Person": "3", + "Person": "three", "Poss": "Yes", - "PronType": "Emp", "Reflex": "Yes", }, "DET_Case=Gen|Number=Sing|Person=1|Poss=Yes|PronType=Prs": { POS: DET, "Case": "Gen", "Number": "Sing", - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, @@ -286,8 +280,7 @@ TAG_MAP = { POS: DET, "Case": "Gen", "Number": "Sing", - "Person": "2", - "Polite": "Infm", + "Person": "two", "Poss": "Yes", "PronType": "Prs", }, @@ -295,24 +288,22 @@ TAG_MAP = { POS: DET, "Case": "Gen", "Number": "Sing", - "Person": "3", + "Person": "three", "Poss": "Yes", - "PronType": "Emp", }, "DET_Case=Gen|Number=Sing|Person=3|Poss=Yes|PronType=Emp|Reflex=Yes": { POS: DET, "Case": "Gen", "Number": "Sing", - "Person": "3", + "Person": "three", "Poss": "Yes", - "PronType": "Emp", "Reflex": "Yes", }, "DET_Case=Gen|Number=Sing|Person=3|Poss=Yes|PronType=Prs": { POS: DET, "Case": "Gen", "Number": "Sing", - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, @@ -323,30 +314,26 @@ TAG_MAP = { "Poss": "Yes", "PronType": "Rel", }, - "DET_Distance=Dist|PronType=Dem": {POS: DET, "Distance": "Dist", "PronType": "Dem"}, + "DET_Distance=Dist|PronType=Dem": {POS: DET, "PronType": "Dem"}, "DET_Distance=Dist|PronType=Dem|Style=Coll": { POS: DET, - "Distance": "Dist", "PronType": "Dem", "Style": "Coll", }, "DET_Distance=Dist|PronType=Dem|Style=Vrnc": { POS: DET, - "Distance": "Dist", "PronType": "Dem", "Style": "Vrnc", }, - "DET_Distance=Med|PronType=Dem": {POS: DET, "Distance": "Med", "PronType": "Dem"}, + "DET_Distance=Med|PronType=Dem": {POS: DET, "PronType": "Dem"}, "DET_Distance=Med|PronType=Dem|Style=Coll": { POS: DET, - "Distance": "Med", "PronType": "Dem", "Style": "Coll", }, - "DET_Distance=Prox|PronType=Dem": {POS: DET, "Distance": "Prox", "PronType": "Dem"}, + "DET_Distance=Prox|PronType=Dem": {POS: DET, "PronType": "Dem"}, "DET_Distance=Prox|PronType=Dem|Style=Coll": { POS: DET, - "Distance": "Prox", "PronType": "Dem", "Style": "Coll", }, @@ -386,7 +373,6 @@ TAG_MAP = { "Case": "Abl", "Definite": "Ind", "Number": "Plur", - "Style": "Slng", }, "NOUN_Animacy=Hum|Case=Abl|Definite=Ind|Number=Sing": { POS: NOUN, @@ -415,14 +401,12 @@ TAG_MAP = { "Case": "Dat", "Definite": "Def", "Number": "Sing", - "Style": "Slng", }, "NOUN_Animacy=Hum|Case=Dat|Definite=Ind|Number=Assoc": { POS: NOUN, "Animacy": "Hum", "Case": "Dat", "Definite": "Ind", - "Number": "Assoc", }, "NOUN_Animacy=Hum|Case=Dat|Definite=Ind|Number=Plur": { POS: NOUN, @@ -445,7 +429,6 @@ TAG_MAP = { "Case": "Dat", "Definite": "Ind", "Number": "Plur", - "Style": "Slng", }, "NOUN_Animacy=Hum|Case=Dat|Definite=Ind|Number=Sing": { POS: NOUN, @@ -468,7 +451,7 @@ TAG_MAP = { "Case": "Dat", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Hum|Case=Dat|Number=Sing|Number=Sing|Person=1|Style=Coll": { POS: NOUN, @@ -476,7 +459,7 @@ TAG_MAP = { "Case": "Dat", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", "Style": "Coll", }, "NOUN_Animacy=Hum|Case=Ins|Definite=Ind|Number=Sing": { @@ -499,7 +482,6 @@ TAG_MAP = { "Case": "Nom", "Definite": "Def", "Number": "Plur", - "Style": "Slng", }, "NOUN_Animacy=Hum|Case=Nom|Definite=Def|Number=Sing": { POS: NOUN, @@ -521,7 +503,6 @@ TAG_MAP = { "Animacy": "Hum", "Case": "Nom", "Definite": "Ind", - "Number": "Assoc", }, "NOUN_Animacy=Hum|Case=Nom|Definite=Ind|Number=Plur": { POS: NOUN, @@ -544,7 +525,6 @@ TAG_MAP = { "Case": "Nom", "Definite": "Ind", "Number": "Plur", - "Style": "Slng", }, "NOUN_Animacy=Hum|Case=Nom|Definite=Ind|Number=Plur|Typo=Yes": { POS: NOUN, @@ -575,14 +555,13 @@ TAG_MAP = { "Case": "Nom", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Nhum|Case=Abl|Definite=Ind|Number=Coll": { POS: NOUN, "Animacy": "Nhum", "Case": "Abl", "Definite": "Ind", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Abl|Definite=Ind|Number=Plur": { POS: NOUN, @@ -612,14 +591,13 @@ TAG_MAP = { "Case": "Abl", "Number": "Sing", "Number": "Sing", - "Person": "2", + "Person": "two", }, "NOUN_Animacy=Nhum|Case=Dat|Definite=Def|Number=Coll": { POS: NOUN, "Animacy": "Nhum", "Case": "Dat", "Definite": "Def", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Dat|Definite=Def|Number=Plur": { POS: NOUN, @@ -672,7 +650,6 @@ TAG_MAP = { "Animacy": "Nhum", "Case": "Dat", "Definite": "Ind", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Dat|Definite=Ind|Number=Plur": { POS: NOUN, @@ -716,9 +693,9 @@ TAG_MAP = { POS: NOUN, "Animacy": "Nhum", "Case": "Dat", - # "Number": "Coll", + # "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Nhum|Case=Dat|Number=Sing|Number=Sing|Person=1": { POS: NOUN, @@ -726,7 +703,7 @@ TAG_MAP = { "Case": "Dat", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Nhum|Case=Dat|Number=Sing|Number=Sing|Person=2": { POS: NOUN, @@ -734,7 +711,7 @@ TAG_MAP = { "Case": "Dat", "Number": "Sing", "Number": "Sing", - "Person": "2", + "Person": "two", }, "NOUN_Animacy=Nhum|Case=Gen|Definite=Ind|Number=Sing|Style=Arch": { POS: NOUN, @@ -749,7 +726,6 @@ TAG_MAP = { "Animacy": "Nhum", "Case": "Ins", "Definite": "Ind", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Ins|Definite=Ind|Number=Plur": { POS: NOUN, @@ -779,7 +755,7 @@ TAG_MAP = { "Case": "Ins", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Nhum|Case=Loc|Definite=Ind|Number=Plur": { POS: NOUN, @@ -801,14 +777,13 @@ TAG_MAP = { "Case": "Loc", "Number": "Sing", "Number": "Sing", - "Person": "2", + "Person": "two", }, "NOUN_Animacy=Nhum|Case=Nom|Definite=Def|Number=Coll": { POS: NOUN, "Animacy": "Nhum", "Case": "Nom", "Definite": "Def", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Nom|Definite=Def|Number=Plur|Number=Sing|Poss=Yes": { POS: NOUN, @@ -846,14 +821,12 @@ TAG_MAP = { "Animacy": "Nhum", "Case": "Nom", "Definite": "Ind", - "Number": "Coll", }, "NOUN_Animacy=Nhum|Case=Nom|Definite=Ind|Number=Coll|Typo=Yes": { POS: NOUN, "Animacy": "Nhum", "Case": "Nom", "Definite": "Ind", - "Number": "Coll", "Typo": "Yes", }, "NOUN_Animacy=Nhum|Case=Nom|Definite=Ind|Number=Plur": { @@ -882,7 +855,7 @@ TAG_MAP = { "Case": "Nom", # "Number": "Plur", "Number": "Sing", - "Person": "2", + "Person": "two", }, "NOUN_Animacy=Nhum|Case=Nom|Number=Sing|Number=Sing|Person=1": { POS: NOUN, @@ -890,7 +863,7 @@ TAG_MAP = { "Case": "Nom", "Number": "Sing", "Number": "Sing", - "Person": "1", + "Person": "one", }, "NOUN_Animacy=Nhum|Case=Nom|Number=Sing|Number=Sing|Person=2": { POS: NOUN, @@ -898,7 +871,7 @@ TAG_MAP = { "Case": "Nom", "Number": "Sing", "Number": "Sing", - "Person": "2", + "Person": "two", }, "NUM_NumForm=Digit|NumType=Card": {POS: NUM, "NumForm": "Digit", "NumType": "Card"}, "NUM_NumForm=Digit|NumType=Frac|Typo=Yes": { @@ -907,43 +880,37 @@ TAG_MAP = { "NumType": "Frac", "Typo": "Yes", }, - "NUM_NumForm=Digit|NumType=Range": { - POS: NUM, - "NumForm": "Digit", - "NumType": "Range", - }, + "NUM_NumForm=Digit|NumType=Range": {POS: NUM, "NumForm": "Digit",}, "NUM_NumForm=Word|NumType=Card": {POS: NUM, "NumForm": "Word", "NumType": "Card"}, "NUM_NumForm=Word|NumType=Dist": {POS: NUM, "NumForm": "Word", "NumType": "Dist"}, - "NUM_NumForm=Word|NumType=Range": {POS: NUM, "NumForm": "Word", "NumType": "Range"}, + "NUM_NumForm=Word|NumType=Range": {POS: NUM, "NumForm": "Word",}, "PART_Polarity=Neg": {POS: PART, "Polarity": "Neg"}, "PRON_Case=Abl|Definite=Ind|Number=Sing|Person=3|PronType=Prs": { POS: PRON, "Case": "Abl", "Definite": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Abl|Number=Plur|Person=3|PronType=Prs": { POS: PRON, "Case": "Abl", "Number": "Plur", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Abl|Number=Sing|Person=2|Polite=Infm|PronType=Prs": { POS: PRON, "Case": "Abl", "Number": "Sing", - "Person": "2", - "Polite": "Infm", + "Person": "two", "PronType": "Prs", }, "PRON_Case=Dat|Definite=Def|Distance=Dist|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Dat", "Definite": "Def", - "Distance": "Dist", "Number": "Sing", "PronType": "Dem", }, @@ -952,7 +919,7 @@ TAG_MAP = { "Case": "Dat", "Definite": "Def", "Number": "Sing", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Dat|Definite=Ind|Number=Sing|PronType=Int": { @@ -965,14 +932,12 @@ TAG_MAP = { "PRON_Case=Dat|Distance=Dist|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Dat", - "Distance": "Dist", "Number": "Sing", "PronType": "Dem", }, "PRON_Case=Dat|Distance=Med|Number=Plur|PronType=Dem": { POS: PRON, "Case": "Dat", - "Distance": "Med", "Number": "Plur", "PronType": "Dem", }, @@ -980,30 +945,28 @@ TAG_MAP = { POS: PRON, "Case": "Dat", "Number": "Plur", - "Person": "1", + "Person": "one", "PronType": "Prs", }, "PRON_Case=Dat|Number=Plur|Person=2|Polite=Infm|PronType=Prs": { POS: PRON, "Case": "Dat", "Number": "Plur", - "Person": "2", - "Polite": "Infm", + "Person": "two", "PronType": "Prs", }, "PRON_Case=Dat|Number=Plur|Person=3|PronType=Emp|Reflex=Yes": { POS: PRON, "Case": "Dat", "Number": "Plur", - "Person": "3", - "PronType": "Emp", + "Person": "three", "Reflex": "Yes", }, "PRON_Case=Dat|Number=Plur|Person=3|PronType=Prs": { POS: PRON, "Case": "Dat", "Number": "Plur", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Dat|Number=Plur|PronType=Rcp": { @@ -1016,30 +979,27 @@ TAG_MAP = { POS: PRON, "Case": "Dat", "Number": "Sing", - "Person": "1", + "Person": "one", "PronType": "Prs", }, "PRON_Case=Dat|Number=Sing|Person=2|Polite=Infm|PronType=Prs": { POS: PRON, "Case": "Dat", "Number": "Sing", - "Person": "2", - "Polite": "Infm", + "Person": "two", "PronType": "Prs", }, "PRON_Case=Dat|Number=Sing|Person=3|PronType=Emp": { POS: PRON, "Case": "Dat", "Number": "Sing", - "Person": "3", - "PronType": "Emp", + "Person": "three", }, "PRON_Case=Dat|Number=Sing|Person=3|PronType=Emp|Reflex=Yes": { POS: PRON, "Case": "Dat", "Number": "Sing", - "Person": "3", - "PronType": "Emp", + "Person": "three", "Reflex": "Yes", }, "PRON_Case=Dat|Number=Sing|PronType=Int": { @@ -1058,7 +1018,6 @@ TAG_MAP = { "PRON_Case=Gen|Distance=Med|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Gen", - "Distance": "Med", "Number": "Sing", "PronType": "Dem", }, @@ -1066,21 +1025,21 @@ TAG_MAP = { POS: PRON, "Case": "Gen", "Number": "Plur", - "Person": "1", + "Person": "one", "PronType": "Prs", }, "PRON_Case=Gen|Number=Sing|Person=2|PronType=Prs": { POS: PRON, "Case": "Gen", "Number": "Sing", - "Person": "2", + "Person": "two", "PronType": "Prs", }, "PRON_Case=Gen|Number=Sing|Person=3|PronType=Prs": { POS: PRON, "Case": "Gen", "Number": "Sing", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Gen|PronType=Tot": {POS: PRON, "Case": "Gen", "PronType": "Tot"}, @@ -1094,7 +1053,6 @@ TAG_MAP = { "PRON_Case=Ins|Distance=Med|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Ins", - "Distance": "Med", "Number": "Sing", "PronType": "Dem", }, @@ -1108,7 +1066,6 @@ TAG_MAP = { "PRON_Case=Loc|Distance=Med|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Loc", - "Distance": "Med", "Number": "Sing", "PronType": "Dem", }, @@ -1116,7 +1073,6 @@ TAG_MAP = { POS: PRON, "Case": "Nom", "Definite": "Def", - "Distance": "Dist", "Number": "Plur", "PronType": "Dem", }, @@ -1124,7 +1080,6 @@ TAG_MAP = { POS: PRON, "Case": "Nom", "Definite": "Def", - "Distance": "Med", "Number": "Sing", "PronType": "Dem", "Style": "Coll", @@ -1167,29 +1122,25 @@ TAG_MAP = { "PRON_Case=Nom|Distance=Dist|Number=Plur|Person=1|PronType=Dem": { POS: PRON, "Case": "Nom", - "Distance": "Dist", "Number": "Plur", - "Person": "1", + "Person": "one", "PronType": "Dem", }, "PRON_Case=Nom|Distance=Med|Number=Plur|PronType=Dem": { POS: PRON, "Case": "Nom", - "Distance": "Med", "Number": "Plur", "PronType": "Dem", }, "PRON_Case=Nom|Distance=Med|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Nom", - "Distance": "Med", "Number": "Sing", "PronType": "Dem", }, "PRON_Case=Nom|Distance=Prox|Number=Sing|PronType=Dem": { POS: PRON, "Case": "Nom", - "Distance": "Prox", "Number": "Sing", "PronType": "Dem", }, @@ -1197,21 +1148,20 @@ TAG_MAP = { POS: PRON, "Case": "Nom", "Number": "Plur", - "Person": "1", + "Person": "one", "PronType": "Prs", }, "PRON_Case=Nom|Number=Plur|Person=3|PronType=Emp": { POS: PRON, "Case": "Nom", "Number": "Plur", - "Person": "3", - "PronType": "Emp", + "Person": "three", }, "PRON_Case=Nom|Number=Plur|Person=3|PronType=Prs": { POS: PRON, "Case": "Nom", "Number": "Plur", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Nom|Number=Plur|PronType=Rel": { @@ -1225,44 +1175,41 @@ TAG_MAP = { "Case": "Nom", # "Number": "Sing", "Number": "Plur", - # "Person": "3", - "Person": "1", - "PronType": "Emp", + # "Person": "three", + "Person": "one", }, "PRON_Case=Nom|Number=Sing|Person=1|PronType=Int": { POS: PRON, "Case": "Nom", "Number": "Sing", - "Person": "1", + "Person": "one", "PronType": "Int", }, "PRON_Case=Nom|Number=Sing|Person=1|PronType=Prs": { POS: PRON, "Case": "Nom", "Number": "Sing", - "Person": "1", + "Person": "one", "PronType": "Prs", }, "PRON_Case=Nom|Number=Sing|Person=2|Polite=Infm|PronType=Prs": { POS: PRON, "Case": "Nom", "Number": "Sing", - "Person": "2", - "Polite": "Infm", + "Person": "two", "PronType": "Prs", }, "PRON_Case=Nom|Number=Sing|Person=3|PronType=Emp": { POS: PRON, "Case": "Nom", "Number": "Sing", - "Person": "3", - "PronType": "Emp", + "Person": "three", }, "PRON_Case=Nom|Number=Sing|Person=3|PronType=Prs": { POS: PRON, "Case": "Nom", "Number": "Sing", - "Person": "3", + "Person": "three", "PronType": "Prs", }, "PRON_Case=Nom|Number=Sing|PronType=Int": { @@ -1280,26 +1227,23 @@ TAG_MAP = { "PRON_Case=Nom|Person=1|PronType=Tot": { POS: PRON, "Case": "Nom", - "Person": "1", + "Person": "one", "PronType": "Tot", }, "PRON_Case=Nom|PronType=Ind": {POS: PRON, "Case": "Nom", "PronType": "Ind"}, "PRON_Case=Nom|PronType=Tot": {POS: PRON, "Case": "Nom", "PronType": "Tot"}, "PRON_Distance=Dist|Number=Sing|PronType=Dem": { POS: PRON, - "Distance": "Dist", "Number": "Sing", "PronType": "Dem", }, "PRON_Distance=Med|PronType=Dem|Style=Coll": { POS: PRON, - "Distance": "Med", "PronType": "Dem", "Style": "Coll", }, "PRON_Distance=Prox|PronType=Dem|Style=Coll": { POS: PRON, - "Distance": "Prox", "PronType": "Dem", "Style": "Coll", }, @@ -1384,7 +1328,6 @@ TAG_MAP = { "Case": "Abl", "Definite": "Ind", "NameType": "Geo", - "Number": "Coll", }, "PROPN_Animacy=Nhum|Case=Abl|Definite=Ind|NameType=Geo|Number=Sing": { POS: PROPN, @@ -1449,7 +1392,6 @@ TAG_MAP = { "Case": "Nom", "Definite": "Ind", "NameType": "Geo", - "Number": "Coll", }, "PROPN_Animacy=Nhum|Case=Nom|Definite=Ind|NameType=Geo|Number=Sing": { POS: PROPN, @@ -1471,41 +1413,31 @@ TAG_MAP = { "SCONJ_Style=Coll": {POS: SCONJ, "Style": "Coll"}, "VERB_Aspect=Dur|Polarity=Neg|Subcat=Intr|VerbForm=Part|Voice=Pass": { POS: VERB, - "Aspect": "Dur", "Polarity": "Neg", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, "VERB_Aspect=Dur|Polarity=Pos|Subcat=Intr|VerbForm=Part|Voice=Mid": { POS: VERB, - "Aspect": "Dur", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, "VERB_Aspect=Dur|Polarity=Pos|Subcat=Intr|VerbForm=Part|Voice=Pass": { POS: VERB, - "Aspect": "Dur", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, "VERB_Aspect=Dur|Polarity=Pos|Subcat=Tran|VerbForm=Part|Voice=Act": { POS: VERB, - "Aspect": "Dur", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, "VERB_Aspect=Dur|Polarity=Pos|Subcat=Tran|VerbForm=Part|Voice=Mid": { POS: VERB, - "Aspect": "Dur", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Mid", }, @@ -1514,9 +1446,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "1", + "Person": "one", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1526,9 +1457,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1538,9 +1468,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -1550,9 +1479,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -1562,9 +1490,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Act", @@ -1574,9 +1501,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1586,9 +1512,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -1598,9 +1523,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1610,9 +1534,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -1622,9 +1545,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Act", @@ -1634,9 +1556,8 @@ TAG_MAP = { "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1645,7 +1566,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Imp", "Style": "Coll", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, @@ -1653,48 +1573,41 @@ TAG_MAP = { POS: VERB, "Aspect": "Imp", "Style": "Vrnc", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, "VERB_Aspect=Imp|Subcat=Intr|VerbForm=Part": { POS: VERB, "Aspect": "Imp", - "Subcat": "Intr", "VerbForm": "Part", }, "VERB_Aspect=Imp|Subcat=Intr|VerbForm=Part|Voice=Act": { POS: VERB, "Aspect": "Imp", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Act", }, "VERB_Aspect=Imp|Subcat=Intr|VerbForm=Part|Voice=Mid": { POS: VERB, "Aspect": "Imp", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, "VERB_Aspect=Imp|Subcat=Intr|VerbForm=Part|Voice=Pass": { POS: VERB, "Aspect": "Imp", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, "VERB_Aspect=Imp|Subcat=Tran|VerbForm=Part|Voice=Act": { POS: VERB, "Aspect": "Imp", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, "VERB_Aspect=Imp|Subcat=Tran|VerbForm=Part|Voice=Cau": { POS: VERB, "Aspect": "Imp", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Cau", }, @@ -1703,9 +1616,7 @@ TAG_MAP = { "Aspect": "Iter", "Case": "Ins", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -1714,9 +1625,7 @@ TAG_MAP = { "Aspect": "Iter", "Case": "Ins", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Gdv", "Voice": "Act", }, @@ -1726,9 +1635,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1738,9 +1646,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1750,9 +1657,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1762,9 +1668,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1774,10 +1679,9 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", "Style": "Vrnc", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1787,9 +1691,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1799,9 +1702,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1811,9 +1713,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1823,10 +1724,9 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", "Style": "Vrnc", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1836,9 +1736,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1848,9 +1747,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1860,9 +1758,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act", @@ -1872,9 +1769,8 @@ TAG_MAP = { "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid", @@ -1883,7 +1779,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Perf", "Polarity": "Neg", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, @@ -1891,7 +1786,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Perf", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, @@ -1899,7 +1793,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Perf", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, @@ -1907,7 +1800,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Perf", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, @@ -1915,7 +1807,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Perf", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Pass", }, @@ -1929,35 +1820,30 @@ TAG_MAP = { "VERB_Aspect=Perf|Subcat=Intr|VerbForm=Part|Voice=Mid": { POS: VERB, "Aspect": "Perf", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, "VERB_Aspect=Perf|Subcat=Intr|VerbForm=Part|Voice=Pass": { POS: VERB, "Aspect": "Perf", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, "VERB_Aspect=Perf|Subcat=Tran|VerbForm=Part|Voice=Act": { POS: VERB, "Aspect": "Perf", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, "VERB_Aspect=Perf|Subcat=Tran|VerbForm=Part|Voice=Cau": { POS: VERB, "Aspect": "Perf", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Cau", }, "VERB_Aspect=Prog|Subcat=Intr|VerbForm=Conv|Voice=Mid": { POS: VERB, "Aspect": "Prog", - "Subcat": "Intr", "VerbForm": "Conv", "Voice": "Mid", }, @@ -1966,7 +1852,6 @@ TAG_MAP = { "Aspect": "Prosp", "Connegative": "Yes", "Mood": "Cnd", - "Subcat": "Tran", "VerbForm": "Fin", "Voice": "Act", }, @@ -1975,10 +1860,9 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", "Style": "Vrnc", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -1988,9 +1872,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2000,9 +1883,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2012,9 +1894,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2024,9 +1905,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2036,9 +1916,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Pass", @@ -2048,9 +1927,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Act", @@ -2060,9 +1938,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Cnd", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2072,8 +1949,7 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Imp", "Number": "Sing", - "Person": "2", - "Subcat": "Intr", + "Person": "two", "VerbForm": "Fin", "Voice": "Mid", }, @@ -2082,8 +1958,7 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Imp", "Number": "Sing", - "Person": "2", - "Subcat": "Tran", + "Person": "two", "VerbForm": "Fin", "Voice": "Act", }, @@ -2092,9 +1967,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Plur", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2104,9 +1978,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2116,9 +1989,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Plur", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2128,9 +2000,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Neg", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2140,9 +2011,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2152,9 +2022,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2164,9 +2033,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "1", + "Person": "one", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2176,9 +2044,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Act", @@ -2188,9 +2055,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "2", + "Person": "two", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2200,9 +2066,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Mid", @@ -2212,9 +2077,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid", @@ -2224,9 +2088,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Fin", "Voice": "Pass", }, @@ -2235,9 +2098,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Imp", "VerbForm": "Fin", "Voice": "Act", @@ -2247,9 +2109,8 @@ TAG_MAP = { "Aspect": "Prosp", "Mood": "Sub", "Number": "Sing", - "Person": "3", + "Person": "three", "Polarity": "Pos", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2258,9 +2119,8 @@ TAG_MAP = { POS: VERB, "Aspect": "Prosp", "Mood": "Sub", - "Person": "1", + "Person": "one", "Polarity": "Neg", - "Subcat": "Tran", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act", @@ -2269,7 +2129,6 @@ TAG_MAP = { POS: VERB, "Aspect": "Prosp", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, @@ -2277,28 +2136,24 @@ TAG_MAP = { POS: VERB, "Aspect": "Prosp", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, "VERB_Aspect=Prosp|Subcat=Intr|VerbForm=Part|Voice=Mid": { POS: VERB, "Aspect": "Prosp", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Mid", }, "VERB_Aspect=Prosp|Subcat=Intr|VerbForm=Part|Voice=Pass": { POS: VERB, "Aspect": "Prosp", - "Subcat": "Intr", "VerbForm": "Part", "Voice": "Pass", }, "VERB_Aspect=Prosp|Subcat=Tran|VerbForm=Part|Voice=Act": { POS: VERB, "Aspect": "Prosp", - "Subcat": "Tran", "VerbForm": "Part", "Voice": "Act", }, @@ -2306,9 +2161,7 @@ TAG_MAP = { POS: VERB, "Case": "Abl", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -2316,9 +2169,7 @@ TAG_MAP = { POS: VERB, "Case": "Abl", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Pass", }, @@ -2326,9 +2177,7 @@ TAG_MAP = { POS: VERB, "Case": "Abl", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Gdv", "Voice": "Act", }, @@ -2336,9 +2185,7 @@ TAG_MAP = { POS: VERB, "Case": "Dat", "Definite": "Def", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -2346,9 +2193,7 @@ TAG_MAP = { POS: VERB, "Case": "Dat", "Definite": "Ind", - "Number": "Coll", "Polarity": "Neg", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Pass", }, @@ -2356,9 +2201,7 @@ TAG_MAP = { POS: VERB, "Case": "Dat", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -2366,9 +2209,7 @@ TAG_MAP = { POS: VERB, "Case": "Dat", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Gdv", "Voice": "Act", }, @@ -2376,9 +2217,7 @@ TAG_MAP = { POS: VERB, "Case": "Ins", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -2386,9 +2225,7 @@ TAG_MAP = { POS: VERB, "Case": "Ins", "Definite": "Ind", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Gdv", "Voice": "Act", }, @@ -2396,9 +2233,7 @@ TAG_MAP = { POS: VERB, "Case": "Nom", "Definite": "Def", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Gdv", "Voice": "Mid", }, @@ -2406,9 +2241,7 @@ TAG_MAP = { POS: VERB, "Case": "Nom", "Definite": "Def", - "Number": "Coll", "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Gdv", "Voice": "Act", }, @@ -2416,15 +2249,13 @@ TAG_MAP = { POS: VERB, "Mood": "Imp", "Number": "Sing", - "Person": "2", - "Subcat": "Intr", + "Person": "two", "VerbForm": "Fin", "Voice": "Mid", }, "VERB_Polarity=Neg|Subcat=Intr|VerbForm=Inf|Voice=Mid": { POS: VERB, "Polarity": "Neg", - "Subcat": "Intr", "VerbForm": "Inf", "Voice": "Mid", }, @@ -2432,7 +2263,6 @@ TAG_MAP = { POS: VERB, "Polarity": "Pos", "Style": "Coll", - "Subcat": "Tran", "VerbForm": "Inf", "Voice": "Act", }, @@ -2440,28 +2270,24 @@ TAG_MAP = { POS: VERB, "Polarity": "Pos", "Style": "Vrnc", - "Subcat": "Tran", "VerbForm": "Inf", "Voice": "Act", }, "VERB_Polarity=Pos|Subcat=Intr|VerbForm=Inf|Voice=Mid": { POS: VERB, "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Inf", "Voice": "Mid", }, "VERB_Polarity=Pos|Subcat=Intr|VerbForm=Inf|Voice=Pass": { POS: VERB, "Polarity": "Pos", - "Subcat": "Intr", "VerbForm": "Inf", "Voice": "Pass", }, "VERB_Polarity=Pos|Subcat=Tran|Typo=Yes|VerbForm=Inf|Voice=Act": { POS: VERB, "Polarity": "Pos", - "Subcat": "Tran", "Typo": "Yes", "VerbForm": "Inf", "Voice": "Act", @@ -2469,7 +2295,6 @@ TAG_MAP = { "VERB_Polarity=Pos|Subcat=Tran|VerbForm=Inf|Voice=Act": { POS: VERB, "Polarity": "Pos", - "Subcat": "Tran", "VerbForm": "Inf", "Voice": "Act", }, diff --git a/spacy/lang/pl/tag_map.py b/spacy/lang/pl/tag_map.py index 5356c26cb..ed7d6487e 100644 --- a/spacy/lang/pl/tag_map.py +++ b/spacy/lang/pl/tag_map.py @@ -104,79 +104,79 @@ TAG_MAP = { "adv:com": {POS: ADV, "Degree": "cmp"}, "adv:pos": {POS: ADV, "Degree": "pos"}, "adv:sup": {POS: ADV, "Degree": "sup"}, - "aglt:pl:pri:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": 1, "Aspect": "imp", "Variant": "short"}, - "aglt:pl:pri:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": 1, "Aspect": "imp", "Variant": "long"}, - "aglt:pl:sec:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": 2, "Aspect": "imp", "Variant": "short"}, - "aglt:pl:sec:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": 2, "Aspect": "imp", "Variant": "long"}, - "aglt:sg:pri:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": 1, "Aspect": "imp", "Variant": "short"}, - "aglt:sg:pri:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": 1, "Aspect": "imp", "Variant": "long"}, - "aglt:sg:sec:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": 2, "Aspect": "imp", "Variant": "short"}, - "aglt:sg:sec:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": 2, "Aspect": "imp", "Variant": "long"}, - "bedzie:pl:pri:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": 1, "Aspect": "imp"}, - "bedzie:pl:sec:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": 2, "Aspect": "imp"}, - "bedzie:pl:ter:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": 3, "Aspect": "imp"}, - "bedzie:sg:pri:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": 1, "Aspect": "imp"}, - "bedzie:sg:sec:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": 2, "Aspect": "imp"}, - "bedzie:sg:ter:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": 3, "Aspect": "imp"}, + "aglt:pl:pri:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": "one", "Aspect": "imp", }, + "aglt:pl:pri:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": "one", "Aspect": "imp", }, + "aglt:pl:sec:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": "two", "Aspect": "imp", }, + "aglt:pl:sec:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "plur", "Person": "two", "Aspect": "imp", }, + "aglt:sg:pri:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": "one", "Aspect": "imp", }, + "aglt:sg:pri:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": "one", "Aspect": "imp", }, + "aglt:sg:sec:imperf:nwok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": "two", "Aspect": "imp", }, + "aglt:sg:sec:imperf:wok": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "pres", "Number": "sing", "Person": "two", "Aspect": "imp", }, + "bedzie:pl:pri:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": "one", "Aspect": "imp"}, + "bedzie:pl:sec:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": "two", "Aspect": "imp"}, + "bedzie:pl:ter:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "plur", "Person": "three", "Aspect": "imp"}, + "bedzie:sg:pri:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": "one", "Aspect": "imp"}, + "bedzie:sg:sec:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": "two", "Aspect": "imp"}, + "bedzie:sg:ter:imperf": {POS: AUX, "Aspect": "imp", "Mood": "ind", "VerbForm": "fin", "Tense": "fut", "Number": "sing", "Person": "three", "Aspect": "imp"}, "burk": {POS: X}, "comp": {POS: SCONJ}, "conj": {POS: CCONJ}, "depr:pl:nom:m2": {POS: NOUN, "Animacy": "anim", "Number": "plur", "Case": "nom", "Gender": "masc", "Animacy": "anim"}, "depr:pl:voc:m2": {POS: NOUN, "Animacy": "anim", "Number": "plur", "Case": "voc", "Gender": "masc", "Animacy": "anim"}, - "fin:pl:pri:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 1, "Aspect": "imp"}, - "fin:pl:pri:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 1, "Aspect": "imp|perf"}, - "fin:pl:pri:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 1, "Aspect": "perf"}, - "fin:pl:sec:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 2, "Aspect": "imp"}, - "fin:pl:sec:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 2, "Aspect": "imp|perf"}, - "fin:pl:sec:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 2, "Aspect": "perf"}, - "fin:pl:ter:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 3, "Aspect": "imp"}, - "fin:pl:ter:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 3, "Aspect": "imp|perf"}, - "fin:pl:ter:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": 3, "Aspect": "perf"}, - "fin:sg:pri:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 1, "Aspect": "imp"}, - "fin:sg:pri:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 1, "Aspect": "imp|perf"}, - "fin:sg:pri:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 1, "Aspect": "perf"}, - "fin:sg:sec:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 2, "Aspect": "imp"}, - "fin:sg:sec:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 2, "Aspect": "imp|perf"}, - "fin:sg:sec:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 2, "Aspect": "perf"}, - "fin:sg:ter:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 3, "Aspect": "imp"}, - "fin:sg:ter:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 3, "Aspect": "imp|perf"}, - "fin:sg:ter:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": 3, "Aspect": "perf"}, - "ger:sg:dat.loc:n2:imperf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, - "ger:sg:dat.loc:n2:imperf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, - "ger:sg:dat.loc:n2:imperf.perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, - "ger:sg:dat.loc:n2:imperf.perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, - "ger:sg:dat.loc:n2:perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, - "ger:sg:dat.loc:n2:perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, - "ger:sg:gen:n2:imperf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, - "ger:sg:gen:n2:imperf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, - "ger:sg:gen:n2:imperf.perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, - "ger:sg:gen:n2:imperf.perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, - "ger:sg:gen:n2:perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, - "ger:sg:gen:n2:perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, - "ger:sg:inst:n2:imperf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, - "ger:sg:inst:n2:imperf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, - "ger:sg:inst:n2:imperf.perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, - "ger:sg:inst:n2:imperf.perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, - "ger:sg:inst:n2:perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, - "ger:sg:inst:n2:perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, - "ger:sg:nom.acc:n2:imperf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, - "ger:sg:nom.acc:n2:imperf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, - "ger:sg:nom.acc:n2:imperf.perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, - "ger:sg:nom.acc:n2:imperf.perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, - "ger:sg:nom.acc:n2:perf:aff": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, - "ger:sg:nom.acc:n2:perf:neg": {POS: VERB, "VerbForm": "vnoun", "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, + "fin:pl:pri:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "one", "Aspect": "imp"}, + "fin:pl:pri:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "one", "Aspect": "imp|perf"}, + "fin:pl:pri:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "one", "Aspect": "perf"}, + "fin:pl:sec:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "two", "Aspect": "imp"}, + "fin:pl:sec:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "two", "Aspect": "imp|perf"}, + "fin:pl:sec:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "two", "Aspect": "perf"}, + "fin:pl:ter:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "three", "Aspect": "imp"}, + "fin:pl:ter:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "three", "Aspect": "imp|perf"}, + "fin:pl:ter:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "plur", "Person": "three", "Aspect": "perf"}, + "fin:sg:pri:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "one", "Aspect": "imp"}, + "fin:sg:pri:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "one", "Aspect": "imp|perf"}, + "fin:sg:pri:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "one", "Aspect": "perf"}, + "fin:sg:sec:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "two", "Aspect": "imp"}, + "fin:sg:sec:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "two", "Aspect": "imp|perf"}, + "fin:sg:sec:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "two", "Aspect": "perf"}, + "fin:sg:ter:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "three", "Aspect": "imp"}, + "fin:sg:ter:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "three", "Aspect": "imp|perf"}, + "fin:sg:ter:perf": {POS: VERB, "VerbForm": "fin", "Tense": "pres", "Mood": "ind", "Number": "sing", "Person": "three", "Aspect": "perf"}, + "ger:sg:dat.loc:n2:imperf:aff": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, + "ger:sg:dat.loc:n2:imperf:neg": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, + "ger:sg:dat.loc:n2:imperf.perf:aff": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, + "ger:sg:dat.loc:n2:imperf.perf:neg": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, + "ger:sg:dat.loc:n2:perf:aff": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, + "ger:sg:dat.loc:n2:perf:neg": {POS: VERB, "Number": "sing", "Case": "dat|loc", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, + "ger:sg:gen:n2:imperf:aff": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, + "ger:sg:gen:n2:imperf:neg": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, + "ger:sg:gen:n2:imperf.perf:aff": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, + "ger:sg:gen:n2:imperf.perf:neg": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, + "ger:sg:gen:n2:perf:aff": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, + "ger:sg:gen:n2:perf:neg": {POS: VERB, "Number": "sing", "Case": "gen", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, + "ger:sg:inst:n2:imperf:aff": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, + "ger:sg:inst:n2:imperf:neg": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, + "ger:sg:inst:n2:imperf.perf:aff": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, + "ger:sg:inst:n2:imperf.perf:neg": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, + "ger:sg:inst:n2:perf:aff": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, + "ger:sg:inst:n2:perf:neg": {POS: VERB, "Number": "sing", "Case": "ins", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, + "ger:sg:nom.acc:n2:imperf:aff": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp", "Polarity": "pos"}, + "ger:sg:nom.acc:n2:imperf:neg": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp", "Polarity": "neg"}, + "ger:sg:nom.acc:n2:imperf.perf:aff": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "pos"}, + "ger:sg:nom.acc:n2:imperf.perf:neg": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "imp|perf", "Polarity": "neg"}, + "ger:sg:nom.acc:n2:perf:aff": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "perf", "Polarity": "pos"}, + "ger:sg:nom.acc:n2:perf:neg": {POS: VERB, "Number": "sing", "Case": "nom|acc", "Gender": "neut", "Aspect": "perf", "Polarity": "neg"}, "imps:imperf": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Aspect": "imp"}, "imps:imperf.perf": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Aspect": "imp|perf"}, "imps:perf": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Aspect": "perf"}, - "impt:pl:pri:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 1, "Aspect": "imp"}, - "impt:pl:pri:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 1, "Aspect": "imp|perf"}, - "impt:pl:pri:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 1, "Aspect": "perf"}, - "impt:pl:sec:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 2, "Aspect": "imp"}, - "impt:pl:sec:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 2, "Aspect": "imp|perf"}, - "impt:pl:sec:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": 2, "Aspect": "perf"}, - "impt:sg:sec:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": 2, "Aspect": "imp"}, - "impt:sg:sec:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": 2, "Aspect": "imp|perf"}, - "impt:sg:sec:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": 2, "Aspect": "perf"}, + "impt:pl:pri:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "one", "Aspect": "imp"}, + "impt:pl:pri:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "one", "Aspect": "imp|perf"}, + "impt:pl:pri:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "one", "Aspect": "perf"}, + "impt:pl:sec:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "two", "Aspect": "imp"}, + "impt:pl:sec:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "two", "Aspect": "imp|perf"}, + "impt:pl:sec:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "plur", "Person": "two", "Aspect": "perf"}, + "impt:sg:sec:imperf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": "two", "Aspect": "imp"}, + "impt:sg:sec:imperf.perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": "two", "Aspect": "imp|perf"}, + "impt:sg:sec:perf": {POS: VERB, "Mood": "imp", "VerbForm": "fin", "Number": "sing", "Person": "two", "Aspect": "perf"}, "inf:imperf": {POS: VERB, "VerbForm": "inf", "Aspect": "imp"}, "inf:imperf.perf": {POS: VERB, "VerbForm": "inf", "Aspect": "imp|perf"}, "inf:perf": {POS: VERB, "VerbForm": "inf", "Aspect": "perf"}, @@ -372,86 +372,86 @@ TAG_MAP = { "ppas:sg:nom.voc:m1.m2.m3:imperf.perf:neg": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Number": "sing", "Case": "nom|voc", "Gender": "Masc", "Aspect": "imp|perf", "Polarity": "neg"}, "ppas:sg:nom.voc:m1.m2.m3:perf:aff": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Number": "sing", "Case": "nom|voc", "Gender": "Masc", "Aspect": "perf", "Polarity": "pos"}, "ppas:sg:nom.voc:m1.m2.m3:perf:neg": {POS: VERB, "VerbForm": "part", "Voice": "pass", "Number": "sing", "Case": "nom|voc", "Gender": "Masc", "Aspect": "perf", "Polarity": "neg"}, - "ppron12:pl:acc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "acc", "Person": 1}, - "ppron12:pl:acc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "acc", "Person": 2}, - "ppron12:pl:dat:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "dat", "Person": 1}, - "ppron12:pl:dat:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "dat", "Person": 2}, - "ppron12:pl:gen:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "gen", "Person": 1}, - "ppron12:pl:gen:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "gen", "Person": 2}, - "ppron12:pl:inst:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "ins", "Person": 1}, - "ppron12:pl:inst:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "ins", "Person": 2}, - "ppron12:pl:loc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "loc", "Person": 1}, - "ppron12:pl:loc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "loc", "Person": 2}, - "ppron12:pl:nom:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "nom", "Person": 1}, - "ppron12:pl:nom:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "nom", "Person": 2}, - "ppron12:pl:voc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "voc", "Person": 1}, - "ppron12:pl:voc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "voc", "Person": 2}, - "ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": 1, "Variant": "long"}, - "ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": 1, "Variant": "short"}, - "ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": 2, "Variant": "long"}, - "ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": 2, "Variant": "short"}, - "ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": 1, "Variant": "long"}, - "ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": 1, "Variant": "short"}, - "ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": 2, "Variant": "long"}, - "ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": 2, "Variant": "short"}, - "ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": 1, "Variant": "long"}, - "ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": 1, "Variant": "short"}, - "ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": 2, "Variant": "long"}, - "ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": 2, "Variant": "short"}, - "ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "ins", "Gender": "masc|fem|neut", "Person": 1}, - "ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "ins", "Gender": "masc|fem|neut", "Person": 2}, - "ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "loc", "Gender": "masc|fem|neut", "Person": 1}, - "ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "loc", "Gender": "masc|fem|neut", "Person": 2}, - "ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "nom", "Gender": "masc|fem|neut", "Person": 1}, - "ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "nom", "Gender": "masc|fem|neut", "Person": 2}, - "ppron12:sg:voc:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "voc", "Gender": "masc|fem|neut", "Person": 1}, - "ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "voc", "Gender": "masc|fem|neut", "Person": 2}, - "ppron3:pl:acc:m1.p1:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "acc", "Gender": "masc", "Person": 3, "PrepCase": "npr"}, - "ppron3:pl:acc:m1.p1:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "acc", "Gender": "masc", "Person": 3, "PrepCase": "pre"}, - "ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "acc", "Gender": "masc|fem|neut", "Person": 3, "PrepCase": "npr"}, - "ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "acc", "Gender": "masc|fem|neut", "Person": 3, "PrepCase": "pre"}, - "ppron3:pl:dat:_:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "dat", "Person": 3, "PrepCase": "npr"}, - "ppron3:pl:dat:_:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "dat", "Person": 3, "PrepCase": "pre"}, - "ppron3:pl:gen:_:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "gen", "Person": 3, "PrepCase": "npr"}, - "ppron3:pl:gen:_:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "gen", "Person": 3, "PrepCase": "pre"}, - "ppron3:pl:inst:_:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "ins", "Person": 3}, - "ppron3:pl:loc:_:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "loc", "Person": 3}, - "ppron3:pl:nom:m1.p1:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "nom", "Gender": "masc", "Person": 3}, - "ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "plur", "Case": "nom", "Gender": "masc|fem|neut", "Person": 3}, - "ppron3:sg:acc:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "fem", "Person": 3, "PrepCase": "npr"}, - "ppron3:sg:acc:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "fem", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:acc:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": 3, "Variant": "long", "PrepCase": "npr"}, - "ppron3:sg:acc:m1.m2.m3:ter:akc:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": 3, "Variant": "long", "PrepCase": "pre"}, - "ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": 3, "Variant": "short", "PrepCase": "npr"}, - "ppron3:sg:acc:m1.m2.m3:ter:nakc:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": 3, "Variant": "short", "PrepCase": "pre"}, - "ppron3:sg:acc:n1.n2:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "neut", "Person": 3, "PrepCase": "npr"}, - "ppron3:sg:acc:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "acc", "Gender": "neut", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:dat:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "fem", "Person": 3, "PrepCase": "npr"}, - "ppron3:sg:dat:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "fem", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:dat:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": 3, "Variant": "long", "PrepCase": "npr"}, - "ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": 3, "Variant": "short", "PrepCase": "npr"}, - "ppron3:sg:dat:m1.m2.m3:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:dat:n1.n2:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "neut", "Person": 3, "Variant": "long", "PrepCase": "npr"}, - "ppron3:sg:dat:n1.n2:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "neut", "Person": 3, "Variant": "short", "PrepCase": "npr"}, - "ppron3:sg:dat:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "dat", "Gender": "neut", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:gen:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "fem", "Person": 3, "PrepCase": "npr"}, - "ppron3:sg:gen:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "fem", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:gen:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": 3, "Variant": "long", "PrepCase": "npr"}, - "ppron3:sg:gen:m1.m2.m3:ter:akc:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": 3, "Variant": "long", "PrepCase": "pre"}, - "ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": 3, "Variant": "short", "PrepCase": "npr"}, - "ppron3:sg:gen:m1.m2.m3:ter:nakc:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": 3, "Variant": "short", "PrepCase": "pre"}, - "ppron3:sg:gen:n1.n2:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "neut", "Person": 3, "Variant": "long", "PrepCase": "npr"}, - "ppron3:sg:gen:n1.n2:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "neut", "Person": 3, "Variant": "short", "PrepCase": "npr"}, - "ppron3:sg:gen:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "gen", "Gender": "neut", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:inst:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "ins", "Gender": "fem", "Person": 3, "PrepCase": "pre"}, - "ppron3:sg:inst:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "ins", "Gender": "Masc", "Person": 3}, - "ppron3:sg:inst:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "ins", "Gender": "neut", "Person": 3}, - "ppron3:sg:loc:f:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "loc", "Gender": "fem", "Person": 3}, - "ppron3:sg:loc:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "loc", "Gender": "Masc", "Person": 3}, - "ppron3:sg:loc:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "loc", "Gender": "neut", "Person": 3}, - "ppron3:sg:nom:f:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "nom", "Gender": "fem", "Person": 3}, - "ppron3:sg:nom:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "nom", "Gender": "Masc", "Person": 3}, - "ppron3:sg:nom:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": 3, "Number": "sing", "Case": "nom", "Gender": "neut", "Person": 3}, + "ppron12:pl:acc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "acc", "Person": "one"}, + "ppron12:pl:acc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "acc", "Person": "two"}, + "ppron12:pl:dat:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "dat", "Person": "one"}, + "ppron12:pl:dat:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "dat", "Person": "two"}, + "ppron12:pl:gen:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "gen", "Person": "one"}, + "ppron12:pl:gen:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "gen", "Person": "two"}, + "ppron12:pl:inst:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "ins", "Person": "one"}, + "ppron12:pl:inst:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "ins", "Person": "two"}, + "ppron12:pl:loc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "loc", "Person": "one"}, + "ppron12:pl:loc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "loc", "Person": "two"}, + "ppron12:pl:nom:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "nom", "Person": "one"}, + "ppron12:pl:nom:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "nom", "Person": "two"}, + "ppron12:pl:voc:_:pri": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "voc", "Person": "one"}, + "ppron12:pl:voc:_:sec": {POS: PRON, "PronType": "prs", "Number": "plur", "Case": "voc", "Person": "two"}, + "ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:acc:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:acc:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "acc", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:dat:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:dat:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "dat", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:gen:m1.m2.m3.f.n1.n2:pri:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": "one", }, + "ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:akc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:gen:m1.m2.m3.f.n1.n2:sec:nakc": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "gen", "Gender": "masc|fem|neut", "Person": "two", }, + "ppron12:sg:inst:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "ins", "Gender": "masc|fem|neut", "Person": "one"}, + "ppron12:sg:inst:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "ins", "Gender": "masc|fem|neut", "Person": "two"}, + "ppron12:sg:loc:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "loc", "Gender": "masc|fem|neut", "Person": "one"}, + "ppron12:sg:loc:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "loc", "Gender": "masc|fem|neut", "Person": "two"}, + "ppron12:sg:nom:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "nom", "Gender": "masc|fem|neut", "Person": "one"}, + "ppron12:sg:nom:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "nom", "Gender": "masc|fem|neut", "Person": "two"}, + "ppron12:sg:voc:m1.m2.m3.f.n1.n2:pri": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "voc", "Gender": "masc|fem|neut", "Person": "one"}, + "ppron12:sg:voc:m1.m2.m3.f.n1.n2:sec": {POS: PRON, "PronType": "prs", "Number": "sing", "Case": "voc", "Gender": "masc|fem|neut", "Person": "two"}, + "ppron3:pl:acc:m1.p1:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "acc", "Gender": "masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:pl:acc:m1.p1:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "acc", "Gender": "masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "acc", "Gender": "masc|fem|neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:pl:acc:m2.m3.f.n1.n2.p2.p3:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "acc", "Gender": "masc|fem|neut", "Person": "three", "PrepCase": "pre"}, + "ppron3:pl:dat:_:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "dat", "Person": "three", "PrepCase": "npr"}, + "ppron3:pl:dat:_:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "dat", "Person": "three", "PrepCase": "pre"}, + "ppron3:pl:gen:_:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "gen", "Person": "three", "PrepCase": "npr"}, + "ppron3:pl:gen:_:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "gen", "Person": "three", "PrepCase": "pre"}, + "ppron3:pl:inst:_:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "ins", "Person": "three"}, + "ppron3:pl:loc:_:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "loc", "Person": "three"}, + "ppron3:pl:nom:m1.p1:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "nom", "Gender": "masc", "Person": "three"}, + "ppron3:pl:nom:m2.m3.f.n1.n2.p2.p3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "plur", "Case": "nom", "Gender": "masc|fem|neut", "Person": "three"}, + "ppron3:sg:acc:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "fem", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:acc:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "fem", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:acc:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:acc:m1.m2.m3:ter:akc:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:acc:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:acc:m1.m2.m3:ter:nakc:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "Masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:acc:n1.n2:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:acc:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "acc", "Gender": "neut", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:dat:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "fem", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:dat:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "fem", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:dat:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:dat:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:dat:m1.m2.m3:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "Masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:dat:n1.n2:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:dat:n1.n2:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:dat:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "dat", "Gender": "neut", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:gen:f:ter:_:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "fem", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:gen:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "fem", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:gen:m1.m2.m3:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:gen:m1.m2.m3:ter:akc:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:gen:m1.m2.m3:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:gen:m1.m2.m3:ter:nakc:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "Masc", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:gen:n1.n2:ter:akc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:gen:n1.n2:ter:nakc:npraep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "neut", "Person": "three", "PrepCase": "npr"}, + "ppron3:sg:gen:n1.n2:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "gen", "Gender": "neut", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:inst:f:ter:_:praep": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "ins", "Gender": "fem", "Person": "three", "PrepCase": "pre"}, + "ppron3:sg:inst:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "ins", "Gender": "Masc", "Person": "three"}, + "ppron3:sg:inst:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "ins", "Gender": "neut", "Person": "three"}, + "ppron3:sg:loc:f:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "loc", "Gender": "fem", "Person": "three"}, + "ppron3:sg:loc:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "loc", "Gender": "Masc", "Person": "three"}, + "ppron3:sg:loc:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "loc", "Gender": "neut", "Person": "three"}, + "ppron3:sg:nom:f:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "nom", "Gender": "fem", "Person": "three"}, + "ppron3:sg:nom:m1.m2.m3:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "nom", "Gender": "Masc", "Person": "three"}, + "ppron3:sg:nom:n1.n2:ter:_:_": {POS: PRON, "PronType": "prs", "Person": "three", "Number": "sing", "Case": "nom", "Gender": "neut", "Person": "three"}, "praet:pl:m1.p1:imperf": {POS: VERB, "VerbForm": "fin", "Tense": "past", "Number": "plur", "Gender": "masc", "Aspect": "imp"}, "praet:pl:m1.p1:imperf.perf": {POS: VERB, "VerbForm": "fin", "Tense": "past", "Number": "plur", "Gender": "masc", "Aspect": "imp|perf"}, "praet:pl:m1.p1:perf": {POS: VERB, "VerbForm": "fin", "Tense": "past", "Number": "plur", "Gender": "masc", "Aspect": "perf"}, @@ -473,18 +473,18 @@ TAG_MAP = { "praet:sg:n1.n2:perf": {POS: VERB, "VerbForm": "fin", "Tense": "past", "Number": "sing", "Gender": "neut", "Aspect": "perf"}, "pred": {POS: VERB}, "prep:acc": {POS: ADP, "AdpType": "prep", "Case": "acc"}, - "prep:acc:nwok": {POS: ADP, "AdpType": "prep", "Case": "acc", "Variant": "short"}, - "prep:acc:wok": {POS: ADP, "AdpType": "prep", "Case": "acc", "Variant": "long"}, + "prep:acc:nwok": {POS: ADP, "AdpType": "prep", "Case": "acc", }, + "prep:acc:wok": {POS: ADP, "AdpType": "prep", "Case": "acc", }, "prep:dat": {POS: ADP, "AdpType": "prep", "Case": "dat"}, "prep:gen": {POS: ADP, "AdpType": "prep", "Case": "gen"}, - "prep:gen:nwok": {POS: ADP, "AdpType": "prep", "Case": "gen", "Variant": "short"}, - "prep:gen:wok": {POS: ADP, "AdpType": "prep", "Case": "gen", "Variant": "long"}, + "prep:gen:nwok": {POS: ADP, "AdpType": "prep", "Case": "gen", }, + "prep:gen:wok": {POS: ADP, "AdpType": "prep", "Case": "gen", }, "prep:inst": {POS: ADP, "AdpType": "prep", "Case": "ins"}, - "prep:inst:nwok": {POS: ADP, "AdpType": "prep", "Case": "ins", "Variant": "short"}, - "prep:inst:wok": {POS: ADP, "AdpType": "prep", "Case": "ins", "Variant": "long"}, + "prep:inst:nwok": {POS: ADP, "AdpType": "prep", "Case": "ins", }, + "prep:inst:wok": {POS: ADP, "AdpType": "prep", "Case": "ins", }, "prep:loc": {POS: ADP, "AdpType": "prep", "Case": "loc"}, - "prep:loc:nwok": {POS: ADP, "AdpType": "prep", "Case": "loc", "Variant": "short"}, - "prep:loc:wok": {POS: ADP, "AdpType": "prep", "Case": "loc", "Variant": "long"}, + "prep:loc:nwok": {POS: ADP, "AdpType": "prep", "Case": "loc", }, + "prep:loc:wok": {POS: ADP, "AdpType": "prep", "Case": "loc", }, "prep:nom": {POS: ADP, "AdpType": "prep", "Case": "nom"}, "qub": {POS: PART}, "subst:pl:acc:f": {POS: NOUN, "Number": "plur", "Case": "acc", "Gender": "fem"}, @@ -493,63 +493,63 @@ TAG_MAP = { "subst:pl:acc:m3": {POS: NOUN, "Number": "plur", "Case": "acc", "Gender": "masc", "Animacy": "inan"}, "subst:pl:acc:n1": {POS: NOUN, "Number": "plur", "Case": "acc", "Gender": "neut"}, "subst:pl:acc:n2": {POS: NOUN, "Number": "plur", "Case": "acc", "Gender": "neut"}, - "subst:pl:acc:p1": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": 1}, - "subst:pl:acc:p2": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": 2}, - "subst:pl:acc:p3": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": 3}, + "subst:pl:acc:p1": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": "one"}, + "subst:pl:acc:p2": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": "two"}, + "subst:pl:acc:p3": {POS: NOUN, "Number": "plur", "Case": "acc", "Person": "three"}, "subst:pl:dat:f": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "fem"}, "subst:pl:dat:m1": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:dat:m2": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "masc", "Animacy": "anim"}, "subst:pl:dat:m3": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "masc", "Animacy": "inan"}, "subst:pl:dat:n1": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "neut"}, "subst:pl:dat:n2": {POS: NOUN, "Number": "plur", "Case": "dat", "Gender": "neut"}, - "subst:pl:dat:p1": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": 1}, - "subst:pl:dat:p2": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": 2}, - "subst:pl:dat:p3": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": 3}, + "subst:pl:dat:p1": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": "one"}, + "subst:pl:dat:p2": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": "two"}, + "subst:pl:dat:p3": {POS: NOUN, "Number": "plur", "Case": "dat", "Person": "three"}, "subst:pl:gen:f": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "fem"}, "subst:pl:gen:m1": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:gen:m2": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "masc", "Animacy": "anim"}, "subst:pl:gen:m3": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "masc", "Animacy": "inan"}, "subst:pl:gen:n1": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "neut"}, "subst:pl:gen:n2": {POS: NOUN, "Number": "plur", "Case": "gen", "Gender": "neut"}, - "subst:pl:gen:p1": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": 1}, - "subst:pl:gen:p2": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": 2}, - "subst:pl:gen:p3": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": 3}, + "subst:pl:gen:p1": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": "one"}, + "subst:pl:gen:p2": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": "two"}, + "subst:pl:gen:p3": {POS: NOUN, "Number": "plur", "Case": "gen", "Person": "three"}, "subst:pl:inst:f": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "fem"}, "subst:pl:inst:m1": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:inst:m2": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "masc", "Animacy": "anim"}, "subst:pl:inst:m3": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "masc", "Animacy": "inan"}, "subst:pl:inst:n1": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "neut"}, "subst:pl:inst:n2": {POS: NOUN, "Number": "plur", "Case": "ins", "Gender": "neut"}, - "subst:pl:inst:p1": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": 1}, - "subst:pl:inst:p2": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": 2}, - "subst:pl:inst:p3": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": 3}, + "subst:pl:inst:p1": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": "one"}, + "subst:pl:inst:p2": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": "two"}, + "subst:pl:inst:p3": {POS: NOUN, "Number": "plur", "Case": "ins", "Person": "three"}, "subst:pl:loc:f": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "fem"}, "subst:pl:loc:m1": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:loc:m2": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "masc", "Animacy": "anim"}, "subst:pl:loc:m3": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "masc", "Animacy": "inan"}, "subst:pl:loc:n1": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "neut"}, "subst:pl:loc:n2": {POS: NOUN, "Number": "plur", "Case": "loc", "Gender": "neut"}, - "subst:pl:loc:p1": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": 1}, - "subst:pl:loc:p2": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": 2}, - "subst:pl:loc:p3": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": 3}, + "subst:pl:loc:p1": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": "one"}, + "subst:pl:loc:p2": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": "two"}, + "subst:pl:loc:p3": {POS: NOUN, "Number": "plur", "Case": "loc", "Person": "three"}, "subst:pl:nom:f": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "fem"}, "subst:pl:nom:m1": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:nom:m2": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "masc", "Animacy": "anim"}, "subst:pl:nom:m3": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "masc", "Animacy": "inan"}, "subst:pl:nom:n1": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "neut"}, "subst:pl:nom:n2": {POS: NOUN, "Number": "plur", "Case": "nom", "Gender": "neut"}, - "subst:pl:nom:p1": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": 1}, - "subst:pl:nom:p2": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": 2}, - "subst:pl:nom:p3": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": 3}, + "subst:pl:nom:p1": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": "one"}, + "subst:pl:nom:p2": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": "two"}, + "subst:pl:nom:p3": {POS: NOUN, "Number": "plur", "Case": "nom", "Person": "three"}, "subst:pl:voc:f": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "fem"}, "subst:pl:voc:m1": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "Masc", "Animacy": "hum"}, "subst:pl:voc:m2": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "masc", "Animacy": "anim"}, "subst:pl:voc:m3": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "masc", "Animacy": "inan"}, "subst:pl:voc:n1": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "neut"}, "subst:pl:voc:n2": {POS: NOUN, "Number": "plur", "Case": "voc", "Gender": "neut"}, - "subst:pl:voc:p1": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": 1}, - "subst:pl:voc:p2": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": 2}, - "subst:pl:voc:p3": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": 3}, + "subst:pl:voc:p1": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": "one"}, + "subst:pl:voc:p2": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": "two"}, + "subst:pl:voc:p3": {POS: NOUN, "Number": "plur", "Case": "voc", "Person": "three"}, "subst:sg:acc:f": {POS: NOUN, "Number": "sing", "Case": "acc", "Gender": "fem"}, "subst:sg:acc:m1": {POS: NOUN, "Number": "sing", "Case": "acc", "Gender": "Masc", "Animacy": "hum"}, "subst:sg:acc:m2": {POS: NOUN, "Number": "sing", "Case": "acc", "Gender": "masc", "Animacy": "anim"}, diff --git a/spacy/lang/ro/tag_map.py b/spacy/lang/ro/tag_map.py index cb5239809..5136793ef 100644 --- a/spacy/lang/ro/tag_map.py +++ b/spacy/lang/ro/tag_map.py @@ -5,14 +5,14 @@ from ...symbols import PRON, PROPN, PUNCT, SYM, VERB, X, CCONJ, SCONJ, DET, AUX TAG_MAP = { "Afcfson": { - "Case": "Dat,Gen", + "Degree": "Cmp", "Gender": "Fem", "Number": "Sing", POS: ADJ, }, "Afcfsrn": { - "Case": "Acc,Nom", + "Degree": "Cmp", "Gender": "Fem", "Number": "Sing", @@ -20,47 +20,47 @@ TAG_MAP = { }, "Afp": {"Degree": "Pos", POS: ADJ}, "Afp-p-n": {"Degree": "Pos", "Number": "Plur", POS: ADJ}, - "Afp-p-ny": {"Degree": "Pos", "Number": "Plur", POS: ADJ, "Variant": "Short"}, - "Afp-poy": {"Case": "Dat,Gen", "Degree": "Pos", "Number": "Plur", POS: ADJ}, + "Afp-p-ny": {"Degree": "Pos", "Number": "Plur", POS: ADJ}, + "Afp-poy": { "Degree": "Pos", "Number": "Plur", POS: ADJ}, "Afpf--n": {"Degree": "Pos", "Gender": "Fem", POS: ADJ}, "Afpfp-n": {"Degree": "Pos", "Gender": "Fem", "Number": "Plur", POS: ADJ}, "Afpfpoy": { - "Case": "Dat,Gen", + "Degree": "Pos", "Gender": "Fem", "Number": "Plur", POS: ADJ, }, "Afpfpry": { - "Case": "Acc,Nom", + "Degree": "Pos", "Gender": "Fem", "Number": "Plur", POS: ADJ, }, "Afpfson": { - "Case": "Dat,Gen", + "Degree": "Pos", "Gender": "Fem", "Number": "Sing", POS: ADJ, }, "Afpfsoy": { - "Case": "Dat,Gen", + "Degree": "Pos", "Gender": "Fem", "Number": "Sing", POS: ADJ, }, "Afpfsrn": { - "Case": "Acc,Nom", + "Degree": "Pos", "Gender": "Fem", "Number": "Sing", POS: ADJ, }, "Afpfsry": { - "Case": "Acc,Nom", + "Degree": "Pos", "Gender": "Fem", "Number": "Sing", @@ -68,14 +68,14 @@ TAG_MAP = { }, "Afpmp-n": {"Degree": "Pos", "Gender": "Masc", "Number": "Plur", POS: ADJ}, "Afpmpoy": { - "Case": "Dat,Gen", + "Degree": "Pos", "Gender": "Masc", "Number": "Plur", POS: ADJ, }, "Afpmpry": { - "Case": "Acc,Nom", + "Degree": "Pos", "Gender": "Masc", "Number": "Plur", @@ -83,14 +83,14 @@ TAG_MAP = { }, "Afpms-n": {"Degree": "Pos", "Gender": "Masc", "Number": "Sing", POS: ADJ}, "Afpmsoy": { - "Case": "Dat,Gen", + "Degree": "Pos", "Gender": "Masc", "Number": "Sing", POS: ADJ, }, "Afpmsry": { - "Case": "Acc,Nom", + "Degree": "Pos", "Gender": "Masc", "Number": "Sing", @@ -101,304 +101,304 @@ TAG_MAP = { "Ccssp": {POS: CCONJ, "Polarity": "Pos"}, "Crssp": {POS: CCONJ, "Polarity": "Pos"}, "Csssp": {POS: SCONJ, "Polarity": "Pos"}, - "Cssspy": {POS: SCONJ, "Polarity": "Pos", "Variant": "Short"}, + "Cssspy": {POS: SCONJ, "Polarity": "Pos"}, "DASH": {POS: PUNCT}, "DBLQ": {POS: PUNCT}, "Dd3-po---e": { - "Case": "Dat,Gen", + "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fpr---e": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fso---e": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fso---o": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fsr---e": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3fsr---o": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3mpo": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3mpr---e": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3mso---e": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3msr---e": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dd3msr---o": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Dh3fsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", - "PronType": "Emp", + "Person": "three", + }, "Dh3mp": { "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", - "PronType": "Emp", + "Person": "three", + }, "Dh3ms": { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", - "PronType": "Emp", + "Person": "three", + }, - "Di3": {POS: DET, "Person": "3", "PronType": "Ind"}, - "Di3--r---e": {"Case": "Acc,Nom", POS: DET, "Person": "3", "PronType": "Ind"}, + "Di3": {POS: DET, "Person": "three", "PronType": "Ind"}, + "Di3--r---e": { POS: DET, "Person": "three", "PronType": "Ind"}, "Di3-po": { - "Case": "Dat,Gen", + "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3-po---e": { - "Case": "Dat,Gen", + "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3-sr": { - "Case": "Acc,Nom", + "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3-sr---e": { - "Case": "Acc,Nom", + "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fp": { "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fpr---e": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fso---e": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3fsr---e": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3mp": { "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3mpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3mpr---e": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3ms": { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3ms----e": { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3mso---e": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3msr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Di3msr---e": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Ds1fp-s": { "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, "Ds1fsos": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, "Ds1fsrp": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, "Ds1fsrs": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, @@ -406,7 +406,7 @@ TAG_MAP = { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, @@ -414,45 +414,45 @@ TAG_MAP = { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, - "Ds2---s": {POS: DET, "Person": "2", "Poss": "Yes", "PronType": "Prs"}, + "Ds2---s": {POS: DET, "Person": "two", "Poss": "Yes", "PronType": "Prs"}, "Ds2fsrs": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "2", + "Person": "two", "Poss": "Yes", "PronType": "Prs", }, - "Ds3---p": {POS: DET, "Person": "3", "Poss": "Yes", "PronType": "Prs"}, - "Ds3---s": {POS: DET, "Person": "3", "Poss": "Yes", "PronType": "Prs"}, + "Ds3---p": {POS: DET, "Person": "three", "Poss": "Yes", "PronType": "Prs"}, + "Ds3---s": {POS: DET, "Person": "three", "Poss": "Yes", "PronType": "Prs"}, "Ds3fp-s": { "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, "Ds3fsos": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, "Ds3fsrs": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, @@ -460,41 +460,41 @@ TAG_MAP = { "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, - "Dw3--r---e": {"Case": "Acc,Nom", POS: DET, "Person": "3", "PronType": "Int,Rel"}, + "Dw3--r---e": { POS: DET, "Person": "three"}, "Dw3fpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, - "Person": "3", - "PronType": "Int,Rel", + "Person": "three", + }, "Dw3mso---e": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", - "PronType": "Int,Rel", + "Person": "three", + }, "Dz3fsr---e": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Neg", }, "Dz3msr---e": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, - "Person": "3", + "Person": "three", "PronType": "Neg", }, "EQUAL": {POS: SYM}, @@ -520,7 +520,7 @@ TAG_MAP = { POS: NUM, }, "Mcfsrln": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumForm": "Word", "NumType": "Card", @@ -535,7 +535,7 @@ TAG_MAP = { POS: NUM, }, "Mcmsrl": { - "Case": "Acc,Nom", + "Gender": "Masc", "NumForm": "Word", "NumType": "Card", @@ -543,7 +543,7 @@ TAG_MAP = { POS: NUM, }, "Mffprln": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumForm": "Word", "NumType": "Card", @@ -551,7 +551,7 @@ TAG_MAP = { POS: NUM, }, "Mlfpo": { - "Case": "Dat,Gen", + "Gender": "Fem", "NumType": "Card", "Number": "Plur", @@ -559,7 +559,7 @@ TAG_MAP = { "PronType": "Tot", }, "Mlfpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumType": "Card", "Number": "Plur", @@ -567,7 +567,7 @@ TAG_MAP = { "PronType": "Tot", }, "Mlmpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "NumType": "Card", "Number": "Plur", @@ -584,7 +584,7 @@ TAG_MAP = { POS: NUM, }, "Mofprly": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumForm": "Word", "NumType": "Ord", @@ -599,7 +599,7 @@ TAG_MAP = { POS: NUM, }, "Mofsrln": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumForm": "Word", "NumType": "Ord", @@ -607,7 +607,7 @@ TAG_MAP = { POS: NUM, }, "Mofsrly": { - "Case": "Acc,Nom", + "Gender": "Fem", "NumForm": "Word", "NumType": "Ord", @@ -615,7 +615,7 @@ TAG_MAP = { POS: NUM, }, "Momprly": { - "Case": "Acc,Nom", + "Gender": "Masc", "NumForm": "Word", "NumType": "Ord", @@ -637,7 +637,7 @@ TAG_MAP = { POS: NUM, }, "Momsoly": { - "Case": "Dat,Gen", + "Gender": "Masc", "NumForm": "Word", "NumType": "Ord", @@ -645,7 +645,7 @@ TAG_MAP = { POS: NUM, }, "Momsrly": { - "Case": "Acc,Nom", + "Gender": "Masc", "NumForm": "Word", "NumType": "Ord", @@ -655,338 +655,338 @@ TAG_MAP = { "Nc": {POS: NOUN}, "Ncf--n": {"Gender": "Fem", POS: NOUN}, "Ncfp-n": {"Gender": "Fem", "Number": "Plur", POS: NOUN}, - "Ncfpoy": {"Case": "Dat,Gen", "Gender": "Fem", "Number": "Plur", POS: NOUN}, - "Ncfpry": {"Case": "Acc,Nom", "Gender": "Fem", "Number": "Plur", POS: NOUN}, - "Ncfson": {"Case": "Dat,Gen", "Gender": "Fem", "Number": "Sing", POS: NOUN}, - "Ncfsoy": {"Case": "Dat,Gen", "Gender": "Fem", "Number": "Sing", POS: NOUN}, - "Ncfsrn": {"Case": "Acc,Nom", "Gender": "Fem", "Number": "Sing", POS: NOUN}, - "Ncfsry": {"Case": "Acc,Nom", "Gender": "Fem", "Number": "Sing", POS: NOUN}, + "Ncfpoy": { "Gender": "Fem", "Number": "Plur", POS: NOUN}, + "Ncfpry": { "Gender": "Fem", "Number": "Plur", POS: NOUN}, + "Ncfson": { "Gender": "Fem", "Number": "Sing", POS: NOUN}, + "Ncfsoy": { "Gender": "Fem", "Number": "Sing", POS: NOUN}, + "Ncfsrn": { "Gender": "Fem", "Number": "Sing", POS: NOUN}, + "Ncfsry": { "Gender": "Fem", "Number": "Sing", POS: NOUN}, "Ncm--n": {"Gender": "Masc", POS: NOUN}, "Ncmp-n": {"Gender": "Masc", "Number": "Plur", POS: NOUN}, - "Ncmpoy": {"Case": "Dat,Gen", "Gender": "Masc", "Number": "Plur", POS: NOUN}, - "Ncmpry": {"Case": "Acc,Nom", "Gender": "Masc", "Number": "Plur", POS: NOUN}, + "Ncmpoy": { "Gender": "Masc", "Number": "Plur", POS: NOUN}, + "Ncmpry": { "Gender": "Masc", "Number": "Plur", POS: NOUN}, "Ncms-n": {"Gender": "Masc", "Number": "Sing", POS: NOUN}, - "Ncms-ny": {"Gender": "Masc", "Number": "Sing", POS: NOUN, "Variant": "Short"}, - "Ncmsoy": {"Case": "Dat,Gen", "Gender": "Masc", "Number": "Sing", POS: NOUN}, - "Ncmsrn": {"Case": "Acc,Nom", "Gender": "Masc", "Number": "Sing", POS: NOUN}, - "Ncmsry": {"Case": "Acc,Nom", "Gender": "Masc", "Number": "Sing", POS: NOUN}, + "Ncms-ny": {"Gender": "Masc", "Number": "Sing", POS: NOUN}, + "Ncmsoy": { "Gender": "Masc", "Number": "Sing", POS: NOUN}, + "Ncmsrn": { "Gender": "Masc", "Number": "Sing", POS: NOUN}, + "Ncmsry": { "Gender": "Masc", "Number": "Sing", POS: NOUN}, "Np": {POS: PROPN}, - "Npfsoy": {"Case": "Dat,Gen", "Gender": "Fem", "Number": "Sing", POS: PROPN}, - "Npfsry": {"Case": "Acc,Nom", "Gender": "Fem", "Number": "Sing", POS: PROPN}, - "Npmsoy": {"Case": "Dat,Gen", "Gender": "Masc", "Number": "Sing", POS: PROPN}, - "Npmsry": {"Case": "Acc,Nom", "Gender": "Masc", "Number": "Sing", POS: PROPN}, + "Npfsoy": { "Gender": "Fem", "Number": "Sing", POS: PROPN}, + "Npfsry": { "Gender": "Fem", "Number": "Sing", POS: PROPN}, + "Npmsoy": { "Gender": "Masc", "Number": "Sing", POS: PROPN}, + "Npmsry": { "Gender": "Masc", "Number": "Sing", POS: PROPN}, "PERCENT": {POS: SYM}, "PERIOD": {POS: PUNCT}, "PLUSMINUS": {POS: SYM}, "Pd3-po": { - "Case": "Dat,Gen", + "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3fpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3fso": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3fsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3mpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3mso": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, "Pd3msr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Dem", }, - "Pi3--r": {"Case": "Acc,Nom", POS: PRON, "Person": "3", "PronType": "Ind"}, + "Pi3--r": { POS: PRON, "Person": "three", "PronType": "Ind"}, "Pi3-po": { - "Case": "Dat,Gen", + "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3-so": { - "Case": "Dat,Gen", + "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3-sr": { - "Case": "Acc,Nom", + "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3fpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3fso": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3fsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3mpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3msr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", }, "Pi3msr--y": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Ind", - "Variant": "Short", + }, "Pp1-pa--------w": { "Case": "Acc", "Number": "Plur", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-pa--y-----w": { "Case": "Acc", "Number": "Plur", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", - "Variant": "Short", + }, "Pp1-pd--------w": { "Case": "Dat", "Number": "Plur", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-pr--------s": { - "Case": "Acc,Nom", + "Number": "Plur", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-sa--------s": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-sa--------w": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-sa--y-----w": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", - "Variant": "Short", + }, "Pp1-sd--------w": { "Case": "Dat", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, "Pp1-sd--y-----w": { "Case": "Dat", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", - "Variant": "Short", + }, "Pp1-sn--------s": { "Case": "Nom", "Number": "Sing", POS: PRON, - "Person": "1", + "Person": "one", "PronType": "Prs", }, - "Pp2-----------s": {POS: PRON, "Person": "2", "PronType": "Prs"}, + "Pp2-----------s": {POS: PRON, "Person": "two", "PronType": "Prs"}, "Pp2-pa--------w": { "Case": "Acc", "Number": "Plur", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp2-pa--y-----w": { "Case": "Acc", "Number": "Plur", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", - "Variant": "Short", + }, "Pp2-pd--------w": { "Case": "Dat", "Number": "Plur", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp2-pr--------s": { - "Case": "Acc,Nom", + "Number": "Plur", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp2-sa--------s": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp2-sa--------w": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp2-sa--y-----w": { "Case": "Acc", "Number": "Sing", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", - "Variant": "Short", + }, "Pp2-sd--y-----w": { "Case": "Dat", "Number": "Sing", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", - "Variant": "Short", + }, "Pp2-sn--------s": { "Case": "Nom", "Number": "Sing", POS: PRON, - "Person": "2", + "Person": "two", "PronType": "Prs", }, "Pp3-pd--------w": { "Case": "Dat", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3-pd--y-----w": { "Case": "Dat", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3-po--------s": { - "Case": "Dat,Gen", + "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3-sd--------w": { "Case": "Dat", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3-sd--y-----w": { "Case": "Dat", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3fpa--------w": { "Case": "Acc", "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3fpa--y-----w": { @@ -994,16 +994,16 @@ TAG_MAP = { "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3fpr--------s": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3fsa--------w": { @@ -1011,7 +1011,7 @@ TAG_MAP = { "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3fsa--y-----w": { @@ -1019,16 +1019,16 @@ TAG_MAP = { "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3fsr--------s": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3mpa--------w": { @@ -1036,7 +1036,7 @@ TAG_MAP = { "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3mpa--y-----w": { @@ -1044,16 +1044,16 @@ TAG_MAP = { "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3mpr--------s": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3msa--------w": { @@ -1061,7 +1061,7 @@ TAG_MAP = { "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3msa--y-----w": { @@ -1069,247 +1069,247 @@ TAG_MAP = { "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", - "Variant": "Short", + }, "Pp3mso--------s": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Pp3msr--------s": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", }, "Ps1mp-s": { "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "1", + "Person": "one", "Poss": "Yes", "PronType": "Prs", }, - "Ps3---p": {POS: PRON, "Person": "3", "Poss": "Yes", "PronType": "Prs"}, - "Ps3---s": {POS: PRON, "Person": "3", "Poss": "Yes", "PronType": "Prs"}, + "Ps3---p": {POS: PRON, "Person": "three", "Poss": "Yes", "PronType": "Prs"}, + "Ps3---s": {POS: PRON, "Person": "three", "Poss": "Yes", "PronType": "Prs"}, "Ps3fp-s": { "Gender": "Fem", "Number": "Plur", POS: PRON, - "Person": "3", + "Person": "three", "Poss": "Yes", "PronType": "Prs", }, - "Pw3--r": {"Case": "Acc,Nom", POS: PRON, "Person": "3", "PronType": "Int,Rel"}, + "Pw3--r": { POS: PRON, "Person": "three"}, "Pw3-po": { - "Case": "Dat,Gen", + "Number": "Plur", POS: PRON, - "Person": "3", - "PronType": "Int,Rel", + "Person": "three", + }, "Pw3fso": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: PRON, - "Person": "3", - "PronType": "Int,Rel", + "Person": "three", + }, "Pw3mpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: PRON, - "Person": "3", - "PronType": "Int,Rel", + "Person": "three", + }, "Px3--a--------s": { "Case": "Acc", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", "Reflex": "Yes", }, "Px3--a--------w": { "Case": "Acc", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", "Reflex": "Yes", }, "Px3--a--y-----w": { "Case": "Acc", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", "Reflex": "Yes", - "Variant": "Short", + }, "Px3--d--------w": { "Case": "Dat", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", "Reflex": "Yes", }, "Px3--d--y-----w": { "Case": "Dat", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Prs", "Reflex": "Yes", - "Variant": "Short", + }, "Pz3-sr": { - "Case": "Acc,Nom", + "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Neg", }, "Pz3msr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: PRON, - "Person": "3", + "Person": "three", "PronType": "Neg", }, "QUEST": {POS: PUNCT}, "QUOT": {POS: PUNCT}, "Qn": {POS: PART, "PartType": "Inf"}, "Qs": {"Mood": "Sub", POS: PART}, - "Qs-y": {"Mood": "Sub", POS: PART, "Variant": "Short"}, + "Qs-y": {"Mood": "Sub", POS: PART}, "Qz": {POS: PART, "Polarity": "Neg"}, - "Qz-y": {POS: PART, "Polarity": "Neg", "Variant": "Short"}, + "Qz-y": {POS: PART, "Polarity": "Neg"}, "RPAR": {POS: PUNCT}, "Rc": {POS: ADV}, "Rgp": {"Degree": "Pos", POS: ADV}, - "Rgpy": {"Degree": "Pos", POS: ADV, "Variant": "Short"}, + "Rgpy": {"Degree": "Pos", POS: ADV}, "Rgs": {"Degree": "Sup", POS: ADV}, "Rp": {POS: ADV}, - "Rw": {POS: ADV, "PronType": "Int,Rel"}, + "Rw": {POS: ADV}, "Rz": {POS: ADV, "PronType": "Neg"}, "SCOLON": {"AdpType": "Prep", POS: PUNCT}, "SLASH": {"AdpType": "Prep", POS: SYM}, "Spsa": {"AdpType": "Prep", "Case": "Acc", POS: ADP}, - "Spsay": {"AdpType": "Prep", "Case": "Acc", POS: ADP, "Variant": "Short"}, + "Spsay": {"AdpType": "Prep", "Case": "Acc", POS: ADP}, "Spsd": {"AdpType": "Prep", "Case": "Dat", POS: ADP}, "Spsg": {"AdpType": "Prep", "Case": "Gen", POS: ADP}, - "Spsgy": {"AdpType": "Prep", "Case": "Gen", POS: ADP, "Variant": "Short"}, - "Td-po": {"Case": "Dat,Gen", "Number": "Plur", POS: DET, "PronType": "Dem"}, + "Spsgy": {"AdpType": "Prep", "Case": "Gen", POS: ADP}, + "Td-po": { "Number": "Plur", POS: DET, "PronType": "Dem"}, "Tdfpr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Plur", POS: DET, "PronType": "Dem", }, "Tdfso": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, "PronType": "Dem", }, "Tdfsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, "PronType": "Dem", }, "Tdmpr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Plur", POS: DET, "PronType": "Dem", }, "Tdmso": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Dem", }, "Tdmsr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Dem", }, - "Tf-so": {"Case": "Dat,Gen", "Number": "Sing", POS: DET, "PronType": "Art"}, + "Tf-so": { "Number": "Sing", POS: DET, "PronType": "Art"}, "Tffs-y": { "Gender": "Fem", "Number": "Sing", POS: DET, "PronType": "Art", - "Variant": "Short", + }, "Tfms-y": { "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Art", - "Variant": "Short", + }, "Tfmsoy": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Art", - "Variant": "Short", + }, "Tfmsry": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Art", - "Variant": "Short", + }, - "Ti-po": {"Case": "Dat,Gen", "Number": "Plur", POS: DET, "PronType": "Ind"}, + "Ti-po": { "Number": "Plur", POS: DET, "PronType": "Ind"}, "Tifp-y": { "Gender": "Fem", "Number": "Plur", POS: DET, "PronType": "Ind", - "Variant": "Short", + }, "Tifso": { - "Case": "Dat,Gen", + "Gender": "Fem", "Number": "Sing", POS: DET, "PronType": "Ind", }, "Tifsr": { - "Case": "Acc,Nom", + "Gender": "Fem", "Number": "Sing", POS: DET, "PronType": "Ind", }, "Timso": { - "Case": "Dat,Gen", + "Gender": "Masc", "Number": "Sing", POS: DET, "PronType": "Ind", }, "Timsr": { - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: DET, @@ -1343,23 +1343,23 @@ TAG_MAP = { "Poss": "Yes", "PronType": "Prs", }, - "Va--1": {POS: AUX, "Person": "1"}, - "Va--1p": {"Number": "Plur", POS: AUX, "Person": "1"}, - "Va--1s": {"Number": "Sing", POS: AUX, "Person": "1"}, - "Va--2p": {"Number": "Plur", POS: AUX, "Person": "2"}, - "Va--2s": {"Number": "Sing", POS: AUX, "Person": "2"}, - "Va--3": {POS: AUX, "Person": "3"}, - "Va--3-----y": {POS: AUX, "Person": "3", "Variant": "Short"}, - "Va--3p": {"Number": "Plur", POS: AUX, "Person": "3"}, - "Va--3p----y": {"Number": "Plur", POS: AUX, "Person": "3", "Variant": "Short"}, - "Va--3s": {"Number": "Sing", POS: AUX, "Person": "3"}, - "Va--3s----y": {"Number": "Sing", POS: AUX, "Person": "3", "Variant": "Short"}, + "Va--1": {POS: AUX, "Person": "one"}, + "Va--1p": {"Number": "Plur", POS: AUX, "Person": "one"}, + "Va--1s": {"Number": "Sing", POS: AUX, "Person": "one"}, + "Va--2p": {"Number": "Plur", POS: AUX, "Person": "two"}, + "Va--2s": {"Number": "Sing", POS: AUX, "Person": "two"}, + "Va--3": {POS: AUX, "Person": "three"}, + "Va--3-----y": {POS: AUX, "Person": "three"}, + "Va--3p": {"Number": "Plur", POS: AUX, "Person": "three"}, + "Va--3p----y": {"Number": "Plur", POS: AUX, "Person": "three"}, + "Va--3s": {"Number": "Sing", POS: AUX, "Person": "three"}, + "Va--3s----y": {"Number": "Sing", POS: AUX, "Person": "three"}, "Vag": {POS: AUX, "VerbForm": "Ger"}, "Vaii3p": { "Mood": "Ind", "Number": "Plur", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1367,7 +1367,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1375,15 +1375,15 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "3", - "Tense": "Pqp", + "Person": "three", + "VerbForm": "Fin", }, "Vaip1s": { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "1", + "Person": "one", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1391,7 +1391,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "2", + "Person": "two", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1399,7 +1399,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Plur", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1407,7 +1407,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1416,32 +1416,32 @@ TAG_MAP = { "Vasp3": { "Mood": "Sub", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, "Vmg": {POS: VERB, "VerbForm": "Ger"}, - "Vmg-------y": {POS: VERB, "Variant": "Short", "VerbForm": "Ger"}, + "Vmg-------y": {POS: VERB, "VerbForm": "Ger"}, "Vmii1": { "Mood": "Ind", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Imp", "VerbForm": "Fin", }, "Vmii1-----y": { "Mood": "Ind", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Imp", - "Variant": "Short", + "VerbForm": "Fin", }, "Vmii2p": { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "2", + "Person": "two", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1449,7 +1449,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "2", + "Person": "two", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1457,7 +1457,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1465,16 +1465,16 @@ TAG_MAP = { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Imp", - "Variant": "Short", + "VerbForm": "Fin", }, "Vmii3s": { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Imp", "VerbForm": "Fin", }, @@ -1482,23 +1482,23 @@ TAG_MAP = { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "3", - "Tense": "Pqp", + "Person": "three", + "VerbForm": "Fin", }, "Vmil3s": { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "3", - "Tense": "Pqp", + "Person": "three", + "VerbForm": "Fin", }, "Vmip1p": { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1506,7 +1506,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1514,16 +1514,16 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Pres", - "Variant": "Short", + "VerbForm": "Fin", }, "Vmip2p": { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "2", + "Person": "two", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1531,30 +1531,30 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "2", + "Person": "two", "Tense": "Pres", "VerbForm": "Fin", }, "Vmip3": { "Mood": "Ind", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, "Vmip3-----y": { "Mood": "Ind", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Pres", - "Variant": "Short", + "VerbForm": "Fin", }, "Vmip3p": { "Mood": "Ind", "Number": "Plur", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1562,7 +1562,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, @@ -1570,16 +1570,16 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: AUX, - "Person": "3", + "Person": "three", "Tense": "Pres", - "Variant": "Short", + "VerbForm": "Fin", }, "Vmis1p": { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Past", "VerbForm": "Fin", }, @@ -1587,7 +1587,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "1", + "Person": "one", "Tense": "Past", "VerbForm": "Fin", }, @@ -1595,7 +1595,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Plur", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Past", "VerbForm": "Fin", }, @@ -1603,7 +1603,7 @@ TAG_MAP = { "Mood": "Ind", "Number": "Sing", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Past", "VerbForm": "Fin", }, @@ -1611,14 +1611,14 @@ TAG_MAP = { "Mood": "Imp", "Number": "Plur", POS: VERB, - "Person": "2", + "Person": "two", "VerbForm": "Fin", }, "Vmm-2s": { "Mood": "Imp", "Number": "Sing", POS: VERB, - "Person": "2", + "Person": "two", "VerbForm": "Fin", }, "Vmnp": {POS: VERB, "Tense": "Pres", "VerbForm": "Inf"}, @@ -1629,16 +1629,16 @@ TAG_MAP = { "Vmsp3": { "Mood": "Sub", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Pres", "VerbForm": "Fin", }, "Vmsp3-----y": { "Mood": "Sub", POS: VERB, - "Person": "3", + "Person": "three", "Tense": "Pres", - "Variant": "Short", + "VerbForm": "Fin", }, "X": {POS: X}, @@ -1646,7 +1646,7 @@ TAG_MAP = { "Yn": {"Abbr": "Yes", POS: NOUN}, "Ynmsry": { "Abbr": "Yes", - "Case": "Acc,Nom", + "Gender": "Masc", "Number": "Sing", POS: NOUN, diff --git a/spacy/lang/ru/tag_map.py b/spacy/lang/ru/tag_map.py index baf065588..b6ca314b6 100644 --- a/spacy/lang/ru/tag_map.py +++ b/spacy/lang/ru/tag_map.py @@ -6,741 +6,741 @@ from ...symbols import PROPN, PART, INTJ, PRON, SCONJ, AUX, CCONJ # fmt: off TAG_MAP = { - 'ADJ__Animacy=Anim|Case=Acc|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Animacy': 'Anim', 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Animacy=Anim|Case=Acc|Degree=Pos|Number=Plur': {POS: ADJ, 'Animacy': 'Anim', 'Case': 'Acc', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Animacy=Anim|Case=Acc|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Animacy': 'Anim', 'Case': 'Acc', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Animacy=Anim|Case=Nom|Degree=Pos|Number=Plur': {POS: ADJ, 'Animacy': 'Anim', 'Case': 'Nom', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Number=Plur': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Animacy=Inan|Case=Acc|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Animacy=Inan|Case=Acc|Degree=Sup|Number=Plur': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Animacy=Inan|Case=Nom|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Animacy': 'Inan', 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Acc|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Acc|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Acc|Degree=Sup|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Acc', 'Degree': 'Sup', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Acc|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Acc', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Pos|Number=Plur': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Case=Dat|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Dat|Degree=Sup|Number=Plur': {POS: ADJ, 'Case': 'Dat', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing|Variant=Short': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing', 'Variant': 'Short'}, - 'ADJ__Case=Gen|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Pos|Number=Plur': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Case=Gen|Degree=Sup|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Sup', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Gen|Degree=Sup|Number=Plur': {POS: ADJ, 'Case': 'Gen', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Case=Ins|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Pos|Number=Plur': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Case=Ins|Degree=Sup|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Sup', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Ins|Degree=Sup|Number=Plur': {POS: ADJ, 'Case': 'Ins', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Case=Loc|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Pos|Number=Plur': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Case=Loc|Degree=Sup|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Sup', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Loc|Degree=Sup|Number=Plur': {POS: ADJ, 'Case': 'Loc', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Case=Nom|Degree=Pos|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Pos|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Pos|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Pos|Number=Plur': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Pos', 'Number': 'Plur'}, - 'ADJ__Case=Nom|Degree=Sup|Gender=Fem|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Sup', 'Gender': 'Fem', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Sup|Gender=Masc|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Sup', 'Gender': 'Masc', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Sup|Gender=Neut|Number=Sing': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Sup', 'Gender': 'Neut', 'Number': 'Sing'}, - 'ADJ__Case=Nom|Degree=Sup|Number=Plur': {POS: ADJ, 'Case': 'Nom', 'Degree': 'Sup', 'Number': 'Plur'}, - 'ADJ__Degree=Cmp': {POS: ADJ, 'Degree': 'Cmp'}, - 'ADJ__Degree=Pos': {POS: ADJ, 'Degree': 'Pos'}, - 'ADJ__Degree=Pos|Gender=Fem|Number=Sing|Variant=Short': {POS: ADJ, 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing', 'Variant': 'Short'}, - 'ADJ__Degree=Pos|Gender=Masc|Number=Sing|Variant=Short': {POS: ADJ, 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing', 'Variant': 'Short'}, - 'ADJ__Degree=Pos|Gender=Neut|Number=Sing|Variant=Short': {POS: ADJ, 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing', 'Variant': 'Short'}, - 'ADJ__Degree=Pos|Number=Plur|Variant=Short': {POS: ADJ, 'Degree': 'Pos', 'Number': 'Plur', 'Variant': 'Short'}, - 'ADJ__Foreign=Yes': {POS: ADJ, 'Foreign': 'Yes'}, - 'ADJ___': {POS: ADJ}, - 'ADJ': {POS: ADJ}, - 'ADP___': {POS: ADP}, - 'ADP': {POS: ADP}, - 'ADV__Degree=Cmp': {POS: ADV, 'Degree': 'Cmp'}, - 'ADV__Degree=Pos': {POS: ADV, 'Degree': 'Pos'}, - 'ADV__Polarity=Neg': {POS: ADV, 'Polarity': 'Neg'}, - 'AUX__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Sing', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'Tense': 'Pres', 'VerbForm': 'Conv', 'Voice': 'Act'}, - 'AUX__Aspect=Imp|VerbForm=Inf|Voice=Act': {POS: AUX, 'Aspect': 'Imp', 'VerbForm': 'Inf', 'Voice': 'Act'}, - 'CCONJ___': {POS: CCONJ}, - 'CCONJ': {POS: CCONJ}, - 'DET__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing': {POS: DET, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing': {POS: DET, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing': {POS: DET, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Animacy=Inan|Case=Gen|Number=Plur': {POS: DET, 'Animacy': 'Inan', 'Case': 'Gen', 'Number': 'Plur'}, - 'DET__Case=Acc|Degree=Pos|Number=Plur': {POS: DET, 'Case': 'Acc', 'Degree': 'Pos', 'Number': 'Plur'}, - 'DET__Case=Acc|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Acc|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Acc|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Acc|Number=Plur': {POS: DET, 'Case': 'Acc', 'Number': 'Plur'}, - 'DET__Case=Dat|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Dat|Gender=Masc|Number=Plur': {POS: DET, 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Plur'}, - 'DET__Case=Dat|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Dat|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Dat|Number=Plur': {POS: DET, 'Case': 'Dat', 'Number': 'Plur'}, - 'DET__Case=Gen|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Gen|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Gen|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Gen|Number=Plur': {POS: DET, 'Case': 'Gen', 'Number': 'Plur'}, - 'DET__Case=Ins|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Ins|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Ins|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Ins|Number=Plur': {POS: DET, 'Case': 'Ins', 'Number': 'Plur'}, - 'DET__Case=Loc|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Loc|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Loc|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Loc|Number=Plur': {POS: DET, 'Case': 'Loc', 'Number': 'Plur'}, - 'DET__Case=Nom|Gender=Fem|Number=Sing': {POS: DET, 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing'}, - 'DET__Case=Nom|Gender=Masc|Number=Plur': {POS: DET, 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'DET__Case=Nom|Gender=Masc|Number=Sing': {POS: DET, 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing'}, - 'DET__Case=Nom|Gender=Neut|Number=Sing': {POS: DET, 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing'}, - 'DET__Case=Nom|Number=Plur': {POS: DET, 'Case': 'Nom', 'Number': 'Plur'}, - 'DET__Gender=Masc|Number=Sing': {POS: DET, 'Gender': 'Masc', 'Number': 'Sing'}, - 'INTJ___': {POS: INTJ}, - 'INTJ': {POS: INTJ}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Acc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Acc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Dat|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Dat', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Gen|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Gen|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Gen', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Ins|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Ins', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Loc|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Loc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Loc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Anim|Case=Nom|Number=Plur': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Nom', 'Number': 'Plur'}, - 'NOUN__Animacy=Anim|Case=Voc|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Anim', 'Case': 'Voc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Acc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Acc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Dat|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Dat', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Gen|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Gen', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Ins|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Ins', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Loc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Loc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Case=Nom|Number=Plur': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Nom', 'Number': 'Plur'}, - 'NOUN__Animacy=Inan|Case=Par|Gender=Masc|Number=Sing': {POS: NOUN, 'Animacy': 'Inan', 'Case': 'Par', 'Gender': 'Masc', 'Number': 'Sing'}, - 'NOUN__Animacy=Inan|Gender=Fem': {POS: NOUN, 'Animacy': 'Inan', 'Gender': 'Fem'}, - 'NOUN__Animacy=Inan|Gender=Masc': {POS: NOUN, 'Animacy': 'Inan', 'Gender': 'Masc'}, - 'NOUN__Animacy=Inan|Gender=Neut': {POS: NOUN, 'Animacy': 'Inan', 'Gender': 'Neut'}, - 'NOUN__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing': {POS: NOUN, 'Case': 'Gen', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'NOUN__Foreign=Yes': {POS: NOUN, 'Foreign': 'Yes'}, - 'NOUN___': {POS: NOUN}, - 'NOUN': {POS: NOUN}, - 'NUM__Animacy=Anim|Case=Acc': {POS: NUM, 'Animacy': 'Anim', 'Case': 'Acc'}, - 'NUM__Animacy=Anim|Case=Acc|Gender=Fem': {POS: NUM, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Fem'}, - 'NUM__Animacy=Anim|Case=Acc|Gender=Masc': {POS: NUM, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc'}, - 'NUM__Animacy=Inan|Case=Acc': {POS: NUM, 'Animacy': 'Inan', 'Case': 'Acc'}, - 'NUM__Animacy=Inan|Case=Acc|Gender=Fem': {POS: NUM, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem'}, - 'NUM__Animacy=Inan|Case=Acc|Gender=Masc': {POS: NUM, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc'}, - 'NUM__Case=Acc': {POS: NUM, 'Case': 'Acc'}, - 'NUM__Case=Acc|Gender=Fem': {POS: NUM, 'Case': 'Acc', 'Gender': 'Fem'}, - 'NUM__Case=Acc|Gender=Masc': {POS: NUM, 'Case': 'Acc', 'Gender': 'Masc'}, - 'NUM__Case=Acc|Gender=Neut': {POS: NUM, 'Case': 'Acc', 'Gender': 'Neut'}, - 'NUM__Case=Dat': {POS: NUM, 'Case': 'Dat'}, - 'NUM__Case=Dat|Gender=Fem': {POS: NUM, 'Case': 'Dat', 'Gender': 'Fem'}, - 'NUM__Case=Dat|Gender=Masc': {POS: NUM, 'Case': 'Dat', 'Gender': 'Masc'}, - 'NUM__Case=Dat|Gender=Neut': {POS: NUM, 'Case': 'Dat', 'Gender': 'Neut'}, - 'NUM__Case=Gen': {POS: NUM, 'Case': 'Gen'}, - 'NUM__Case=Gen|Gender=Fem': {POS: NUM, 'Case': 'Gen', 'Gender': 'Fem'}, - 'NUM__Case=Gen|Gender=Masc': {POS: NUM, 'Case': 'Gen', 'Gender': 'Masc'}, - 'NUM__Case=Gen|Gender=Neut': {POS: NUM, 'Case': 'Gen', 'Gender': 'Neut'}, - 'NUM__Case=Ins': {POS: NUM, 'Case': 'Ins'}, - 'NUM__Case=Ins|Gender=Fem': {POS: NUM, 'Case': 'Ins', 'Gender': 'Fem'}, - 'NUM__Case=Ins|Gender=Masc': {POS: NUM, 'Case': 'Ins', 'Gender': 'Masc'}, - 'NUM__Case=Ins|Gender=Neut': {POS: NUM, 'Case': 'Ins', 'Gender': 'Neut'}, - 'NUM__Case=Loc': {POS: NUM, 'Case': 'Loc'}, - 'NUM__Case=Loc|Gender=Fem': {POS: NUM, 'Case': 'Loc', 'Gender': 'Fem'}, - 'NUM__Case=Loc|Gender=Masc': {POS: NUM, 'Case': 'Loc', 'Gender': 'Masc'}, - 'NUM__Case=Loc|Gender=Neut': {POS: NUM, 'Case': 'Loc', 'Gender': 'Neut'}, - 'NUM__Case=Nom': {POS: NUM, 'Case': 'Nom'}, - 'NUM__Case=Nom|Gender=Fem': {POS: NUM, 'Case': 'Nom', 'Gender': 'Fem'}, - 'NUM__Case=Nom|Gender=Masc': {POS: NUM, 'Case': 'Nom', 'Gender': 'Masc'}, - 'NUM__Case=Nom|Gender=Neut': {POS: NUM, 'Case': 'Nom', 'Gender': 'Neut'}, - 'NUM___': {POS: NUM}, - 'NUM': {POS: NUM}, - 'PART__Mood=Cnd': {POS: PART, 'Mood': 'Cnd'}, - 'PART__Polarity=Neg': {POS: PART, 'Polarity': 'Neg'}, - 'PART___': {POS: PART}, - 'PART': {POS: PART}, - 'PRON__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Acc|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Acc', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PRON__Animacy=Anim|Case=Dat|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Dat', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Gen|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Gen', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PRON__Animacy=Anim|Case=Ins|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Ins', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Loc|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Loc', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Case=Nom|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Case': 'Nom', 'Number': 'Plur'}, - 'PRON__Animacy=Anim|Gender=Masc|Number=Plur': {POS: PRON, 'Animacy': 'Anim', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PRON__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Animacy=Inan|Gender=Neut|Number=Sing': {POS: PRON, 'Animacy': 'Inan', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PRON__Case=Acc': {POS: PRON, 'Case': 'Acc'}, - 'PRON__Case=Acc|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Acc|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Acc|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Acc|Number=Plur|Person=1': {POS: PRON, 'Case': 'Acc', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Acc|Number=Plur|Person=2': {POS: PRON, 'Case': 'Acc', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Acc|Number=Plur|Person=3': {POS: PRON, 'Case': 'Acc', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Acc|Number=Sing|Person=1': {POS: PRON, 'Case': 'Acc', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Acc|Number=Sing|Person=2': {POS: PRON, 'Case': 'Acc', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Case=Dat': {POS: PRON, 'Case': 'Dat'}, - 'PRON__Case=Dat|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Dat|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Dat|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Dat|Number=Plur|Person=1': {POS: PRON, 'Case': 'Dat', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Dat|Number=Plur|Person=2': {POS: PRON, 'Case': 'Dat', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Dat|Number=Plur|Person=3': {POS: PRON, 'Case': 'Dat', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Dat|Number=Sing|Person=1': {POS: PRON, 'Case': 'Dat', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Dat|Number=Sing|Person=2': {POS: PRON, 'Case': 'Dat', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Case=Gen': {POS: PRON, 'Case': 'Gen'}, - 'PRON__Case=Gen|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Gen|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Gen|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Gen|Number=Plur|Person=1': {POS: PRON, 'Case': 'Gen', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Gen|Number=Plur|Person=2': {POS: PRON, 'Case': 'Gen', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Gen|Number=Plur|Person=3': {POS: PRON, 'Case': 'Gen', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Gen|Number=Sing|Person=1': {POS: PRON, 'Case': 'Gen', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Gen|Number=Sing|Person=2': {POS: PRON, 'Case': 'Gen', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Case=Ins': {POS: PRON, 'Case': 'Ins'}, - 'PRON__Case=Ins|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Ins|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Ins|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Ins|Number=Plur|Person=1': {POS: PRON, 'Case': 'Ins', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Ins|Number=Plur|Person=2': {POS: PRON, 'Case': 'Ins', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Ins|Number=Plur|Person=3': {POS: PRON, 'Case': 'Ins', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Ins|Number=Sing|Person=1': {POS: PRON, 'Case': 'Ins', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Ins|Number=Sing|Person=2': {POS: PRON, 'Case': 'Ins', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Case=Loc': {POS: PRON, 'Case': 'Loc'}, - 'PRON__Case=Loc|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Loc|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Loc|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Loc|Number=Plur|Person=1': {POS: PRON, 'Case': 'Loc', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Loc|Number=Plur|Person=2': {POS: PRON, 'Case': 'Loc', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Loc|Number=Plur|Person=3': {POS: PRON, 'Case': 'Loc', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Loc|Number=Sing|Person=1': {POS: PRON, 'Case': 'Loc', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Loc|Number=Sing|Person=2': {POS: PRON, 'Case': 'Loc', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Case=Nom': {POS: PRON, 'Case': 'Nom'}, - 'PRON__Case=Nom|Gender=Fem|Number=Sing|Person=3': {POS: PRON, 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Nom|Gender=Masc|Number=Sing|Person=3': {POS: PRON, 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Nom|Gender=Neut|Number=Sing|Person=3': {POS: PRON, 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Person': '3'}, - 'PRON__Case=Nom|Number=Plur|Person=1': {POS: PRON, 'Case': 'Nom', 'Number': 'Plur', 'Person': '1'}, - 'PRON__Case=Nom|Number=Plur|Person=2': {POS: PRON, 'Case': 'Nom', 'Number': 'Plur', 'Person': '2'}, - 'PRON__Case=Nom|Number=Plur|Person=3': {POS: PRON, 'Case': 'Nom', 'Number': 'Plur', 'Person': '3'}, - 'PRON__Case=Nom|Number=Sing|Person=1': {POS: PRON, 'Case': 'Nom', 'Number': 'Sing', 'Person': '1'}, - 'PRON__Case=Nom|Number=Sing|Person=2': {POS: PRON, 'Case': 'Nom', 'Number': 'Sing', 'Person': '2'}, - 'PRON__Number=Sing|Person=1': {POS: PRON, 'Number': 'Sing', 'Person': '1'}, - 'PRON___': {POS: PRON}, - 'PRON': {POS: PRON}, - 'PROPN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Gen|Foreign=Yes|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Gen', 'Foreign': 'Yes', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Nom|Foreign=Yes|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Foreign': 'Yes', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Anim|Case=Voc|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Case': 'Voc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Anim|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Anim', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Acc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Acc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Dat|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Dat', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Gen|Foreign=Yes|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Foreign': 'Yes', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Gen|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Gen', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Ins|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Ins', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Loc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Loc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Foreign': 'Yes', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Foreign': 'Yes', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Foreign': 'Yes', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Case=Nom|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Nom', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Case=Par|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Case': 'Par', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Gender=Fem': {POS: PROPN, 'Animacy': 'Inan', 'Gender': 'Fem'}, - 'PROPN__Animacy=Inan|Gender=Masc': {POS: PROPN, 'Animacy': 'Inan', 'Gender': 'Masc'}, - 'PROPN__Animacy=Inan|Gender=Masc|Number=Plur': {POS: PROPN, 'Animacy': 'Inan', 'Gender': 'Masc', 'Number': 'Plur'}, - 'PROPN__Animacy=Inan|Gender=Masc|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Animacy=Inan|Gender=Neut|Number=Sing': {POS: PROPN, 'Animacy': 'Inan', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Case=Acc|Degree=Pos|Gender=Fem|Number=Sing': {POS: PROPN, 'Case': 'Acc', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Case=Dat|Degree=Pos|Gender=Masc|Number=Sing': {POS: PROPN, 'Case': 'Dat', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Case=Ins|Degree=Pos|Gender=Fem|Number=Sing': {POS: PROPN, 'Case': 'Ins', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Case=Ins|Degree=Pos|Number=Plur': {POS: PROPN, 'Case': 'Ins', 'Degree': 'Pos', 'Number': 'Plur'}, - 'PROPN__Case=Nom|Degree=Pos|Gender=Fem|Number=Sing': {POS: PROPN, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Fem', 'Number': 'Sing'}, - 'PROPN__Case=Nom|Degree=Pos|Gender=Masc|Number=Sing': {POS: PROPN, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Masc', 'Number': 'Sing'}, - 'PROPN__Case=Nom|Degree=Pos|Gender=Neut|Number=Sing': {POS: PROPN, 'Case': 'Nom', 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing'}, - 'PROPN__Case=Nom|Degree=Pos|Number=Plur': {POS: PROPN, 'Case': 'Nom', 'Degree': 'Pos', 'Number': 'Plur'}, - 'PROPN__Degree=Pos|Gender=Neut|Number=Sing|Variant=Short': {POS: PROPN, 'Degree': 'Pos', 'Gender': 'Neut', 'Number': 'Sing', 'Variant': 'Short'}, - 'PROPN__Degree=Pos|Number=Plur|Variant=Short': {POS: PROPN, 'Degree': 'Pos', 'Number': 'Plur', 'Variant': 'Short'}, - 'PROPN__Foreign=Yes': {POS: PROPN, 'Foreign': 'Yes'}, - 'PROPN__Number=Sing': {POS: PROPN, 'Number': 'Sing'}, - 'PROPN___': {POS: PROPN}, - 'PROPN': {POS: PROPN}, - 'PUNCT___': {POS: PUNCT}, - 'PUNCT': {POS: PUNCT}, - 'SCONJ__Mood=Cnd': {POS: SCONJ, 'Mood': 'Cnd'}, - 'SCONJ___': {POS: SCONJ}, - 'SCONJ': {POS: SCONJ}, - 'SYM___': {POS: SYM}, - 'SYM': {POS: SYM}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Anim', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Imp', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Animacy': 'Inan', 'Aspect': 'Perf', 'Case': 'Acc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Pres', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Fem|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Fem|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Pres', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Masc|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Masc|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Pres', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Neut|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Gender=Neut|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Pres', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Sing', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Imp', 'Number': 'Sing', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '1', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '2', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Pres', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Number=Plur|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Number': 'Plur', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Number=Plur|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Number': 'Plur', 'Tense': 'Pres', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|Tense=Past|VerbForm=Conv|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Tense': 'Past', 'VerbForm': 'Conv', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'Tense': 'Pres', 'VerbForm': 'Conv', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'Tense': 'Pres', 'VerbForm': 'Conv', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'Tense': 'Pres', 'VerbForm': 'Conv', 'Voice': 'Pass'}, - 'VERB__Aspect=Imp|VerbForm=Inf|Voice=Act': {POS: VERB, 'Aspect': 'Imp', 'VerbForm': 'Inf', 'Voice': 'Act'}, - 'VERB__Aspect=Imp|VerbForm=Inf|Voice=Mid': {POS: VERB, 'Aspect': 'Imp', 'VerbForm': 'Inf', 'Voice': 'Mid'}, - 'VERB__Aspect=Imp|VerbForm=Inf|Voice=Pass': {POS: VERB, 'Aspect': 'Imp', 'VerbForm': 'Inf', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Acc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Dat', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Fut|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Fut', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Gen', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Ins', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Loc', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Case': 'Nom', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Fem', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Gender=Fem|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Fem', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Masc', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Gender=Masc|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Masc', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Neut', 'Mood': 'Ind', 'Number': 'Sing', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Gender=Neut|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Gender': 'Neut', 'Number': 'Sing', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=1|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '1', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Imp', 'Number': 'Plur', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Imp', 'Number': 'Sing', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Imp', 'Number': 'Sing', 'Person': '2', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=1|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '1', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=1|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '1', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=2|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '2', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=2|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '2', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Person': '3', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Plur', 'Tense': 'Past', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=1|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '1', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=1|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '1', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=2|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '2', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=2|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '2', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Mood': 'Ind', 'Number': 'Sing', 'Person': '3', 'Tense': 'Fut', 'VerbForm': 'Fin', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|Number=Plur|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass': {POS: VERB, 'Aspect': 'Perf', 'Number': 'Plur', 'Tense': 'Past', 'Variant': 'Short', 'VerbForm': 'Part', 'Voice': 'Pass'}, - 'VERB__Aspect=Perf|Tense=Past|VerbForm=Conv|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'Tense': 'Past', 'VerbForm': 'Conv', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|Tense=Past|VerbForm=Conv|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'Tense': 'Past', 'VerbForm': 'Conv', 'Voice': 'Mid'}, - 'VERB__Aspect=Perf|VerbForm=Inf|Voice=Act': {POS: VERB, 'Aspect': 'Perf', 'VerbForm': 'Inf', 'Voice': 'Act'}, - 'VERB__Aspect=Perf|VerbForm=Inf|Voice=Mid': {POS: VERB, 'Aspect': 'Perf', 'VerbForm': 'Inf', 'Voice': 'Mid'}, - 'VERB__Voice=Act': {POS: VERB, 'Voice': 'Act'}, - 'VERB___': {POS: VERB}, - 'VERB': {POS: VERB}, - 'X__Foreign=Yes': {POS: X, 'Foreign': 'Yes'}, - 'X___': {POS: X}, - 'X': {POS: X}, + "ADJ__Animacy=Anim|Case=Acc|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Animacy": "Anim", "Case": "Acc", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Animacy=Anim|Case=Acc|Degree=Pos|Number=Plur": {POS: ADJ, "Animacy": "Anim", "Case": "Acc", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Animacy=Anim|Case=Acc|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Animacy": "Anim", "Case": "Acc", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Animacy=Anim|Case=Nom|Degree=Pos|Number=Plur": {POS: ADJ, "Animacy": "Anim", "Case": "Nom", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Animacy=Inan|Case=Acc|Degree=Pos|Number=Plur": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Animacy=Inan|Case=Acc|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Animacy=Inan|Case=Acc|Degree=Sup|Number=Plur": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing": {POS: ADJ, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Animacy=Inan|Case=Nom|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Animacy": "Inan", "Case": "Nom", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Acc|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Acc", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Acc|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Acc", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Acc|Degree=Sup|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Acc", "Degree": "Sup", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Acc|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Acc", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Dat", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Dat", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Dat", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Pos|Number=Plur": {POS: ADJ, "Case": "Dat", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Case=Dat|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Dat", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Dat", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Dat|Degree=Sup|Number=Plur": {POS: ADJ, "Case": "Dat", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing|Variant=Short": {POS: ADJ, "Case": "Gen", "Degree": "Pos", "Gender": "Fem", "Number": "Sing", }, + "ADJ__Case=Gen|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Pos|Number=Plur": {POS: ADJ, "Case": "Gen", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Case=Gen|Degree=Sup|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Sup", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Gen", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Gen|Degree=Sup|Number=Plur": {POS: ADJ, "Case": "Gen", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Case=Ins|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Pos|Number=Plur": {POS: ADJ, "Case": "Ins", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Case=Ins|Degree=Sup|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Sup", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Ins", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Ins|Degree=Sup|Number=Plur": {POS: ADJ, "Case": "Ins", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Case=Loc|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Pos|Number=Plur": {POS: ADJ, "Case": "Loc", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Case=Loc|Degree=Sup|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Sup", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Loc", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Loc|Degree=Sup|Number=Plur": {POS: ADJ, "Case": "Loc", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Case=Nom|Degree=Pos|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Pos|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Pos|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Pos|Number=Plur": {POS: ADJ, "Case": "Nom", "Degree": "Pos", "Number": "Plur"}, + "ADJ__Case=Nom|Degree=Sup|Gender=Fem|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Sup", "Gender": "Fem", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Sup|Gender=Masc|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Sup", "Gender": "Masc", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Sup|Gender=Neut|Number=Sing": {POS: ADJ, "Case": "Nom", "Degree": "Sup", "Gender": "Neut", "Number": "Sing"}, + "ADJ__Case=Nom|Degree=Sup|Number=Plur": {POS: ADJ, "Case": "Nom", "Degree": "Sup", "Number": "Plur"}, + "ADJ__Degree=Cmp": {POS: ADJ, "Degree": "Cmp"}, + "ADJ__Degree=Pos": {POS: ADJ, "Degree": "Pos"}, + "ADJ__Degree=Pos|Gender=Fem|Number=Sing|Variant=Short": {POS: ADJ, "Degree": "Pos", "Gender": "Fem", "Number": "Sing", }, + "ADJ__Degree=Pos|Gender=Masc|Number=Sing|Variant=Short": {POS: ADJ, "Degree": "Pos", "Gender": "Masc", "Number": "Sing", }, + "ADJ__Degree=Pos|Gender=Neut|Number=Sing|Variant=Short": {POS: ADJ, "Degree": "Pos", "Gender": "Neut", "Number": "Sing", }, + "ADJ__Degree=Pos|Number=Plur|Variant=Short": {POS: ADJ, "Degree": "Pos", "Number": "Plur", }, + "ADJ__Foreign=Yes": {POS: ADJ, "Foreign": "Yes"}, + "ADJ___": {POS: ADJ}, + "ADJ": {POS: ADJ}, + "ADP___": {POS: ADP}, + "ADP": {POS: ADP}, + "ADV__Degree=Cmp": {POS: ADV, "Degree": "Cmp"}, + "ADV__Degree=Pos": {POS: ADV, "Degree": "Pos"}, + "ADV__Polarity=Neg": {POS: ADV, "Polarity": "Neg"}, + "AUX__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: AUX, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "AUX__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: AUX, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "AUX__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: AUX, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "AUX__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Imp", "Number": "Plur", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Imp", "Number": "Sing", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: AUX, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "AUX__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Act": {POS: AUX, "Aspect": "Imp", "Tense": "Pres", "VerbForm": "Conv", "Voice": "Act"}, + "AUX__Aspect=Imp|VerbForm=Inf|Voice=Act": {POS: AUX, "Aspect": "Imp", "VerbForm": "Inf", "Voice": "Act"}, + "CCONJ___": {POS: CCONJ}, + "CCONJ": {POS: CCONJ}, + "DET__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing": {POS: DET, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "DET__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing": {POS: DET, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "DET__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing": {POS: DET, "Animacy": "Inan", "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "DET__Animacy=Inan|Case=Gen|Number=Plur": {POS: DET, "Animacy": "Inan", "Case": "Gen", "Number": "Plur"}, + "DET__Case=Acc|Degree=Pos|Number=Plur": {POS: DET, "Case": "Acc", "Degree": "Pos", "Number": "Plur"}, + "DET__Case=Acc|Gender=Fem|Number=Sing": {POS: DET, "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Acc|Gender=Masc|Number=Sing": {POS: DET, "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Acc|Gender=Neut|Number=Sing": {POS: DET, "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Acc|Number=Plur": {POS: DET, "Case": "Acc", "Number": "Plur"}, + "DET__Case=Dat|Gender=Fem|Number=Sing": {POS: DET, "Case": "Dat", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Dat|Gender=Masc|Number=Plur": {POS: DET, "Case": "Dat", "Gender": "Masc", "Number": "Plur"}, + "DET__Case=Dat|Gender=Masc|Number=Sing": {POS: DET, "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Dat|Gender=Neut|Number=Sing": {POS: DET, "Case": "Dat", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Dat|Number=Plur": {POS: DET, "Case": "Dat", "Number": "Plur"}, + "DET__Case=Gen|Gender=Fem|Number=Sing": {POS: DET, "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Gen|Gender=Masc|Number=Sing": {POS: DET, "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Gen|Gender=Neut|Number=Sing": {POS: DET, "Case": "Gen", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Gen|Number=Plur": {POS: DET, "Case": "Gen", "Number": "Plur"}, + "DET__Case=Ins|Gender=Fem|Number=Sing": {POS: DET, "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Ins|Gender=Masc|Number=Sing": {POS: DET, "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Ins|Gender=Neut|Number=Sing": {POS: DET, "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Ins|Number=Plur": {POS: DET, "Case": "Ins", "Number": "Plur"}, + "DET__Case=Loc|Gender=Fem|Number=Sing": {POS: DET, "Case": "Loc", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Loc|Gender=Masc|Number=Sing": {POS: DET, "Case": "Loc", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Loc|Gender=Neut|Number=Sing": {POS: DET, "Case": "Loc", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Loc|Number=Plur": {POS: DET, "Case": "Loc", "Number": "Plur"}, + "DET__Case=Nom|Gender=Fem|Number=Sing": {POS: DET, "Case": "Nom", "Gender": "Fem", "Number": "Sing"}, + "DET__Case=Nom|Gender=Masc|Number=Plur": {POS: DET, "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "DET__Case=Nom|Gender=Masc|Number=Sing": {POS: DET, "Case": "Nom", "Gender": "Masc", "Number": "Sing"}, + "DET__Case=Nom|Gender=Neut|Number=Sing": {POS: DET, "Case": "Nom", "Gender": "Neut", "Number": "Sing"}, + "DET__Case=Nom|Number=Plur": {POS: DET, "Case": "Nom", "Number": "Plur"}, + "DET__Gender=Masc|Number=Sing": {POS: DET, "Gender": "Masc", "Number": "Sing"}, + "INTJ___": {POS: INTJ}, + "INTJ": {POS: INTJ}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Acc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Acc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Dat|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Dat", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Gen|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Gen|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Gen", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Ins|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Ins", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Loc|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Loc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Loc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Anim|Case=Nom|Number=Plur": {POS: NOUN, "Animacy": "Anim", "Case": "Nom", "Number": "Plur"}, + "NOUN__Animacy=Anim|Case=Voc|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Anim", "Case": "Voc", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Acc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Acc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Dat|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Dat", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Gen|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Gen", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Ins|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Ins", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Loc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Loc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Fem", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Neut", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Gender": "Neut", "Number": "Sing"}, + "NOUN__Animacy=Inan|Case=Nom|Number=Plur": {POS: NOUN, "Animacy": "Inan", "Case": "Nom", "Number": "Plur"}, + "NOUN__Animacy=Inan|Case=Par|Gender=Masc|Number=Sing": {POS: NOUN, "Animacy": "Inan", "Case": "Par", "Gender": "Masc", "Number": "Sing"}, + "NOUN__Animacy=Inan|Gender=Fem": {POS: NOUN, "Animacy": "Inan", "Gender": "Fem"}, + "NOUN__Animacy=Inan|Gender=Masc": {POS: NOUN, "Animacy": "Inan", "Gender": "Masc"}, + "NOUN__Animacy=Inan|Gender=Neut": {POS: NOUN, "Animacy": "Inan", "Gender": "Neut"}, + "NOUN__Case=Gen|Degree=Pos|Gender=Fem|Number=Sing": {POS: NOUN, "Case": "Gen", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "NOUN__Foreign=Yes": {POS: NOUN, "Foreign": "Yes"}, + "NOUN___": {POS: NOUN}, + "NOUN": {POS: NOUN}, + "NUM__Animacy=Anim|Case=Acc": {POS: NUM, "Animacy": "Anim", "Case": "Acc"}, + "NUM__Animacy=Anim|Case=Acc|Gender=Fem": {POS: NUM, "Animacy": "Anim", "Case": "Acc", "Gender": "Fem"}, + "NUM__Animacy=Anim|Case=Acc|Gender=Masc": {POS: NUM, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc"}, + "NUM__Animacy=Inan|Case=Acc": {POS: NUM, "Animacy": "Inan", "Case": "Acc"}, + "NUM__Animacy=Inan|Case=Acc|Gender=Fem": {POS: NUM, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem"}, + "NUM__Animacy=Inan|Case=Acc|Gender=Masc": {POS: NUM, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc"}, + "NUM__Case=Acc": {POS: NUM, "Case": "Acc"}, + "NUM__Case=Acc|Gender=Fem": {POS: NUM, "Case": "Acc", "Gender": "Fem"}, + "NUM__Case=Acc|Gender=Masc": {POS: NUM, "Case": "Acc", "Gender": "Masc"}, + "NUM__Case=Acc|Gender=Neut": {POS: NUM, "Case": "Acc", "Gender": "Neut"}, + "NUM__Case=Dat": {POS: NUM, "Case": "Dat"}, + "NUM__Case=Dat|Gender=Fem": {POS: NUM, "Case": "Dat", "Gender": "Fem"}, + "NUM__Case=Dat|Gender=Masc": {POS: NUM, "Case": "Dat", "Gender": "Masc"}, + "NUM__Case=Dat|Gender=Neut": {POS: NUM, "Case": "Dat", "Gender": "Neut"}, + "NUM__Case=Gen": {POS: NUM, "Case": "Gen"}, + "NUM__Case=Gen|Gender=Fem": {POS: NUM, "Case": "Gen", "Gender": "Fem"}, + "NUM__Case=Gen|Gender=Masc": {POS: NUM, "Case": "Gen", "Gender": "Masc"}, + "NUM__Case=Gen|Gender=Neut": {POS: NUM, "Case": "Gen", "Gender": "Neut"}, + "NUM__Case=Ins": {POS: NUM, "Case": "Ins"}, + "NUM__Case=Ins|Gender=Fem": {POS: NUM, "Case": "Ins", "Gender": "Fem"}, + "NUM__Case=Ins|Gender=Masc": {POS: NUM, "Case": "Ins", "Gender": "Masc"}, + "NUM__Case=Ins|Gender=Neut": {POS: NUM, "Case": "Ins", "Gender": "Neut"}, + "NUM__Case=Loc": {POS: NUM, "Case": "Loc"}, + "NUM__Case=Loc|Gender=Fem": {POS: NUM, "Case": "Loc", "Gender": "Fem"}, + "NUM__Case=Loc|Gender=Masc": {POS: NUM, "Case": "Loc", "Gender": "Masc"}, + "NUM__Case=Loc|Gender=Neut": {POS: NUM, "Case": "Loc", "Gender": "Neut"}, + "NUM__Case=Nom": {POS: NUM, "Case": "Nom"}, + "NUM__Case=Nom|Gender=Fem": {POS: NUM, "Case": "Nom", "Gender": "Fem"}, + "NUM__Case=Nom|Gender=Masc": {POS: NUM, "Case": "Nom", "Gender": "Masc"}, + "NUM__Case=Nom|Gender=Neut": {POS: NUM, "Case": "Nom", "Gender": "Neut"}, + "NUM___": {POS: NUM}, + "NUM": {POS: NUM}, + "PART__Mood=Cnd": {POS: PART, "Mood": "Cnd"}, + "PART__Polarity=Neg": {POS: PART, "Polarity": "Neg"}, + "PART___": {POS: PART}, + "PART": {POS: PART}, + "PRON__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Acc|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Acc", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing": {POS: PRON, "Animacy": "Anim", "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "PRON__Animacy=Anim|Case=Dat|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Dat", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Gen|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Gen", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing": {POS: PRON, "Animacy": "Anim", "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "PRON__Animacy=Anim|Case=Ins|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Ins", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Loc|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Loc", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "PRON__Animacy=Anim|Case=Nom|Number=Plur": {POS: PRON, "Animacy": "Anim", "Case": "Nom", "Number": "Plur"}, + "PRON__Animacy=Anim|Gender=Masc|Number=Plur": {POS: PRON, "Animacy": "Anim", "Gender": "Masc", "Number": "Plur"}, + "PRON__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Dat", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Gen", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Loc", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Case": "Nom", "Gender": "Neut", "Number": "Sing"}, + "PRON__Animacy=Inan|Gender=Neut|Number=Sing": {POS: PRON, "Animacy": "Inan", "Gender": "Neut", "Number": "Sing"}, + "PRON__Case=Acc": {POS: PRON, "Case": "Acc"}, + "PRON__Case=Acc|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Acc|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Acc|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Acc|Number=Plur|Person=1": {POS: PRON, "Case": "Acc", "Number": "Plur", "Person": "one"}, + "PRON__Case=Acc|Number=Plur|Person=2": {POS: PRON, "Case": "Acc", "Number": "Plur", "Person": "two"}, + "PRON__Case=Acc|Number=Plur|Person=3": {POS: PRON, "Case": "Acc", "Number": "Plur", "Person": "three"}, + "PRON__Case=Acc|Number=Sing|Person=1": {POS: PRON, "Case": "Acc", "Number": "Sing", "Person": "one"}, + "PRON__Case=Acc|Number=Sing|Person=2": {POS: PRON, "Case": "Acc", "Number": "Sing", "Person": "two"}, + "PRON__Case=Dat": {POS: PRON, "Case": "Dat"}, + "PRON__Case=Dat|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Dat|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Dat|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Dat|Number=Plur|Person=1": {POS: PRON, "Case": "Dat", "Number": "Plur", "Person": "one"}, + "PRON__Case=Dat|Number=Plur|Person=2": {POS: PRON, "Case": "Dat", "Number": "Plur", "Person": "two"}, + "PRON__Case=Dat|Number=Plur|Person=3": {POS: PRON, "Case": "Dat", "Number": "Plur", "Person": "three"}, + "PRON__Case=Dat|Number=Sing|Person=1": {POS: PRON, "Case": "Dat", "Number": "Sing", "Person": "one"}, + "PRON__Case=Dat|Number=Sing|Person=2": {POS: PRON, "Case": "Dat", "Number": "Sing", "Person": "two"}, + "PRON__Case=Gen": {POS: PRON, "Case": "Gen"}, + "PRON__Case=Gen|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Gen|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Gen|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Gen|Number=Plur|Person=1": {POS: PRON, "Case": "Gen", "Number": "Plur", "Person": "one"}, + "PRON__Case=Gen|Number=Plur|Person=2": {POS: PRON, "Case": "Gen", "Number": "Plur", "Person": "two"}, + "PRON__Case=Gen|Number=Plur|Person=3": {POS: PRON, "Case": "Gen", "Number": "Plur", "Person": "three"}, + "PRON__Case=Gen|Number=Sing|Person=1": {POS: PRON, "Case": "Gen", "Number": "Sing", "Person": "one"}, + "PRON__Case=Gen|Number=Sing|Person=2": {POS: PRON, "Case": "Gen", "Number": "Sing", "Person": "two"}, + "PRON__Case=Ins": {POS: PRON, "Case": "Ins"}, + "PRON__Case=Ins|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Ins|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Ins|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Ins|Number=Plur|Person=1": {POS: PRON, "Case": "Ins", "Number": "Plur", "Person": "one"}, + "PRON__Case=Ins|Number=Plur|Person=2": {POS: PRON, "Case": "Ins", "Number": "Plur", "Person": "two"}, + "PRON__Case=Ins|Number=Plur|Person=3": {POS: PRON, "Case": "Ins", "Number": "Plur", "Person": "three"}, + "PRON__Case=Ins|Number=Sing|Person=1": {POS: PRON, "Case": "Ins", "Number": "Sing", "Person": "one"}, + "PRON__Case=Ins|Number=Sing|Person=2": {POS: PRON, "Case": "Ins", "Number": "Sing", "Person": "two"}, + "PRON__Case=Loc": {POS: PRON, "Case": "Loc"}, + "PRON__Case=Loc|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Loc|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Loc|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Loc|Number=Plur|Person=1": {POS: PRON, "Case": "Loc", "Number": "Plur", "Person": "one"}, + "PRON__Case=Loc|Number=Plur|Person=2": {POS: PRON, "Case": "Loc", "Number": "Plur", "Person": "two"}, + "PRON__Case=Loc|Number=Plur|Person=3": {POS: PRON, "Case": "Loc", "Number": "Plur", "Person": "three"}, + "PRON__Case=Loc|Number=Sing|Person=1": {POS: PRON, "Case": "Loc", "Number": "Sing", "Person": "one"}, + "PRON__Case=Loc|Number=Sing|Person=2": {POS: PRON, "Case": "Loc", "Number": "Sing", "Person": "two"}, + "PRON__Case=Nom": {POS: PRON, "Case": "Nom"}, + "PRON__Case=Nom|Gender=Fem|Number=Sing|Person=3": {POS: PRON, "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Person": "three"}, + "PRON__Case=Nom|Gender=Masc|Number=Sing|Person=3": {POS: PRON, "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Person": "three"}, + "PRON__Case=Nom|Gender=Neut|Number=Sing|Person=3": {POS: PRON, "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Person": "three"}, + "PRON__Case=Nom|Number=Plur|Person=1": {POS: PRON, "Case": "Nom", "Number": "Plur", "Person": "one"}, + "PRON__Case=Nom|Number=Plur|Person=2": {POS: PRON, "Case": "Nom", "Number": "Plur", "Person": "two"}, + "PRON__Case=Nom|Number=Plur|Person=3": {POS: PRON, "Case": "Nom", "Number": "Plur", "Person": "three"}, + "PRON__Case=Nom|Number=Sing|Person=1": {POS: PRON, "Case": "Nom", "Number": "Sing", "Person": "one"}, + "PRON__Case=Nom|Number=Sing|Person=2": {POS: PRON, "Case": "Nom", "Number": "Sing", "Person": "two"}, + "PRON__Number=Sing|Person=1": {POS: PRON, "Number": "Sing", "Person": "one"}, + "PRON___": {POS: PRON}, + "PRON": {POS: PRON}, + "PROPN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Acc", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Acc|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Acc|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Acc|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Acc", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Dat", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Dat|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Dat", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Dat", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Dat|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Dat|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Dat", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Gen|Foreign=Yes|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Gen", "Foreign": "Yes", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Gen", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Gen|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Gen", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Gen|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Ins|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Ins", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Ins|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Ins|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Loc|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Loc", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Loc", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Loc|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Loc", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Nom|Foreign=Yes|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Foreign": "Yes", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Nom|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Nom|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Case=Nom|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Anim", "Case": "Nom", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Anim|Case=Voc|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Case": "Voc", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Anim|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Anim", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Acc|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Acc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Acc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Dat|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Dat|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Dat", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Gen|Foreign=Yes|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Foreign": "Yes", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Gen|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Gen|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Gen", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Ins|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Ins|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Ins", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Loc|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Loc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Loc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Foreign": "Yes", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Foreign": "Yes", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Foreign=Yes|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Foreign": "Yes", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Fem", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Fem|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Neut", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Nom|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Animacy=Inan|Case=Nom|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Case": "Nom", "Number": "Plur"}, + "PROPN__Animacy=Inan|Case=Par|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Case": "Par", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Gender=Fem": {POS: PROPN, "Animacy": "Inan", "Gender": "Fem"}, + "PROPN__Animacy=Inan|Gender=Masc": {POS: PROPN, "Animacy": "Inan", "Gender": "Masc"}, + "PROPN__Animacy=Inan|Gender=Masc|Number=Plur": {POS: PROPN, "Animacy": "Inan", "Gender": "Masc", "Number": "Plur"}, + "PROPN__Animacy=Inan|Gender=Masc|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Animacy=Inan|Gender=Neut|Number=Sing": {POS: PROPN, "Animacy": "Inan", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Case=Acc|Degree=Pos|Gender=Fem|Number=Sing": {POS: PROPN, "Case": "Acc", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Case=Dat|Degree=Pos|Gender=Masc|Number=Sing": {POS: PROPN, "Case": "Dat", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Case=Ins|Degree=Pos|Gender=Fem|Number=Sing": {POS: PROPN, "Case": "Ins", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Case=Ins|Degree=Pos|Number=Plur": {POS: PROPN, "Case": "Ins", "Degree": "Pos", "Number": "Plur"}, + "PROPN__Case=Nom|Degree=Pos|Gender=Fem|Number=Sing": {POS: PROPN, "Case": "Nom", "Degree": "Pos", "Gender": "Fem", "Number": "Sing"}, + "PROPN__Case=Nom|Degree=Pos|Gender=Masc|Number=Sing": {POS: PROPN, "Case": "Nom", "Degree": "Pos", "Gender": "Masc", "Number": "Sing"}, + "PROPN__Case=Nom|Degree=Pos|Gender=Neut|Number=Sing": {POS: PROPN, "Case": "Nom", "Degree": "Pos", "Gender": "Neut", "Number": "Sing"}, + "PROPN__Case=Nom|Degree=Pos|Number=Plur": {POS: PROPN, "Case": "Nom", "Degree": "Pos", "Number": "Plur"}, + "PROPN__Degree=Pos|Gender=Neut|Number=Sing|Variant=Short": {POS: PROPN, "Degree": "Pos", "Gender": "Neut", "Number": "Sing", }, + "PROPN__Degree=Pos|Number=Plur|Variant=Short": {POS: PROPN, "Degree": "Pos", "Number": "Plur", }, + "PROPN__Foreign=Yes": {POS: PROPN, "Foreign": "Yes"}, + "PROPN__Number=Sing": {POS: PROPN, "Number": "Sing"}, + "PROPN___": {POS: PROPN}, + "PROPN": {POS: PROPN}, + "PUNCT___": {POS: PUNCT}, + "PUNCT": {POS: PUNCT}, + "SCONJ__Mood=Cnd": {POS: SCONJ, "Mood": "Cnd"}, + "SCONJ___": {POS: SCONJ}, + "SCONJ": {POS: SCONJ}, + "SYM___": {POS: SYM}, + "SYM": {POS: SYM}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Anim", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Anim|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Anim", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Imp|Case=Acc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Imp", "Case": "Acc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Animacy=Inan|Aspect=Perf|Case=Acc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Animacy": "Inan", "Aspect": "Perf", "Case": "Acc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Acc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Dat|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Dat", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Gen|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Gen", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Ins|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Ins", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Loc|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Loc", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Fem|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Masc|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Gender=Neut|Number=Sing|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Imp|Case=Nom|Number=Plur|Tense=Pres|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Case": "Nom", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Fem|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Fem|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Fem", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Masc|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Masc|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Masc", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Neut|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Gender=Neut|Number=Sing|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Gender": "Neut", "Number": "Sing", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Imp", "Number": "Plur", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Imp", "Number": "Plur", "Person": "two", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Imp", "Number": "Sing", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Imp", "Number": "Sing", "Person": "two", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=1|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=2|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=1|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "one", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=2|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "two", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Imp|Mood=Ind|Number=Sing|Person=3|Tense=Pres|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Pres", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Imp|Number=Plur|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Number=Plur|Tense=Pres|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Number": "Plur", "Tense": "Pres", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Imp|Tense=Past|VerbForm=Conv|Voice=Act": {POS: VERB, "Aspect": "Imp", "Tense": "Past", "VerbForm": "Conv", "Voice": "Act"}, + "VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Act": {POS: VERB, "Aspect": "Imp", "Tense": "Pres", "VerbForm": "Conv", "Voice": "Act"}, + "VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Mid": {POS: VERB, "Aspect": "Imp", "Tense": "Pres", "VerbForm": "Conv", "Voice": "Mid"}, + "VERB__Aspect=Imp|Tense=Pres|VerbForm=Conv|Voice=Pass": {POS: VERB, "Aspect": "Imp", "Tense": "Pres", "VerbForm": "Conv", "Voice": "Pass"}, + "VERB__Aspect=Imp|VerbForm=Inf|Voice=Act": {POS: VERB, "Aspect": "Imp", "VerbForm": "Inf", "Voice": "Act"}, + "VERB__Aspect=Imp|VerbForm=Inf|Voice=Mid": {POS: VERB, "Aspect": "Imp", "VerbForm": "Inf", "Voice": "Mid"}, + "VERB__Aspect=Imp|VerbForm=Inf|Voice=Pass": {POS: VERB, "Aspect": "Imp", "VerbForm": "Inf", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Acc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Acc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Dat|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Dat|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Dat", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Gen|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Fut|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Number": "Plur", "Tense": "Fut", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Gen|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Gen", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Ins|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Ins|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Ins", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Loc|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Loc|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Loc", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Fem|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Masc|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Nom|Gender=Neut|Number=Sing|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Act": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Act"}, + "VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Mid"}, + "VERB__Aspect=Perf|Case=Nom|Number=Plur|Tense=Past|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Case": "Nom", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Gender=Fem|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Gender": "Fem", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Gender=Fem|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Gender": "Fem", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Gender=Masc|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Gender": "Masc", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Gender=Masc|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Gender": "Masc", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Gender=Neut|Mood=Ind|Number=Sing|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Gender": "Neut", "Mood": "Ind", "Number": "Sing", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Gender=Neut|Number=Sing|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Gender": "Neut", "Number": "Sing", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=1|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Imp", "Number": "Plur", "Person": "one", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Imp", "Number": "Plur", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Imp|Number=Plur|Person=2|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Imp", "Number": "Plur", "Person": "two", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Imp", "Number": "Sing", "Person": "two", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Imp|Number=Sing|Person=2|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Imp", "Number": "Sing", "Person": "two", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=1|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "one", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=1|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "one", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=2|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "two", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=2|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "two", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Person=3|Tense=Fut|VerbForm=Fin|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Person": "three", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Pass"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Plur|Tense=Past|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Plur", "Tense": "Past", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=1|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "one", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=1|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "one", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=2|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "two", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=2|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "two", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin|Voice=Act": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Act"}, + "VERB__Aspect=Perf|Mood=Ind|Number=Sing|Person=3|Tense=Fut|VerbForm=Fin|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Mood": "Ind", "Number": "Sing", "Person": "three", "Tense": "Fut", "VerbForm": "Fin", "Voice": "Mid"}, + "VERB__Aspect=Perf|Number=Plur|Tense=Past|Variant=Short|VerbForm=Part|Voice=Pass": {POS: VERB, "Aspect": "Perf", "Number": "Plur", "Tense": "Past", "VerbForm": "Part", "Voice": "Pass"}, + "VERB__Aspect=Perf|Tense=Past|VerbForm=Conv|Voice=Act": {POS: VERB, "Aspect": "Perf", "Tense": "Past", "VerbForm": "Conv", "Voice": "Act"}, + "VERB__Aspect=Perf|Tense=Past|VerbForm=Conv|Voice=Mid": {POS: VERB, "Aspect": "Perf", "Tense": "Past", "VerbForm": "Conv", "Voice": "Mid"}, + "VERB__Aspect=Perf|VerbForm=Inf|Voice=Act": {POS: VERB, "Aspect": "Perf", "VerbForm": "Inf", "Voice": "Act"}, + "VERB__Aspect=Perf|VerbForm=Inf|Voice=Mid": {POS: VERB, "Aspect": "Perf", "VerbForm": "Inf", "Voice": "Mid"}, + "VERB__Voice=Act": {POS: VERB, "Voice": "Act"}, + "VERB___": {POS: VERB}, + "VERB": {POS: VERB}, + "X__Foreign=Yes": {POS: X, "Foreign": "Yes"}, + "X___": {POS: X}, + "X": {POS: X}, } # fmt: on From 038ff1a811e11a6c0425557455ccc5adadadcaf7 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Wed, 22 Jul 2020 16:04:58 +0200 Subject: [PATCH 02/44] Improve warnings around normalization tables (#5794) Provide more customized normalization table warnings when training a new model. Only suggest installing `spacy-lookups-data` if it's not already installed and it includes a table for this language (currently checked in a hard-coded list). --- spacy/errors.py | 13 ++++++------- spacy/pipeline/pipes.pyx | 6 ++++++ spacy/syntax/nn_parser.pyx | 6 ++++++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/spacy/errors.py b/spacy/errors.py index ff71b60eb..79ed5ecdb 100644 --- a/spacy/errors.py +++ b/spacy/errors.py @@ -127,13 +127,12 @@ class Warnings(object): "this, download a newer compatible model or retrain your custom " "model with the current spaCy version. For more details and " "available updates, run: python -m spacy validate") - W033 = ("Training a new {model} using a model with no lexeme normalization " - "table. This may degrade the performance of the model to some " - "degree. If this is intentional or the language you're using " - "doesn't have a normalization table, please ignore this warning. " - "If this is surprising, make sure you have the spacy-lookups-data " - "package installed. The languages with lexeme normalization tables " - "are currently: da, de, el, en, id, lb, pt, ru, sr, ta, th.") + W033 = ("Training a new {model} using a model with an empty lexeme " + "normalization table. This may degrade the performance to some " + "degree. If this is intentional or this language doesn't have a " + "normalization table, please ignore this warning.") + W034 = ("Please install the package spacy-lookups-data in order to include " + "the default lexeme normalization table for the language '{lang}'.") @add_codes diff --git a/spacy/pipeline/pipes.pyx b/spacy/pipeline/pipes.pyx index b28f34a7a..ea40e3ae0 100644 --- a/spacy/pipeline/pipes.pyx +++ b/spacy/pipeline/pipes.pyx @@ -519,6 +519,12 @@ class Tagger(Pipe): warnings.warn(Warnings.W022) if len(self.vocab.lookups.get_table("lexeme_norm", {})) == 0: warnings.warn(Warnings.W033.format(model="part-of-speech tagger")) + try: + import spacy_lookups_data + except ImportError: + if self.vocab.lang in ("da", "de", "el", "en", "id", "lb", "pt", + "ru", "sr", "ta", "th"): + warnings.warn(Warnings.W034.format(lang=self.vocab.lang)) orig_tag_map = dict(self.vocab.morphology.tag_map) new_tag_map = OrderedDict() for raw_text, annots_brackets in get_gold_tuples(): diff --git a/spacy/syntax/nn_parser.pyx b/spacy/syntax/nn_parser.pyx index 6944e9113..145c382a5 100644 --- a/spacy/syntax/nn_parser.pyx +++ b/spacy/syntax/nn_parser.pyx @@ -604,6 +604,12 @@ cdef class Parser: def begin_training(self, get_gold_tuples, pipeline=None, sgd=None, **cfg): if len(self.vocab.lookups.get_table("lexeme_norm", {})) == 0: warnings.warn(Warnings.W033.format(model="parser or NER")) + try: + import spacy_lookups_data + except ImportError: + if self.vocab.lang in ("da", "de", "el", "en", "id", "lb", "pt", + "ru", "sr", "ta", "th"): + warnings.warn(Warnings.W034.format(lang=self.vocab.lang)) if 'model' in cfg: self.model = cfg['model'] if not hasattr(get_gold_tuples, '__call__'): From 6d4d5c074c4add57e7643c531109d8c34f7c8b5f Mon Sep 17 00:00:00 2001 From: Joshua Olson Date: Wed, 22 Jul 2020 23:57:01 -0700 Subject: [PATCH 03/44] Mark Japanese documents as tagged. (#5803) Mark the document as tagged before returning it to the user from the JapaneseTokenizer. Fixes #5802 --- .github/contributors/solarmist.md | 106 ++++++++++++++++++++++++++++++ spacy/lang/ja/__init__.py | 1 + 2 files changed, 107 insertions(+) create mode 100644 .github/contributors/solarmist.md diff --git a/.github/contributors/solarmist.md b/.github/contributors/solarmist.md new file mode 100644 index 000000000..6bfb21696 --- /dev/null +++ b/.github/contributors/solarmist.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | ------------------------- | +| Name | Joshua Olson | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 2020-07-22 | +| GitHub username | solarmist | +| Website (optional) | http://blog.solarmist.net | diff --git a/spacy/lang/ja/__init__.py b/spacy/lang/ja/__init__.py index fb8b9d7fe..30e73fd84 100644 --- a/spacy/lang/ja/__init__.py +++ b/spacy/lang/ja/__init__.py @@ -166,6 +166,7 @@ class JapaneseTokenizer(DummyTokenizer): doc.user_data["inflections"] = inflections doc.user_data["reading_forms"] = readings doc.user_data["sub_tokens"] = sub_tokens_list + doc.is_tagged = True return doc From 19dc42776af33ee209c256c739303f27aa458144 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Fri, 24 Jul 2020 09:26:26 +0200 Subject: [PATCH 04/44] Remove hard-coded GPU ID from pretrain (#5808) --- spacy/cli/pretrain.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spacy/cli/pretrain.py b/spacy/cli/pretrain.py index 6d6c65161..e949f76cf 100644 --- a/spacy/cli/pretrain.py +++ b/spacy/cli/pretrain.py @@ -125,7 +125,7 @@ def pretrain( config[key] = str(config[key]) util.fix_random_seed(seed) - has_gpu = prefer_gpu(gpu_id=1) + has_gpu = prefer_gpu() msg.info("Using GPU" if has_gpu else "Not using GPU") output_dir = Path(output_dir) From a69eb445dcb54080af3fe8ec853adfa74364a11d Mon Sep 17 00:00:00 2001 From: Li Zhe Date: Sat, 25 Jul 2020 19:13:38 +0800 Subject: [PATCH 05/44] fix the wrong hash url in adding-languages.md file (#5810) * fix the wrong hash url in adding-languages.md file change the #101 url hash path to #language-data * filled in the spaCy Contributor Agreement filled in the spaCy Contributor Agreement --- .github/contributors/lizhe2004.md | 106 +++++++++++++++++++++++++ website/docs/usage/adding-languages.md | 2 +- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 .github/contributors/lizhe2004.md diff --git a/.github/contributors/lizhe2004.md b/.github/contributors/lizhe2004.md new file mode 100644 index 000000000..6011506d6 --- /dev/null +++ b/.github/contributors/lizhe2004.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI UG (haftungsbeschränkt)](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | ------------------------ | +| Name | Zhe li | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 2020-07-24 | +| GitHub username | lizhe2004 | +| Website (optional) | http://www.huahuaxia.net| diff --git a/website/docs/usage/adding-languages.md b/website/docs/usage/adding-languages.md index 29a9a1c27..96ffafe06 100644 --- a/website/docs/usage/adding-languages.md +++ b/website/docs/usage/adding-languages.md @@ -41,7 +41,7 @@ and morphological analysis. -- [Language data 101](#101) +- [Language data 101](#language-data) - [The Language subclass](#language-subclass) - [Stop words](#stop-words) - [Tokenizer exceptions](#tokenizer-exceptions) From a66ad89fcb51deed07d89b2ffafc800bb98d56d7 Mon Sep 17 00:00:00 2001 From: Nipun Sadvilkar Date: Mon, 27 Jul 2020 13:13:39 +0530 Subject: [PATCH 06/44] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20=20typo=20in=20pysbd?= =?UTF-8?q?=20code=20example=20(#5821)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- website/meta/universe.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/meta/universe.json b/website/meta/universe.json index e832b511f..d6e55a2ef 100644 --- a/website/meta/universe.json +++ b/website/meta/universe.json @@ -2137,7 +2137,7 @@ "category": ["scientific"], "tags": ["sentence segmentation"], "code_example": [ - "from pysbd.util import PySBDFactory", + "from pysbd.utils import PySBDFactory", "", "nlp = spacy.blank('en')", "nlp.add_pipe(PySBDFactory(nlp))", From 2f6b8132ef81c8cb6863f378c8fdead2258fae03 Mon Sep 17 00:00:00 2001 From: Martino Mensio Date: Mon, 27 Jul 2020 09:44:33 +0200 Subject: [PATCH 07/44] Sentence transformers added to spaCy universe (#5814) * fix details for spacy-universal-sentence-encoder * added sentence-transformers --- website/meta/universe.json | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/website/meta/universe.json b/website/meta/universe.json index d6e55a2ef..8790cd6af 100644 --- a/website/meta/universe.json +++ b/website/meta/universe.json @@ -1,5 +1,30 @@ { "resources": [ + { + "id": "spacy-sentence-bert", + "title": "SpaCy - sentence-transformers", + "slogan": "Pipelines for pretrained sentence-transformers (BERT, RoBERTa, XLM-RoBERTa & Co.) directly within SpaCy", + "description": "This library lets you use the embeddings from [sentence-transformers](https://github.com/UKPLab/sentence-transformers) of Docs, Spans and Tokens directly from spaCy. Most models are for the english language but three of them are multilingual.", + "github": "MartinoMensio/spacy-sentence-bert", + "pip": "spacy-sentence-bert", + "code_example": [ + "import spacy_sentence_bert", + "# load one of the models listed at https://github.com/MartinoMensio/spacy-sentence-bert/", + "nlp = spacy_sentence_bert.load_model('en_roberta_large_nli_stsb_mean_tokens')", + "# get two documents", + "doc_1 = nlp('Hi there, how are you?')", + "doc_2 = nlp('Hello there, how are you doing today?')", + "# use the similarity method that is based on the vectors, on Doc, Span or Token", + "print(doc_1.similarity(doc_2[0:7]))" + ], + "category": ["models", "pipeline"], + "author": "Martino Mensio", + "author_links": { + "twitter": "MartinoMensio", + "github": "MartinoMensio", + "website": "https://martinomensio.github.io" + } + }, { "id": "spacy-streamlit", "title": "spacy-streamlit", @@ -58,10 +83,11 @@ "title": "SpaCy - Universal Sentence Encoder", "slogan": "Make use of Google's Universal Sentence Encoder directly within SpaCy", "description": "This library lets you use Universal Sentence Encoder embeddings of Docs, Spans and Tokens directly from TensorFlow Hub", - "github": "MartinoMensio/spacy-universal-sentence-encoder-tfhub", + "github": "MartinoMensio/spacy-universal-sentence-encoder", + "pip": "spacy-universal-sentence-encoder", "code_example": [ "import spacy_universal_sentence_encoder", - "load one of the models: ['en_use_md', 'en_use_lg', 'xx_use_md', 'xx_use_lg']", + "# load one of the models: ['en_use_md', 'en_use_lg', 'xx_use_md', 'xx_use_lg']", "nlp = spacy_universal_sentence_encoder.load_model('en_use_lg')", "# get two documents", "doc_1 = nlp('Hi there, how are you?')", From 2880d8a5559f60b7461bf290154c8753815b70fa Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Mon, 27 Jul 2020 10:09:33 +0200 Subject: [PATCH 08/44] Normalize spelling for spaCy (#5822) --- website/meta/universe.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/meta/universe.json b/website/meta/universe.json index 8790cd6af..a9a402a66 100644 --- a/website/meta/universe.json +++ b/website/meta/universe.json @@ -2,8 +2,8 @@ "resources": [ { "id": "spacy-sentence-bert", - "title": "SpaCy - sentence-transformers", - "slogan": "Pipelines for pretrained sentence-transformers (BERT, RoBERTa, XLM-RoBERTa & Co.) directly within SpaCy", + "title": "spaCy - sentence-transformers", + "slogan": "Pipelines for pretrained sentence-transformers (BERT, RoBERTa, XLM-RoBERTa & Co.) directly within spaCy", "description": "This library lets you use the embeddings from [sentence-transformers](https://github.com/UKPLab/sentence-transformers) of Docs, Spans and Tokens directly from spaCy. Most models are for the english language but three of them are multilingual.", "github": "MartinoMensio/spacy-sentence-bert", "pip": "spacy-sentence-bert", @@ -80,8 +80,8 @@ }, { "id": "spacy-universal-sentence-encoder", - "title": "SpaCy - Universal Sentence Encoder", - "slogan": "Make use of Google's Universal Sentence Encoder directly within SpaCy", + "title": "spaCy - Universal Sentence Encoder", + "slogan": "Make use of Google's Universal Sentence Encoder directly within spaCy", "description": "This library lets you use Universal Sentence Encoder embeddings of Docs, Spans and Tokens directly from TensorFlow Hub", "github": "MartinoMensio/spacy-universal-sentence-encoder", "pip": "spacy-universal-sentence-encoder", @@ -1461,7 +1461,7 @@ "id": "podcast-init", "title": "Podcast.__init__ #87: spaCy with Matthew Honnibal", "slogan": "December 2017", - "description": "As the amount of text available on the internet and in businesses continues to increase, the need for fast and accurate language analysis becomes more prominent. This week Matthew Honnibal, the creator of SpaCy, talks about his experiences researching natural language processing and creating a library to make his findings accessible to industry.", + "description": "As the amount of text available on the internet and in businesses continues to increase, the need for fast and accurate language analysis becomes more prominent. This week Matthew Honnibal, the creator of spaCy, talks about his experiences researching natural language processing and creating a library to make his findings accessible to industry.", "iframe": "https://www.pythonpodcast.com/wp-content/plugins/podlove-podcasting-plugin-for-wordpress/lib/modules/podlove_web_player/player_v4/dist/share.html?episode=https://www.pythonpodcast.com/?podlove_player4=176", "iframe_height": 200, "thumb": "https://i.imgur.com/rpo6BuY.png", @@ -1477,7 +1477,7 @@ "id": "podcast-init2", "title": "Podcast.__init__ #256: An Open Source Toolchain For NLP From Explosion AI", "slogan": "March 2020", - "description": "The state of the art in natural language processing is a constantly moving target. With the rise of deep learning, previously cutting edge techniques have given way to robust language models. Through it all the team at Explosion AI have built a strong presence with the trifecta of SpaCy, Thinc, and Prodigy to support fast and flexible data labeling to feed deep learning models and performant and scalable text processing. In this episode founder and open source author Matthew Honnibal shares his experience growing a business around cutting edge open source libraries for the machine learning developent process.", + "description": "The state of the art in natural language processing is a constantly moving target. With the rise of deep learning, previously cutting edge techniques have given way to robust language models. Through it all the team at Explosion AI have built a strong presence with the trifecta of spaCy, Thinc, and Prodigy to support fast and flexible data labeling to feed deep learning models and performant and scalable text processing. In this episode founder and open source author Matthew Honnibal shares his experience growing a business around cutting edge open source libraries for the machine learning developent process.", "iframe": "https://cdn.podlove.org/web-player/share.html?episode=https%3A%2F%2Fwww.pythonpodcast.com%2F%3Fpodlove_player4%3D614", "iframe_height": 200, "thumb": "https://i.imgur.com/rpo6BuY.png", @@ -1508,7 +1508,7 @@ "id": "twimlai-podcast", "title": "TWiML & AI: Practical NLP with spaCy and Prodigy", "slogan": "May 2019", - "description": "\"Ines and I caught up to discuss her various projects, including the aforementioned SpaCy, an open-source NLP library built with a focus on industry and production use cases. In our conversation, Ines gives us an overview of the SpaCy Library, a look at some of the use cases that excite her, and the Spacy community and contributors. We also discuss her work with Prodigy, an annotation service tool that uses continuous active learning to train models, and finally, what other exciting projects she is working on.\"", + "description": "\"Ines and I caught up to discuss her various projects, including the aforementioned spaCy, an open-source NLP library built with a focus on industry and production use cases. In our conversation, Ines gives us an overview of the spaCy Library, a look at some of the use cases that excite her, and the Spacy community and contributors. We also discuss her work with Prodigy, an annotation service tool that uses continuous active learning to train models, and finally, what other exciting projects she is working on.\"", "thumb": "https://i.imgur.com/ng2F5gK.png", "url": "https://twimlai.com/twiml-talk-262-practical-natural-language-processing-with-spacy-and-prodigy-w-ines-montani", "iframe": "https://html5-player.libsyn.com/embed/episode/id/9691514/height/90/theme/custom/thumbnail/no/preload/no/direction/backward/render-playlist/no/custom-color/3e85b1/", @@ -1540,7 +1540,7 @@ "id": "practical-ai-podcast", "title": "Practical AI: Modern NLP with spaCy", "slogan": "December 2019", - "description": "\"SpaCy is awesome for NLP! It’s easy to use, has widespread adoption, is open source, and integrates the latest language models. Ines Montani and Matthew Honnibal (core developers of spaCy and co-founders of Explosion) join us to discuss the history of the project, its capabilities, and the latest trends in NLP. We also dig into the practicalities of taking NLP workflows to production. You don’t want to miss this episode!\"", + "description": "\"spaCy is awesome for NLP! It’s easy to use, has widespread adoption, is open source, and integrates the latest language models. Ines Montani and Matthew Honnibal (core developers of spaCy and co-founders of Explosion) join us to discuss the history of the project, its capabilities, and the latest trends in NLP. We also dig into the practicalities of taking NLP workflows to production. You don’t want to miss this episode!\"", "thumb": "https://i.imgur.com/jn8Bcdw.png", "url": "https://changelog.com/practicalai/68", "author": "Daniel Whitenack & Chris Benson", From b97dbab998640479e8ba0dfbe8fa1759908195df Mon Sep 17 00:00:00 2001 From: graue70 <23035329+graue70@users.noreply.github.com> Date: Mon, 27 Jul 2020 20:18:48 +0200 Subject: [PATCH 09/44] Fix typo in unit tests (#5823) --- spacy/tests/tokenizer/test_whitespace.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spacy/tests/tokenizer/test_whitespace.py b/spacy/tests/tokenizer/test_whitespace.py index 74c9b369b..e32fa3efc 100644 --- a/spacy/tests/tokenizer/test_whitespace.py +++ b/spacy/tests/tokenizer/test_whitespace.py @@ -18,7 +18,7 @@ def test_tokenizer_splits_double_space(tokenizer, text): @pytest.mark.parametrize("text", ["lorem ipsum "]) -def test_tokenizer_handles_double_trainling_ws(tokenizer, text): +def test_tokenizer_handles_double_trailing_ws(tokenizer, text): tokens = tokenizer(text) assert repr(tokens.text_with_ws) == repr(text) From 03ab518f285544cda22cffa8627255d405255c88 Mon Sep 17 00:00:00 2001 From: oculusrepairo <40419272+oculusrepairo@users.noreply.github.com> Date: Wed, 29 Jul 2020 13:58:56 +0530 Subject: [PATCH 10/44] Update examples.py (#5820) * Update examples.py adding factual sentences to the list * Add missing comma separators Co-authored-by: Adriane Boyd --- spacy/lang/hi/examples.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spacy/lang/hi/examples.py b/spacy/lang/hi/examples.py index 1dd182532..76b0e8bf8 100644 --- a/spacy/lang/hi/examples.py +++ b/spacy/lang/hi/examples.py @@ -19,4 +19,6 @@ sentences = [ "फ्रांस के राष्ट्रपति कौन हैं?", "संयुक्त राज्यों की राजधानी क्या है?", "बराक ओबामा का जन्म कब हुआ था?", + "जवाहरलाल नेहरू भारत के पहले प्रधानमंत्री हैं।", + "राजेंद्र प्रसाद, भारत के पहले राष्ट्रपति, दो कार्यकाल के लिए कार्यालय रखने वाले एकमात्र व्यक्ति हैं।", ] From 90b958fd0100f2528e080d3b803d1d6c60a08ef2 Mon Sep 17 00:00:00 2001 From: Gustavo Zadrozny Leyendecker Date: Wed, 29 Jul 2020 13:48:39 -0300 Subject: [PATCH 11/44] Fix on EntityRendered to support break lines (after last entity) (closes #5838) --- .github/contributors/leyendecker.md | 106 +++++++++++++++++++++++ spacy/displacy/render.py | 6 +- spacy/tests/regression/test_issue5838.py | 22 +++++ 3 files changed, 133 insertions(+), 1 deletion(-) create mode 100644 .github/contributors/leyendecker.md create mode 100644 spacy/tests/regression/test_issue5838.py diff --git a/.github/contributors/leyendecker.md b/.github/contributors/leyendecker.md new file mode 100644 index 000000000..74e6cdd80 --- /dev/null +++ b/.github/contributors/leyendecker.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | ---------------------------- | +| Name | Gustavo Zadrozny Leyendecker | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | July 29, 2020 | +| GitHub username | leyendecker | +| Website (optional) | | diff --git a/spacy/displacy/render.py b/spacy/displacy/render.py index 57d67c96b..431e02841 100644 --- a/spacy/displacy/render.py +++ b/spacy/displacy/render.py @@ -328,7 +328,11 @@ class EntityRenderer(object): else: markup += entity offset = end - markup += escape_html(text[offset:]) + fragments = text[offset:].split("\n") + for i, fragment in enumerate(fragments): + markup += escape_html(fragment) + if len(fragments) > 1 and i != len(fragments) - 1: + markup += "
" markup = TPL_ENTS.format(content=markup, dir=self.direction) if title: markup = TPL_TITLE.format(title=title) + markup diff --git a/spacy/tests/regression/test_issue5838.py b/spacy/tests/regression/test_issue5838.py new file mode 100644 index 000000000..558273101 --- /dev/null +++ b/spacy/tests/regression/test_issue5838.py @@ -0,0 +1,22 @@ +from spacy.lang.en import English +from spacy.tokens import Span +from spacy import displacy + +SAMPLE_TEXT = '''First line +Second line, with ent +Third line +Fourth line +''' + + +def test_issue5838(): + # Displacy's EntityRenderer break line + # not working after last entity + + nlp = English() + doc = nlp(SAMPLE_TEXT) + doc.ents = [Span(doc, 7, 8, label='test')] + + html = displacy.render(doc, style='ent') + found = html.count('
') + assert found == 4 From f76fae0e8ddc655034e235b390572cf79a670dfc Mon Sep 17 00:00:00 2001 From: Rahul Gupta Date: Wed, 29 Jul 2020 23:52:47 +0530 Subject: [PATCH 12/44] English: adds ordinal numbers (#5830) --- spacy/lang/en/lex_attrs.py | 50 +++++++++++++++++++++++++++++++- spacy/tests/lang/en/test_text.py | 13 +++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/spacy/lang/en/lex_attrs.py b/spacy/lang/en/lex_attrs.py index f92d41139..bd60b057b 100644 --- a/spacy/lang/en/lex_attrs.py +++ b/spacy/lang/en/lex_attrs.py @@ -44,6 +44,44 @@ _num_words = [ ] +_ordinal_words = [ + "first", + "second", + "third", + "fourth", + "fifth", + "sixth", + "seventh", + "eighth", + "ninth", + "tenth", + "eleventh", + "twelfth", + "thirteenth", + "fourteenth", + "fifteenth", + "sixteenth", + "seventeenth", + "eighteenth", + "nineteenth", + "twentieth", + "thirtieth", + "fortieth", + "fiftieth", + "sixtieth", + "seventieth", + "eightieth", + "ninetieth", + "hundredth", + "thousandth", + "millionth", + "billionth", + "trillionth", + "quadrillionth", + "gajillionth", + "bazillionth", +] + def like_num(text): if text.startswith(("+", "-", "±", "~")): text = text[1:] @@ -54,8 +92,18 @@ def like_num(text): num, denom = text.split("/") if num.isdigit() and denom.isdigit(): return True - if text.lower() in _num_words: + + text_lower = text.lower() + if text_lower in _num_words: return True + + # CHeck ordinal number + if text_lower in _ordinal_words: + return True + if text_lower.endswith("th"): + if text_lower[:-2].isdigit(): + return True + return False diff --git a/spacy/tests/lang/en/test_text.py b/spacy/tests/lang/en/test_text.py index a7ebde989..0db1a6419 100644 --- a/spacy/tests/lang/en/test_text.py +++ b/spacy/tests/lang/en/test_text.py @@ -61,6 +61,19 @@ def test_lex_attrs_like_number(en_tokenizer, text, match): assert tokens[0].like_num == match +@pytest.mark.parametrize( + "word", + [ + "third", + "Millionth", + "100th", + "Hundredth", + ] +) +def test_en_lex_attrs_like_number_for_ordinal(word): + assert like_num(word) + + @pytest.mark.parametrize("word", ["eleven"]) def test_en_lex_attrs_capitals(word): assert like_num(word) From d16c0f2c3a021fbefe67f02639944d9246eafa42 Mon Sep 17 00:00:00 2001 From: holubvl3 <47881982+holubvl3@users.noreply.github.com> Date: Thu, 30 Jul 2020 17:40:31 +0200 Subject: [PATCH 13/44] Create holubvl3 (#5845) * Create holubvl3 * Rename holubvl3 to holubvl3.md Co-authored-by: Sofie Van Landeghem --- .github/contributors/holubvl3.md | 106 +++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/contributors/holubvl3.md diff --git a/.github/contributors/holubvl3.md b/.github/contributors/holubvl3.md new file mode 100644 index 000000000..f2047b103 --- /dev/null +++ b/.github/contributors/holubvl3.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Vladimir Holubec | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 30.07.2020 | +| GitHub username | holubvl3 | +| Website (optional) | | From ac14ce7c30c2f6da4a71dee7978f5b765af4d966 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Fri, 31 Jul 2020 16:09:32 +0200 Subject: [PATCH 14/44] Prefer earlier spans in EntityRuler (#5843) Similar to #4414, update the sorting in EntityRuler to prefer the first span in overlapping spans. --- spacy/pipeline/entityruler.py | 2 +- spacy/tests/pipeline/test_entity_ruler.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/spacy/pipeline/entityruler.py b/spacy/pipeline/entityruler.py index 1786dda87..2abff62f1 100644 --- a/spacy/pipeline/entityruler.py +++ b/spacy/pipeline/entityruler.py @@ -95,7 +95,7 @@ class EntityRuler(object): matches = set( [(m_id, start, end) for m_id, start, end in matches if start != end] ) - get_sort_key = lambda m: (m[2] - m[1], m[1]) + get_sort_key = lambda m: (m[2] - m[1], -m[1]) matches = sorted(matches, key=get_sort_key, reverse=True) entities = list(doc.ents) new_entities = [] diff --git a/spacy/tests/pipeline/test_entity_ruler.py b/spacy/tests/pipeline/test_entity_ruler.py index b6e3c40c9..9e22c9cc7 100644 --- a/spacy/tests/pipeline/test_entity_ruler.py +++ b/spacy/tests/pipeline/test_entity_ruler.py @@ -154,3 +154,15 @@ def test_entity_ruler_properties(nlp, patterns): ruler = EntityRuler(nlp, patterns=patterns, overwrite_ents=True) assert sorted(ruler.labels) == sorted(["HELLO", "BYE", "COMPLEX", "TECH_ORG"]) assert sorted(ruler.ent_ids) == ["a1", "a2"] + + +def test_entity_ruler_overlapping_spans(nlp): + ruler = EntityRuler(nlp) + patterns = [ + {"label": "FOOBAR", "pattern": "foo bar"}, + {"label": "BARBAZ", "pattern": "bar baz"}, + ] + ruler.add_patterns(patterns) + doc = ruler(nlp.make_doc("foo bar baz")) + assert len(doc.ents) == 1 + assert doc.ents[0].label_ == "FOOBAR" From cd59979ab446d7613ec7df5d5737539464918edf Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Mon, 3 Aug 2020 13:53:15 +0200 Subject: [PATCH 15/44] Fix span boundary handling in Spanish noun_chunks (#5860) --- spacy/lang/es/syntax_iterators.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spacy/lang/es/syntax_iterators.py b/spacy/lang/es/syntax_iterators.py index 5fda35211..d4572b682 100644 --- a/spacy/lang/es/syntax_iterators.py +++ b/spacy/lang/es/syntax_iterators.py @@ -20,8 +20,7 @@ def noun_chunks(doclike): np_left_deps = [doc.vocab.strings.add(label) for label in left_labels] np_right_deps = [doc.vocab.strings.add(label) for label in right_labels] stop_deps = [doc.vocab.strings.add(label) for label in stop_labels] - token = doc[0] - while token and token.i < len(doclike): + for token in doclike: if token.pos in [PROPN, NOUN, PRON]: left, right = noun_bounds( doc, token, np_left_deps, np_right_deps, stop_deps From b8412485897c4d2e1171014b4c863fc43ecf00db Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Tue, 4 Aug 2020 13:35:25 +0200 Subject: [PATCH 16/44] Add Span index boundary checks (#5861) * Add Span index boundary checks * Return Span-specific IndexError in all cases * Simplify and fix if/else --- spacy/errors.py | 1 + spacy/tests/doc/test_span.py | 12 ++++++++++++ spacy/tokens/span.pyx | 8 ++++++-- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/spacy/errors.py b/spacy/errors.py index 79ed5ecdb..fe59453c0 100644 --- a/spacy/errors.py +++ b/spacy/errors.py @@ -588,6 +588,7 @@ class Errors(object): E199 = ("Unable to merge 0-length span at doc[{start}:{end}].") E200 = ("Specifying a base model with a pretrained component '{component}' " "can not be combined with adding a pretrained Tok2Vec layer.") + E201 = ("Span index out of range.") @add_codes diff --git a/spacy/tests/doc/test_span.py b/spacy/tests/doc/test_span.py index e76ca4697..25fa421b7 100644 --- a/spacy/tests/doc/test_span.py +++ b/spacy/tests/doc/test_span.py @@ -287,3 +287,15 @@ def test_span_eq_hash(doc, doc_not_parsed): assert hash(doc[0:2]) == hash(doc[0:2]) assert hash(doc[0:2]) != hash(doc[1:3]) assert hash(doc[0:2]) != hash(doc_not_parsed[0:2]) + + +def test_span_boundaries(doc): + start = 1 + end = 5 + span = doc[start:end] + for i in range(start, end): + assert span[i - start] == doc[i] + with pytest.raises(IndexError): + _ = span[-5] + with pytest.raises(IndexError): + _ = span[5] diff --git a/spacy/tokens/span.pyx b/spacy/tokens/span.pyx index 2f1418a5b..29b87fa8d 100644 --- a/spacy/tokens/span.pyx +++ b/spacy/tokens/span.pyx @@ -181,9 +181,13 @@ cdef class Span: return Span(self.doc, start + self.start, end + self.start) else: if i < 0: - return self.doc[self.end + i] + token_i = self.end + i else: - return self.doc[self.start + i] + token_i = self.start + i + if self.start <= token_i < self.end: + return self.doc[token_i] + else: + raise IndexError(Errors.E201) def __iter__(self): """Iterate over `Token` objects. From c62fd878a38fa0ce16243022b5dab5d043aaf31f Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Tue, 4 Aug 2020 13:36:32 +0200 Subject: [PATCH 17/44] Allow Doc.char_span to snap to token boundaries (#5849) * Allow Doc.char_span to snap to token boundaries Add a `mode` option to allow `Doc.char_span` to snap to token boundaries. The `mode` options: * `strict`: character offsets must match token boundaries (default, same as before) * `inside`: all tokens completely within the character span * `outside`: all tokens at least partially covered by the character span Add a new helper function `token_by_char` that returns the token corresponding to a character position in the text. Update `token_by_start` and `token_by_end` to use `token_by_char` for more efficient searching. * Remove unused import * Rename mode to alignment_mode Rename `mode` to `alignment_mode` with the options `strict`/`contract`/`expand`. Any unrecognized modes are silently converted to `strict`. --- spacy/tests/doc/test_span.py | 19 ++++++++++ spacy/tokens/doc.pyx | 71 +++++++++++++++++++++++++++--------- website/docs/api/doc.md | 62 ++++++++++++++++--------------- 3 files changed, 105 insertions(+), 47 deletions(-) diff --git a/spacy/tests/doc/test_span.py b/spacy/tests/doc/test_span.py index 25fa421b7..107078df9 100644 --- a/spacy/tests/doc/test_span.py +++ b/spacy/tests/doc/test_span.py @@ -167,11 +167,30 @@ def test_spans_are_hashable(en_tokenizer): def test_spans_by_character(doc): span1 = doc[1:-2] + + # default and specified alignment mode "strict" span2 = doc.char_span(span1.start_char, span1.end_char, label="GPE") assert span1.start_char == span2.start_char assert span1.end_char == span2.end_char assert span2.label_ == "GPE" + span2 = doc.char_span(span1.start_char, span1.end_char, label="GPE", alignment_mode="strict") + assert span1.start_char == span2.start_char + assert span1.end_char == span2.end_char + assert span2.label_ == "GPE" + + # alignment mode "contract" + span2 = doc.char_span(span1.start_char - 3, span1.end_char, label="GPE", alignment_mode="contract") + assert span1.start_char == span2.start_char + assert span1.end_char == span2.end_char + assert span2.label_ == "GPE" + + # alignment mode "expand" + span2 = doc.char_span(span1.start_char + 1, span1.end_char, label="GPE", alignment_mode="expand") + assert span1.start_char == span2.start_char + assert span1.end_char == span2.end_char + assert span2.label_ == "GPE" + def test_span_to_array(doc): span = doc[1:-2] diff --git a/spacy/tokens/doc.pyx b/spacy/tokens/doc.pyx index 5b03dc5d2..89573ba09 100644 --- a/spacy/tokens/doc.pyx +++ b/spacy/tokens/doc.pyx @@ -352,17 +352,25 @@ cdef class Doc: def doc(self): return self - def char_span(self, int start_idx, int end_idx, label=0, kb_id=0, vector=None): - """Create a `Span` object from the slice `doc.text[start : end]`. + def char_span(self, int start_idx, int end_idx, label=0, kb_id=0, vector=None, alignment_mode="strict"): + """Create a `Span` object from the slice + `doc.text[start_idx : end_idx]`. Returns None if no valid `Span` can be + created. doc (Doc): The parent document. - start (int): The index of the first character of the span. - end (int): The index of the first character after the span. + start_idx (int): The index of the first character of the span. + end_idx (int): The index of the first character after the span. label (uint64 or string): A label to attach to the Span, e.g. for named entities. - kb_id (uint64 or string): An ID from a KB to capture the meaning of a named entity. + kb_id (uint64 or string): An ID from a KB to capture the meaning of a + named entity. vector (ndarray[ndim=1, dtype='float32']): A meaning representation of the span. + alignment_mode (str): How character indices are aligned to token + boundaries. Options: "strict" (character indices must be aligned + with token boundaries), "contract" (span of all tokens completely + within the character span), "expand" (span of all tokens at least + partially covered by the character span). Defaults to "strict". RETURNS (Span): The newly constructed object. DOCS: https://spacy.io/api/doc#char_span @@ -371,12 +379,29 @@ cdef class Doc: label = self.vocab.strings.add(label) if not isinstance(kb_id, int): kb_id = self.vocab.strings.add(kb_id) - cdef int start = token_by_start(self.c, self.length, start_idx) - if start == -1: + if alignment_mode not in ("strict", "contract", "expand"): + alignment_mode = "strict" + cdef int start = token_by_char(self.c, self.length, start_idx) + if start < 0 or (alignment_mode == "strict" and start_idx != self[start].idx): return None - cdef int end = token_by_end(self.c, self.length, end_idx) - if end == -1: + # end_idx is exclusive, so find the token at one char before + cdef int end = token_by_char(self.c, self.length, end_idx - 1) + if end < 0 or (alignment_mode == "strict" and end_idx != self[end].idx + len(self[end])): return None + # Adjust start and end by alignment_mode + if alignment_mode == "contract": + if self[start].idx < start_idx: + start += 1 + if end_idx < self[end].idx + len(self[end]): + end -= 1 + # if no tokens are completely within the span, return None + if end < start: + return None + elif alignment_mode == "expand": + # Don't consider the trailing whitespace to be part of the previous + # token + if start_idx == self[start].idx + len(self[start]): + start += 1 # Currently we have the token index, we want the range-end index end += 1 cdef Span span = Span(self, start, end, label=label, kb_id=kb_id, vector=vector) @@ -1167,23 +1192,35 @@ cdef class Doc: cdef int token_by_start(const TokenC* tokens, int length, int start_char) except -2: - cdef int i - for i in range(length): - if tokens[i].idx == start_char: - return i + cdef int i = token_by_char(tokens, length, start_char) + if i >= 0 and tokens[i].idx == start_char: + return i else: return -1 cdef int token_by_end(const TokenC* tokens, int length, int end_char) except -2: - cdef int i - for i in range(length): - if tokens[i].idx + tokens[i].lex.length == end_char: - return i + # end_char is exclusive, so find the token at one char before + cdef int i = token_by_char(tokens, length, end_char - 1) + if i >= 0 and tokens[i].idx + tokens[i].lex.length == end_char: + return i else: return -1 +cdef int token_by_char(const TokenC* tokens, int length, int char_idx) except -2: + cdef int start = 0, mid, end = length - 1 + while start <= end: + mid = (start + end) / 2 + if char_idx < tokens[mid].idx: + end = mid - 1 + elif char_idx >= tokens[mid].idx + tokens[mid].lex.length + tokens[mid].spacy: + start = mid + 1 + else: + return mid + return -1 + + cdef int set_children_from_heads(TokenC* tokens, int length) except -1: cdef TokenC* head cdef TokenC* child diff --git a/website/docs/api/doc.md b/website/docs/api/doc.md index 7decc2278..420e12fcb 100644 --- a/website/docs/api/doc.md +++ b/website/docs/api/doc.md @@ -187,8 +187,9 @@ Remove a previously registered extension. ## Doc.char_span {#char_span tag="method" new="2"} -Create a `Span` object from the slice `doc.text[start:end]`. Returns `None` if -the character indices don't map to a valid span. +Create a `Span` object from the slice `doc.text[start_idx:end_idx]`. Returns +`None` if the character indices don't map to a valid span using the default mode +`"strict". > #### Example > @@ -198,14 +199,15 @@ the character indices don't map to a valid span. > assert span.text == "New York" > ``` -| Name | Type | Description | -| ------------------------------------ | ---------------------------------------- | --------------------------------------------------------------------- | -| `start` | int | The index of the first character of the span. | -| `end` | int | The index of the last character after the span. | -| `label` | uint64 / unicode | A label to attach to the span, e.g. for named entities. | -| `kb_id` 2.2 | uint64 / unicode | An ID from a knowledge base to capture the meaning of a named entity. | -| `vector` | `numpy.ndarray[ndim=1, dtype='float32']` | A meaning representation of the span. | -| **RETURNS** | `Span` | The newly constructed object or `None`. | +| Name | Type | Description | +| ------------------------------------ | ---------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `start_idx` | int | The index of the first character of the span. | +| `end_idx` | int | The index of the last character after the span. | +| `label` | uint64 / unicode | A label to attach to the span, e.g. for named entities. | +| `kb_id` 2.2 | uint64 / unicode | An ID from a knowledge base to capture the meaning of a named entity. | +| `vector` | `numpy.ndarray[ndim=1, dtype='float32']` | A meaning representation of the span. | +| `mode` | `str` | How character indices snap to token boundaries. Options: "strict" (no snapping), "inside" (span of all tokens completely within the character span), "outside" (span of all tokens at least partially covered by the character span). Defaults to "strict". | +| **RETURNS** | `Span` | The newly constructed object or `None`. | ## Doc.similarity {#similarity tag="method" model="vectors"} @@ -646,26 +648,26 @@ The L2 norm of the document's vector representation. ## Attributes {#attributes} -| Name | Type | Description | -| --------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `text` | unicode | A unicode representation of the document text. | -| `text_with_ws` | unicode | An alias of `Doc.text`, provided for duck-type compatibility with `Span` and `Token`. | -| `mem` | `Pool` | The document's local memory heap, for all C data it owns. | -| `vocab` | `Vocab` | The store of lexical types. | -| `tensor` 2 | `ndarray` | Container for dense vector representations. | -| `cats` 2 | dict | Maps a label to a score for categories applied to the document. The label is a string and the score should be a float. | -| `user_data` | - | A generic storage area, for user custom data. | -| `lang` 2.1 | int | Language of the document's vocabulary. | -| `lang_` 2.1 | unicode | Language of the document's vocabulary. | -| `is_tagged` | bool | A flag indicating that the document has been part-of-speech tagged. Returns `True` if the `Doc` is empty. | -| `is_parsed` | bool | A flag indicating that the document has been syntactically parsed. Returns `True` if the `Doc` is empty. | -| `is_sentenced` | bool | A flag indicating that sentence boundaries have been applied to the document. Returns `True` if the `Doc` is empty. | -| `is_nered` 2.1 | bool | A flag indicating that named entities have been set. Will return `True` if the `Doc` is empty, or if _any_ of the tokens has an entity tag set, even if the others are unknown. | -| `sentiment` | float | The document's positivity/negativity score, if available. | -| `user_hooks` | dict | A dictionary that allows customization of the `Doc`'s properties. | -| `user_token_hooks` | dict | A dictionary that allows customization of properties of `Token` children. | -| `user_span_hooks` | dict | A dictionary that allows customization of properties of `Span` children. | -| `_` | `Underscore` | User space for adding custom [attribute extensions](/usage/processing-pipelines#custom-components-attributes). | +| Name | Type | Description | +| --------------------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `text` | unicode | A unicode representation of the document text. | +| `text_with_ws` | unicode | An alias of `Doc.text`, provided for duck-type compatibility with `Span` and `Token`. | +| `mem` | `Pool` | The document's local memory heap, for all C data it owns. | +| `vocab` | `Vocab` | The store of lexical types. | +| `tensor` 2 | `ndarray` | Container for dense vector representations. | +| `cats` 2 | dict | Maps a label to a score for categories applied to the document. The label is a string and the score should be a float. | +| `user_data` | - | A generic storage area, for user custom data. | +| `lang` 2.1 | int | Language of the document's vocabulary. | +| `lang_` 2.1 | unicode | Language of the document's vocabulary. | +| `is_tagged` | bool | A flag indicating that the document has been part-of-speech tagged. Returns `True` if the `Doc` is empty. | +| `is_parsed` | bool | A flag indicating that the document has been syntactically parsed. Returns `True` if the `Doc` is empty. | +| `is_sentenced` | bool | A flag indicating that sentence boundaries have been applied to the document. Returns `True` if the `Doc` is empty. | +| `is_nered` 2.1 | bool | A flag indicating that named entities have been set. Will return `True` if the `Doc` is empty, or if _any_ of the tokens has an entity tag set, even if the others are unknown. | +| `sentiment` | float | The document's positivity/negativity score, if available. | +| `user_hooks` | dict | A dictionary that allows customization of the `Doc`'s properties. | +| `user_token_hooks` | dict | A dictionary that allows customization of properties of `Token` children. | +| `user_span_hooks` | dict | A dictionary that allows customization of properties of `Span` children. | +| `_` | `Underscore` | User space for adding custom [attribute extensions](/usage/processing-pipelines#custom-components-attributes). | ## Serialization fields {#serialization-fields} From 9e45d064bbe81df303406e42fa81f169070f1ad8 Mon Sep 17 00:00:00 2001 From: Bram Vanroy Date: Wed, 5 Aug 2020 14:34:12 +0200 Subject: [PATCH 18/44] Update universe details spacy_conll (#5871) --- website/meta/universe.json | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/website/meta/universe.json b/website/meta/universe.json index a9a402a66..cf361435f 100644 --- a/website/meta/universe.json +++ b/website/meta/universe.json @@ -1795,26 +1795,33 @@ { "id": "spacy-conll", "title": "spacy_conll", - "slogan": "Parse text with spaCy and gets its output in CoNLL-U format", - "description": "This module allows you to parse a text to CoNLL-U format. It contains a pipeline component for spaCy that adds CoNLL-U properties to a Doc and its sentences. It can also be used as a command-line tool.", + "slogan": "Parsing to CoNLL with spaCy, spacy-stanza, and spacy-udpipe", + "description": "This module allows you to parse text into CoNLL-U format. You can use it as a command line tool, or embed it in your own scripts by adding it as a custom pipeline component to a spaCy, spacy-stanfordnlp, spacy-stanza, or spacy-udpipe pipeline. It also provides an easy-to-use function to quickly initialize a parser. CoNLL-related properties are added to Doc elements, sentence Spans, and Tokens.", "code_example": [ - "import spacy", - "from spacy_conll import ConllFormatter", + "from spacy_conll import init_parser", "", - "nlp = spacy.load('en')", - "conllformatter = ConllFormatter(nlp)", - "nlp.add_pipe(conllformatter, after='parser')", - "doc = nlp('I like cookies. Do you?')", - "conll = doc._.conll", - "print(doc._.conll_str_headers)", - "print(doc._.conll_str)" + "", + "# Initialise English parser, already including the ConllFormatter as a pipeline component.", + "# Indicate that we want to get the CoNLL headers in the string output.", + "# `use_gpu` and `verbose` are specific to stanza (and stanfordnlp). These keywords arguments", + "# are passed onto their Pipeline() initialisation", + "nlp = init_parser(\"stanza\",", + " \"en\",", + " parser_opts={\"use_gpu\": True, \"verbose\": False},", + " include_headers=True)", + "# Parse a given string", + "doc = nlp(\"A cookie is a baked or cooked food that is typically small, flat and sweet. It usually contains flour, sugar and some type of oil or fat.\")", + "", + "# Get the CoNLL representation of the whole document, including headers", + "conll = doc._.conll_str", + "print(conll)" ], "code_language": "python", "author": "Bram Vanroy", "author_links": { "github": "BramVanroy", "twitter": "BramVanroy", - "website": "https://bramvanroy.be" + "website": "http://bramvanroy.be" }, "github": "BramVanroy/spacy_conll", "category": ["standalone", "pipeline"], From 4193402c47fdf48da620e86b94f9f8d7f3878ab1 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Wed, 5 Aug 2020 14:56:14 +0200 Subject: [PATCH 19/44] Add warning when Matcher subpattern is discarded (#5873) * Add a warning when a subpattern is not processed and discarded * Normalize subpattern attribute/operator keys to upper case like top-level attributes --- spacy/errors.py | 2 ++ spacy/matcher/matcher.pyx | 9 +++++++-- spacy/tests/matcher/test_pattern_validation.py | 9 +++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/spacy/errors.py b/spacy/errors.py index fe59453c0..7f9164694 100644 --- a/spacy/errors.py +++ b/spacy/errors.py @@ -133,6 +133,8 @@ class Warnings(object): "normalization table, please ignore this warning.") W034 = ("Please install the package spacy-lookups-data in order to include " "the default lexeme normalization table for the language '{lang}'.") + W035 = ('Discarding subpattern "{pattern}" due to an unrecognized ' + "attribute or operator.") @add_codes diff --git a/spacy/matcher/matcher.pyx b/spacy/matcher/matcher.pyx index 0c1a56187..8fbfe305a 100644 --- a/spacy/matcher/matcher.pyx +++ b/spacy/matcher/matcher.pyx @@ -811,9 +811,11 @@ def _get_extra_predicates(spec, extra_predicates): attr = "ORTH" attr = IDS.get(attr.upper()) if isinstance(value, dict): + processed = False + value_with_upper_keys = {k.upper(): v for k, v in value.items()} for type_, cls in predicate_types.items(): - if type_ in value: - predicate = cls(len(extra_predicates), attr, value[type_], type_) + if type_ in value_with_upper_keys: + predicate = cls(len(extra_predicates), attr, value_with_upper_keys[type_], type_) # Don't create a redundant predicates. # This helps with efficiency, as we're caching the results. if predicate.key in seen_predicates: @@ -822,6 +824,9 @@ def _get_extra_predicates(spec, extra_predicates): extra_predicates.append(predicate) output.append(predicate.i) seen_predicates[predicate.key] = predicate.i + processed = True + if not processed: + warnings.warn(Warnings.W035.format(pattern=value)) return output diff --git a/spacy/tests/matcher/test_pattern_validation.py b/spacy/tests/matcher/test_pattern_validation.py index c536698d0..ec2660ab4 100644 --- a/spacy/tests/matcher/test_pattern_validation.py +++ b/spacy/tests/matcher/test_pattern_validation.py @@ -76,3 +76,12 @@ def test_minimal_pattern_validation(en_vocab, pattern, n_errors, n_min_errors): matcher.add("TEST", [pattern]) elif n_errors == 0: matcher.add("TEST", [pattern]) + + +def test_pattern_warnings(en_vocab): + matcher = Matcher(en_vocab) + # normalize "regex" to upper like "text" + matcher.add("TEST1", [[{"text": {"regex": "regex"}}]]) + # warn if subpattern attribute isn't recognized and processed + with pytest.warns(UserWarning): + matcher.add("TEST2", [[{"TEXT": {"XX": "xx"}}]]) From 49e690bde17f0a1b23844ffd5cc8499ddb7ce515 Mon Sep 17 00:00:00 2001 From: graue70 <23035329+graue70@users.noreply.github.com> Date: Wed, 12 Aug 2020 15:35:25 +0200 Subject: [PATCH 20/44] Fix typos in comments (#5904) * Fix typo in comment * Fix typo * Add spaCy Contributor Agreement --- .github/contributors/graue70.md | 106 ++++++++++++++++++++++++++++++++ spacy/pipeline/pipes.pyx | 4 +- 2 files changed, 108 insertions(+), 2 deletions(-) create mode 100644 .github/contributors/graue70.md diff --git a/.github/contributors/graue70.md b/.github/contributors/graue70.md new file mode 100644 index 000000000..7f9aa037b --- /dev/null +++ b/.github/contributors/graue70.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Thomas | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 2020-08-11 | +| GitHub username | graue70 | +| Website (optional) | | diff --git a/spacy/pipeline/pipes.pyx b/spacy/pipeline/pipes.pyx index ea40e3ae0..4269dd3ea 100644 --- a/spacy/pipeline/pipes.pyx +++ b/spacy/pipeline/pipes.pyx @@ -1205,7 +1205,7 @@ class EntityLinker(Pipe): self.kb = None self.cfg = dict(cfg) - # how many neightbour sentences to take into account + # how many neighbour sentences to take into account self.n_sents = cfg.get("n_sents", 0) def set_kb(self, kb): @@ -1375,7 +1375,7 @@ class EntityLinker(Pipe): # This may go wrong if there are entities across sentences - which shouldn't happen normally. for sent_index, sent in enumerate(sentences): if sent.ents: - # get n_neightbour sentences, clipped to the length of the document + # get n_neighbour sentences, clipped to the length of the document start_sentence = max(0, sent_index - self.n_sents) end_sentence = min(len(sentences) -1, sent_index + self.n_sents) From 7b33b2854f99ef531d72e19e6dda773f43a5fe13 Mon Sep 17 00:00:00 2001 From: Adam Bittlingmayer Date: Wed, 12 Aug 2020 17:36:14 +0400 Subject: [PATCH 21/44] Add Armenian sentence-final verchaket, Greek question mark and Arabic question mark to default punct (#5910) * Add Armenian sentence-final verchaket * Add Greek and Arabic question marks, and contributor agreement * Check box --- .github/contributors/bittlingmayer.md | 107 ++++++++++++++++++++++++++ spacy/pipeline/pipes.pyx | 1 + 2 files changed, 108 insertions(+) create mode 100644 .github/contributors/bittlingmayer.md diff --git a/.github/contributors/bittlingmayer.md b/.github/contributors/bittlingmayer.md new file mode 100644 index 000000000..69ec98a00 --- /dev/null +++ b/.github/contributors/bittlingmayer.md @@ -0,0 +1,107 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Adam Bittlingmayer | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 12 Aug 2020 | +| GitHub username | bittlingmayer | +| Website (optional) | | + diff --git a/spacy/pipeline/pipes.pyx b/spacy/pipeline/pipes.pyx index 4269dd3ea..a5b891b54 100644 --- a/spacy/pipeline/pipes.pyx +++ b/spacy/pipeline/pipes.pyx @@ -1508,6 +1508,7 @@ class Sentencizer(object): """ default_punct_chars = ['!', '.', '?', '։', '؟', '۔', '܀', '܁', '܂', '߹', + ':', ';', '؟', '।', '॥', '၊', '။', '።', '፧', '፨', '᙮', '᜵', '᜶', '᠃', '᠉', '᥄', '᥅', '᪨', '᪩', '᪪', '᪫', '᭚', '᭛', '᭞', '᭟', '᰻', '᰼', '᱾', '᱿', '‼', '‽', '⁇', '⁈', '⁉', '⸮', '⸼', '꓿', '꘎', '꘏', '꛳', '꛷', '꡶', From 669dc708229b5bb5b92c4d87f8a9d0344fca21ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20Sz=C3=A1sz?= Date: Wed, 12 Aug 2020 21:46:08 +0100 Subject: [PATCH 22/44] Create tilusnet.md (#5914) --- .github/contributors/tilusnet.md | 106 +++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 .github/contributors/tilusnet.md diff --git a/.github/contributors/tilusnet.md b/.github/contributors/tilusnet.md new file mode 100644 index 000000000..1618bac2e --- /dev/null +++ b/.github/contributors/tilusnet.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Attila Szász | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 12 Aug 2020 | +| GitHub username | tilusnet | +| Website (optional) | | From 071c09ff35dec169e801fe3c7cabc18a07975f74 Mon Sep 17 00:00:00 2001 From: Sofie Van Landeghem Date: Thu, 20 Aug 2020 11:08:38 +0200 Subject: [PATCH 23/44] add coding (#5942) --- spacy/tests/regression/test_issue5838.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/spacy/tests/regression/test_issue5838.py b/spacy/tests/regression/test_issue5838.py index 558273101..c008c5aec 100644 --- a/spacy/tests/regression/test_issue5838.py +++ b/spacy/tests/regression/test_issue5838.py @@ -1,3 +1,6 @@ +# coding: utf8 +from __future__ import unicode_literals + from spacy.lang.en import English from spacy.tokens import Span from spacy import displacy From 99d2a25687c7a788a20dfc6210c48045c95e4b6d Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Thu, 20 Aug 2020 16:30:11 +0200 Subject: [PATCH 24/44] Make sure sys.argv exists (#5943) * Make sure sys.argv exists (resolves #5610) * Fix typo --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 01e372e91..f78781918 100755 --- a/setup.py +++ b/setup.py @@ -193,7 +193,7 @@ def setup_package(): root = os.path.abspath(os.path.dirname(__file__)) - if len(sys.argv) > 1 and sys.argv[1] == "clean": + if hasattr(sys, "argv") and len(sys.argv) > 1 and sys.argv[1] == "clean": return clean(root) with chdir(root): From a341b4ef09c99225421db2f21c1e4c18885ac779 Mon Sep 17 00:00:00 2001 From: holubvl3 <47881982+holubvl3@users.noreply.github.com> Date: Fri, 21 Aug 2020 16:17:53 +0200 Subject: [PATCH 25/44] Adding support for Czech language (#5826) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create lex_attrs.py Hello, I am missing a CZECH language in SpaCy. So I would like to help to push it a little. This file is base on others lex_attrs.py files just with translation to Czech. * Update __init__.py Updated for use with new Czech Lex_attrs file * Update stop_words.py * Create test_text.py Co-authored-by: Vladimír Holubec --- spacy/lang/cs/__init__.py | 2 + spacy/lang/cs/lex_attrs.py | 64 +++++++++++++++++++ spacy/lang/cs/stop_words.py | 118 +++++++++++++++++++++++++++++++++--- spacy/lang/cs/test_text.py | 0 4 files changed, 176 insertions(+), 8 deletions(-) create mode 100644 spacy/lang/cs/lex_attrs.py create mode 100644 spacy/lang/cs/test_text.py diff --git a/spacy/lang/cs/__init__.py b/spacy/lang/cs/__init__.py index 5b1397ba2..baaaa162b 100644 --- a/spacy/lang/cs/__init__.py +++ b/spacy/lang/cs/__init__.py @@ -4,10 +4,12 @@ from __future__ import unicode_literals from .stop_words import STOP_WORDS from ...language import Language from ...attrs import LANG +from .lex_attrs import LEX_ATTRS class CzechDefaults(Language.Defaults): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) + lex_attr_getters.update(LEX_ATTRS) lex_attr_getters[LANG] = lambda text: "cs" stop_words = STOP_WORDS diff --git a/spacy/lang/cs/lex_attrs.py b/spacy/lang/cs/lex_attrs.py new file mode 100644 index 000000000..368cab6c8 --- /dev/null +++ b/spacy/lang/cs/lex_attrs.py @@ -0,0 +1,64 @@ +# coding: utf8 +from __future__ import unicode_literals + +from ...attrs import LIKE_NUM + +_num_words = [ + "nula", + "jedna", + "dva", + "tři", + "čtyři", + "pět", + "šest", + "sedm", + "osm", + "devět", + "deset", + "jedenáct", + "dvanáct", + "třináct", + "čtrnáct", + "patnáct", + "šestnáct", + "sedmnáct", + "osmnáct", + "devatenáct", + "dvacet", + "třicet", + "čtyřicet", + "padesát", + "šedesát", + "sedmdesát", + "osmdesát", + "devadesát", + "sto", + "tisíc", + "milion", + "miliarda", + "bilion", + "biliarda", + "trilion", + "triliarda", + "kvadrilion", + "kvadriliarda", + "kvintilion", + ] + + +def like_num(text): + if text.startswith(("+", "-", "±", "~")): + text = text[1:] + text = text.replace(",", "").replace(".", "") + if text.isdigit(): + return True + if text.count("/") == 1: + num, denom = text.split("/") + if num.isdigit() and denom.isdigit(): + return True + if text.lower() in _num_words: + return True + return False + + +LEX_ATTRS = {LIKE_NUM: like_num} diff --git a/spacy/lang/cs/stop_words.py b/spacy/lang/cs/stop_words.py index 59d3c102e..9277772fb 100644 --- a/spacy/lang/cs/stop_words.py +++ b/spacy/lang/cs/stop_words.py @@ -1,18 +1,26 @@ # coding: utf8 from __future__ import unicode_literals - # Source: https://github.com/Alir3z4/stop-words +# Source: https://github.com/stopwords-iso/stopwords-cs/blob/master/stopwords-cs.txt STOP_WORDS = set( """ -ačkoli +a +aby ahoj +ačkoli ale +alespoň anebo +ani +aniž ano +atd. +atp. asi aspoň +až během bez beze @@ -25,12 +33,14 @@ budeš budete budou budu +by byl byla byli bylo byly bys +být čau chce chceme @@ -39,14 +49,21 @@ chcete chci chtějí chtít -chut' +chuť chuti co +což +cz +či +článek +článku +články čtrnáct čtyři dál dále daleko +další děkovat děkujeme děkuji @@ -54,6 +71,7 @@ den deset devatenáct devět +dnes do dobrý docela @@ -61,9 +79,15 @@ dva dvacet dvanáct dvě +email +ho hodně +i já jak +jakmile +jako +jakož jde je jeden @@ -73,25 +97,39 @@ jedno jednou jedou jeho +jehož +jej její jejich +jejichž +jehož +jelikož jemu jen jenom +jenž +jež ještě jestli jestliže +ještě +ji jí jich jím +jim jimi jinak -jsem +jiné +již jsi jsme +jsem jsou jste +k kam +každý kde kdo kdy @@ -100,10 +138,13 @@ ke kolik kromě která +kterak +kterou které kteří který kvůli +ku má mají málo @@ -114,8 +155,10 @@ máte mé mě mezi +mi mí mít +mne mně mnou moc @@ -138,6 +181,7 @@ nás náš naše naši +načež ne ně nebo @@ -145,6 +189,7 @@ nebyl nebyla nebyli nebyly +nechť něco nedělá nedělají @@ -154,6 +199,7 @@ neděláš neděláte nějak nejsi +nejsou někde někdo nemají @@ -161,15 +207,22 @@ nemáme nemáte neměl němu +němuž není nestačí +ně nevadí +nové +nový +noví než nic nich +ní ním nimi nula +o od ode on @@ -183,22 +236,37 @@ pak patnáct pět po +pod +pokud pořád +pouze potom pozdě +pravé před +přede přes -přese +přece pro proč prosím prostě +proto proti +první +právě protože +při +přičemž rovně +s se sedm sedmnáct +si +sice +skoro +sic šest šestnáct skoro @@ -207,41 +275,69 @@ smí snad spolu sta +svůj +své +svá +svých +svým +svými +svůj sté sto +strana ta tady tak takhle taky +také +takže tam -tamhle -tamhleto +támhle +támhleto tamto tě tebe tebou -ted' +teď tedy ten +tento +této ti +tím +tímto tisíc tisíce to tobě tohle +tohoto +tom +tomto +tomu +tomuto toto třeba tři třináct trošku +trochu +tu +tuto tvá tvé tvoje tvůj ty +tyto +těm +těma +těmi +u určitě už +v vám vámi vás @@ -251,13 +347,19 @@ vaši ve večer vedle +více vlastně +však +všechen všechno všichni vůbec vy vždy +z +zda za +zde zač zatímco ze diff --git a/spacy/lang/cs/test_text.py b/spacy/lang/cs/test_text.py new file mode 100644 index 000000000..e69de29bb From 56eabcb2f2dd732e1c440468817a99350caf3e51 Mon Sep 17 00:00:00 2001 From: Sofie Van Landeghem Date: Fri, 21 Aug 2020 17:06:33 +0200 Subject: [PATCH 26/44] Adding num_like test for Czech (#5946) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create lex_attrs.py Hello, I am missing a CZECH language in SpaCy. So I would like to help to push it a little. This file is base on others lex_attrs.py files just with translation to Czech. * Update __init__.py Updated for use with new Czech Lex_attrs file * Update stop_words.py * Create test_text.py * add like_num testing for czech Co-authored-by: holubvl3 <47881982+holubvl3@users.noreply.github.com> Co-authored-by: holubvl3 Co-authored-by: Vladimír Holubec --- spacy/tests/conftest.py | 5 +++++ spacy/tests/lang/cs/__init__.py | 0 spacy/tests/lang/cs/test_text.py | 26 ++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 spacy/tests/lang/cs/__init__.py create mode 100644 spacy/tests/lang/cs/test_text.py diff --git a/spacy/tests/conftest.py b/spacy/tests/conftest.py index 91b7e4d9d..567bf901c 100644 --- a/spacy/tests/conftest.py +++ b/spacy/tests/conftest.py @@ -47,6 +47,11 @@ def ca_tokenizer(): return get_lang_class("ca").Defaults.create_tokenizer() +@pytest.fixture(scope="session") +def cs_tokenizer(): + return get_lang_class("cs").Defaults.create_tokenizer() + + @pytest.fixture(scope="session") def da_tokenizer(): return get_lang_class("da").Defaults.create_tokenizer() diff --git a/spacy/tests/lang/cs/__init__.py b/spacy/tests/lang/cs/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/spacy/tests/lang/cs/test_text.py b/spacy/tests/lang/cs/test_text.py new file mode 100644 index 000000000..d98961738 --- /dev/null +++ b/spacy/tests/lang/cs/test_text.py @@ -0,0 +1,26 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import pytest + + +@pytest.mark.parametrize( + "text,match", + [ + ("10", True), + ("1", True), + ("10.000", True), + ("1000", True), + ("999,0", True), + ("devatenáct", True), + ("osmdesát", True), + ("kvadrilion", True), + ("Pes", False), + (",", False), + ("1/2", True), + ], +) +def test_lex_attrs_like_number(cs_tokenizer, text, match): + tokens = cs_tokenizer(text) + assert len(tokens) == 1 + assert tokens[0].like_num == match From b10c7bc56ed74ae205f5e136c6dae59d70b27925 Mon Sep 17 00:00:00 2001 From: idoshr <35264146+idoshr@users.noreply.github.com> Date: Mon, 24 Aug 2020 15:30:05 +0300 Subject: [PATCH 27/44] Hebrew like num (#5952) * Update stop_words.py Hebrew STOP WORDS * Update stop_words.py * contributor * contributor * add some common domain extentions support human number 1K/1M.... * support human number 1K/1M.... * hebrew number tokenize 1K/1M implement in EN * test human tokenize fix * test * heb like num revert human number change * heb like num --- .github/contributors/idoshr.md | 106 ++++++++++++++++++++++++++ spacy/lang/en/lex_attrs.py | 3 +- spacy/lang/he/__init__.py | 2 + spacy/lang/he/lex_attrs.py | 97 +++++++++++++++++++++++ spacy/lang/he/stop_words.py | 13 ++-- spacy/lang/lex_attrs.py | 2 +- spacy/lang/tokenizer_exceptions.py | 4 + spacy/tests/lang/he/test_tokenizer.py | 39 ++++++++++ 8 files changed, 255 insertions(+), 11 deletions(-) create mode 100644 .github/contributors/idoshr.md create mode 100644 spacy/lang/he/lex_attrs.py diff --git a/.github/contributors/idoshr.md b/.github/contributors/idoshr.md new file mode 100644 index 000000000..26e901530 --- /dev/null +++ b/.github/contributors/idoshr.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Ido Shraga | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 20-09-2020 | +| GitHub username | idoshr | +| Website (optional) | | diff --git a/spacy/lang/en/lex_attrs.py b/spacy/lang/en/lex_attrs.py index bd60b057b..4f6988bd5 100644 --- a/spacy/lang/en/lex_attrs.py +++ b/spacy/lang/en/lex_attrs.py @@ -3,7 +3,6 @@ from __future__ import unicode_literals from ...attrs import LIKE_NUM - _num_words = [ "zero", "one", @@ -92,7 +91,7 @@ def like_num(text): num, denom = text.split("/") if num.isdigit() and denom.isdigit(): return True - + text_lower = text.lower() if text_lower in _num_words: return True diff --git a/spacy/lang/he/__init__.py b/spacy/lang/he/__init__.py index 411cdf107..922f61462 100644 --- a/spacy/lang/he/__init__.py +++ b/spacy/lang/he/__init__.py @@ -4,6 +4,7 @@ from __future__ import unicode_literals from .stop_words import STOP_WORDS from ..tokenizer_exceptions import BASE_EXCEPTIONS +from .lex_attrs import LEX_ATTRS from ...language import Language from ...attrs import LANG from ...util import update_exc @@ -11,6 +12,7 @@ from ...util import update_exc class HebrewDefaults(Language.Defaults): lex_attr_getters = dict(Language.Defaults.lex_attr_getters) + lex_attr_getters.update(LEX_ATTRS) lex_attr_getters[LANG] = lambda text: "he" tokenizer_exceptions = update_exc(BASE_EXCEPTIONS) stop_words = STOP_WORDS diff --git a/spacy/lang/he/lex_attrs.py b/spacy/lang/he/lex_attrs.py new file mode 100644 index 000000000..9eab93ae4 --- /dev/null +++ b/spacy/lang/he/lex_attrs.py @@ -0,0 +1,97 @@ +# coding: utf8 +from __future__ import unicode_literals + +from ...attrs import LIKE_NUM + +_num_words = [ + "אפס", + "אחד", + "אחת", + "שתיים", + "שתים", + "שניים", + "שנים", + "שלוש", + "שלושה", + "ארבע", + "ארבעה", + "חמש", + "חמישה", + "שש", + "שישה", + "שבע", + "שבעה", + "שמונה", + "תשע", + "תשעה", + "עשר", + "עשרה", + "אחד עשר", + "אחת עשרה", + "שנים עשר", + "שתים עשרה", + "שלושה עשר", + "שלוש עשרה", + "ארבעה עשר", + "ארבע עשרה", + "חמישה עשר", + "חמש עשרה", + "ששה עשר", + "שש עשרה", + "שבעה עשר", + "שבע עשרה", + "שמונה עשר", + "שמונה עשרה", + "תשעה עשר", + "תשע עשרה", + "עשרים", + "שלושים", + "ארבעים", + "חמישים", + "שישים", + "שבעים", + "שמונים", + "תשעים", + "מאה", + "אלף", + "מליון", + "מליארד", + "טריליון", +] + + +_ordinal_words = [ + "ראשון", + "שני", + "שלישי", + "רביעי", + "חמישי", + "שישי", + "שביעי", + "שמיני", + "תשיעי", + "עשירי", +] + +def like_num(text): + if text.startswith(("+", "-", "±", "~")): + text = text[1:] + text = text.replace(",", "").replace(".", "") + if text.isdigit(): + return True + + if text.count("/") == 1: + num, denom = text.split("/") + if num.isdigit() and denom.isdigit(): + return True + + if text in _num_words: + return True + + # CHeck ordinal number + if text in _ordinal_words: + return True + return False + + +LEX_ATTRS = {LIKE_NUM: like_num} diff --git a/spacy/lang/he/stop_words.py b/spacy/lang/he/stop_words.py index a01ec4246..d4ac5e846 100644 --- a/spacy/lang/he/stop_words.py +++ b/spacy/lang/he/stop_words.py @@ -43,7 +43,6 @@ STOP_WORDS = set( בין עם עד -נגר על אל מול @@ -62,7 +61,7 @@ STOP_WORDS = set( עליך עלינו עליכם -לעיכן +עליכן עליהם עליהן כל @@ -71,8 +70,8 @@ STOP_WORDS = set( כך ככה כזה +כזאת זה -זות אותי אותה אותם @@ -95,7 +94,7 @@ STOP_WORDS = set( איתכן יהיה תהיה -היתי +הייתי היתה היה להיות @@ -105,8 +104,6 @@ STOP_WORDS = set( עצמם עצמן עצמנו -עצמהם -עצמהן מי מה איפה @@ -157,6 +154,7 @@ STOP_WORDS = set( לאו אי כלל +בעד נגד אם עם @@ -200,7 +198,6 @@ STOP_WORDS = set( אשר ואילו למרות -אס כמו כפי אז @@ -208,8 +205,8 @@ STOP_WORDS = set( כן לכן לפיכך -מאד עז +מאוד מעט מעטים במידה diff --git a/spacy/lang/lex_attrs.py b/spacy/lang/lex_attrs.py index c9cd82d7b..254f8706d 100644 --- a/spacy/lang/lex_attrs.py +++ b/spacy/lang/lex_attrs.py @@ -10,7 +10,7 @@ from .. import attrs _like_email = re.compile(r"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)").match _tlds = set( "com|org|edu|gov|net|mil|aero|asia|biz|cat|coop|info|int|jobs|mobi|museum|" - "name|pro|tel|travel|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|" + "name|pro|tel|travel|xyz|icu|xxx|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|" "ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|" "cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cs|cu|cv|cx|cy|cz|dd|de|dj|dk|dm|do|dz|ec|" "ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|" diff --git a/spacy/lang/tokenizer_exceptions.py b/spacy/lang/tokenizer_exceptions.py index 67349916b..13140a230 100644 --- a/spacy/lang/tokenizer_exceptions.py +++ b/spacy/lang/tokenizer_exceptions.py @@ -133,6 +133,8 @@ emoticons = set( :-] [: [-: +[= +=] :o) (o: :} @@ -164,6 +166,8 @@ emoticons = set( =| :| :-| +]= +=[ :1 :P :-P diff --git a/spacy/tests/lang/he/test_tokenizer.py b/spacy/tests/lang/he/test_tokenizer.py index f138ec6e7..67ad964d8 100644 --- a/spacy/tests/lang/he/test_tokenizer.py +++ b/spacy/tests/lang/he/test_tokenizer.py @@ -1,5 +1,6 @@ # encoding: utf8 from __future__ import unicode_literals +from spacy.lang.he.lex_attrs import like_num import pytest @@ -42,3 +43,41 @@ def test_he_tokenizer_handles_abbreviation(he_tokenizer, text, expected_tokens): def test_he_tokenizer_handles_punct(he_tokenizer, text, expected_tokens): tokens = he_tokenizer(text) assert expected_tokens == [token.text for token in tokens] + + + +@pytest.mark.parametrize( + "text,match", + [ + ("10", True), + ("1", True), + ("10,000", True), + ("10,00", True), + ("999.0", True), + ("אחד", True), + ("שתיים", True), + ("מליון", True), + ("כלב", False), + (",", False), + ("1/2", True), + ], +) +def test_lex_attrs_like_number(he_tokenizer, text, match): + tokens = he_tokenizer(text) + assert len(tokens) == 1 + assert tokens[0].like_num == match + + +@pytest.mark.parametrize( + "word", + [ + "שלישי", + "מליון", + "עשירי", + "מאה", + "עשר", + "אחד עשר", + ] +) +def test_he_lex_attrs_like_number_for_ordinal(word): + assert like_num(word) From 450720aca2cfeb35a94c73b13e4336cdb2c366d3 Mon Sep 17 00:00:00 2001 From: Shashank <42868640+snsten@users.noreply.github.com> Date: Tue, 25 Aug 2020 14:26:29 +0530 Subject: [PATCH 28/44] Added support for Sanskrit language (#5956) * Added support for Sanskrit language * Added tests for lexical attribute like_num --- .github/contributors/snsten.md | 106 +++++++ spacy/lang/sa/__init__.py | 24 ++ spacy/lang/sa/examples.py | 19 ++ spacy/lang/sa/lex_attrs.py | 131 ++++++++ spacy/lang/sa/stop_words.py | 518 +++++++++++++++++++++++++++++++ spacy/tests/conftest.py | 5 + spacy/tests/lang/sa/__init__.py | 0 spacy/tests/lang/sa/test_text.py | 45 +++ 8 files changed, 848 insertions(+) create mode 100644 .github/contributors/snsten.md create mode 100644 spacy/lang/sa/__init__.py create mode 100644 spacy/lang/sa/examples.py create mode 100644 spacy/lang/sa/lex_attrs.py create mode 100644 spacy/lang/sa/stop_words.py create mode 100644 spacy/tests/lang/sa/__init__.py create mode 100644 spacy/tests/lang/sa/test_text.py diff --git a/.github/contributors/snsten.md b/.github/contributors/snsten.md new file mode 100644 index 000000000..0d7c28835 --- /dev/null +++ b/.github/contributors/snsten.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Shashank Shekhar | +| Company name (if applicable) | | +| Title or role (if applicable) | | +| Date | 2020-08-23 | +| GitHub username | snsten | +| Website (optional) | | diff --git a/spacy/lang/sa/__init__.py b/spacy/lang/sa/__init__.py new file mode 100644 index 000000000..8a4533341 --- /dev/null +++ b/spacy/lang/sa/__init__.py @@ -0,0 +1,24 @@ +# coding: utf8 +from __future__ import unicode_literals + +from .stop_words import STOP_WORDS +from .lex_attrs import LEX_ATTRS + +from ...language import Language +from ...attrs import LANG + + +class SanskritDefaults(Language.Defaults): + lex_attr_getters = dict(Language.Defaults.lex_attr_getters) + lex_attr_getters.update(LEX_ATTRS) + lex_attr_getters[LANG] = lambda text: "sa" + + stop_words = STOP_WORDS + + +class Sanskrit(Language): + lang = "sa" + Defaults = SanskritDefaults + + +__all__ = ["Sanskrit"] diff --git a/spacy/lang/sa/examples.py b/spacy/lang/sa/examples.py new file mode 100644 index 000000000..9d4fa1e49 --- /dev/null +++ b/spacy/lang/sa/examples.py @@ -0,0 +1,19 @@ +# coding: utf8 +from __future__ import unicode_literals + + +""" +Example sentences to test spaCy and its language models. + +>>> from spacy.lang.sa.examples import sentences +>>> docs = nlp.pipe(sentences) +""" + + +sentences = [ + "अभ्यावहति कल्याणं विविधं वाक् सुभाषिता ।", + "मनसि व्याकुले चक्षुः पश्यन्नपि न पश्यति ।", + "यस्य बुद्धिर्बलं तस्य निर्बुद्धेस्तु कुतो बलम्?", + "परो अपि हितवान् बन्धुः बन्धुः अपि अहितः परः ।", + "अहितः देहजः व्याधिः हितम् आरण्यं औषधम् ॥", +] diff --git a/spacy/lang/sa/lex_attrs.py b/spacy/lang/sa/lex_attrs.py new file mode 100644 index 000000000..c33be2ce4 --- /dev/null +++ b/spacy/lang/sa/lex_attrs.py @@ -0,0 +1,131 @@ +# coding: utf8 +from __future__ import unicode_literals + +from ...attrs import LIKE_NUM + + +# reference 1: https://en.wikibooks.org/wiki/Sanskrit/Numbers + +_num_words = [ + "एकः", + "द्वौ", + "त्रयः", + "चत्वारः", + "पञ्च", + "षट्", + "सप्त", + "अष्ट", + "नव", + "दश", + "एकादश", + "द्वादश", + "त्रयोदश", + "चतुर्दश", + "पञ्चदश", + "षोडश", + "सप्तदश", + "अष्टादश", + "एकान्नविंशति", + "विंशति", + "एकाविंशति", + "द्वाविंशति", + "त्रयोविंशति", + "चतुर्विंशति", + "पञ्चविंशति", + "षड्विंशति", + "सप्तविंशति", + "अष्टाविंशति", + "एकान्नत्रिंशत्", + "त्रिंशत्", + "एकत्रिंशत्", + "द्वात्रिंशत्", + "त्रयत्रिंशत्", + "चतुस्त्रिंशत्", + "पञ्चत्रिंशत्", + "षट्त्रिंशत्", + "सप्तत्रिंशत्", + "अष्टात्रिंशत्", + "एकोनचत्वारिंशत्", + "चत्वारिंशत्", + "एकचत्वारिंशत्", + "द्वाचत्वारिंशत्", + "त्रयश्चत्वारिंशत्", + "चतुश्चत्वारिंशत्", + "पञ्चचत्वारिंशत्", + "षट्चत्वारिंशत्", + "सप्तचत्वारिंशत्", + "अष्टाचत्वारिंशत्", + "एकोनपञ्चाशत्", + "पञ्चाशत्", + "एकपञ्चाशत्", + "द्विपञ्चाशत्", + "त्रिपञ्चाशत्", + "चतुःपञ्चाशत्", + "पञ्चपञ्चाशत्", + "षट्पञ्चाशत्", + "सप्तपञ्चाशत्", + "अष्टपञ्चाशत्", + "एकोनषष्ठिः", + "षष्ठिः", + "एकषष्ठिः", + "द्विषष्ठिः", + "त्रिषष्ठिः", + "चतुःषष्ठिः", + "पञ्चषष्ठिः", + "षट्षष्ठिः", + "सप्तषष्ठिः", + "अष्टषष्ठिः", + "एकोनसप्ततिः", + "सप्ततिः", + "एकसप्ततिः", + "द्विसप्ततिः", + "त्रिसप्ततिः", + "चतुःसप्ततिः", + "पञ्चसप्ततिः", + "षट्सप्ततिः", + "सप्तसप्ततिः", + "अष्टसप्ततिः", + "एकोनाशीतिः", + "अशीतिः", + "एकाशीतिः", + "द्वशीतिः", + "त्र्यशीतिः", + "चतुरशीतिः", + "पञ्चाशीतिः", + "षडशीतिः", + "सप्ताशीतिः", + "अष्टाशीतिः", + "एकोननवतिः", + "नवतिः", + "एकनवतिः", + "द्विनवतिः", + "त्रिनवतिः", + "चतुर्नवतिः", + "पञ्चनवतिः", + "षण्णवतिः", + "सप्तनवतिः", + "अष्टनवतिः", + "एकोनशतम्", + "शतम्" +] + + +def like_num(text): + """ + Check if text resembles a number + """ + if text.startswith(("+", "-", "±", "~")): + text = text[1:] + text = text.replace(",", "").replace(".", "") + if text.isdigit(): + return True + if text.count("/") == 1: + num, denom = text.split("/") + if num.isdigit() and denom.isdigit(): + return True + if text in _num_words: + return True + return False + + +LEX_ATTRS = {LIKE_NUM: like_num} diff --git a/spacy/lang/sa/stop_words.py b/spacy/lang/sa/stop_words.py new file mode 100644 index 000000000..aa51ceae0 --- /dev/null +++ b/spacy/lang/sa/stop_words.py @@ -0,0 +1,518 @@ +# coding: utf8 +from __future__ import unicode_literals + +# Source: https://gist.github.com/Akhilesh28/fe8b8e180f64b72e64751bc31cb6d323 + +STOP_WORDS = set( + """ +अहम् +आवाम् +वयम् +माम् मा +आवाम् +अस्मान् नः +मया +आवाभ्याम् +अस्माभिस् +मह्यम् मे +आवाभ्याम् नौ +अस्मभ्यम् नः +मत् +आवाभ्याम् +अस्मत् +मम मे +आवयोः +अस्माकम् नः +मयि +आवयोः +अस्मासु +त्वम् +युवाम् +यूयम् +त्वाम् त्वा +युवाम् वाम् +युष्मान् वः +त्वया +युवाभ्याम् +युष्माभिः +तुभ्यम् ते +युवाभ्याम् वाम् +युष्मभ्यम् वः +त्वत् +युवाभ्याम् +युष्मत् +तव ते +युवयोः वाम् +युष्माकम् वः +त्वयि +युवयोः +युष्मासु +सः +तौ +ते +तम् +तौ +तान् +तेन +ताभ्याम् +तैः +तस्मै +ताभ्याम् +तेभ्यः +तस्मात् +ताभ्याम् +तेभ्यः +तस्य +तयोः +तेषाम् +तस्मिन् +तयोः +तेषु +सा +ते +ताः +ताम् +ते +ताः +तया +ताभ्याम् +ताभिः +तस्यै +ताभ्याम् +ताभ्यः +तस्याः +ताभ्याम् +ताभ्यः +तस्य +तयोः +तासाम् +तस्याम् +तयोः +तासु +तत् +ते +तानि +तत् +ते +तानि +तया +ताभ्याम् +ताभिः +तस्यै +ताभ्याम् +ताभ्यः +तस्याः +ताभ्याम् +ताभ्यः +तस्य +तयोः +तासाम् +तस्याम् +तयोः +तासु +अयम् +इमौ +इमे +इमम् +इमौ +इमान् +अनेन +आभ्याम् +एभिः +अस्मै +आभ्याम् +एभ्यः +अस्मात् +आभ्याम् +एभ्यः +अस्य +अनयोः +एषाम् +अस्मिन् +अनयोः +एषु +इयम् +इमे +इमाः +इमाम् +इमे +इमाः +अनया +आभ्याम् +आभिः +अस्यै +आभ्याम् +आभ्यः +अस्याः +आभ्याम् +आभ्यः +अस्याः +अनयोः +आसाम् +अस्याम् +अनयोः +आसु +इदम् +इमे +इमानि +इदम् +इमे +इमानि +अनेन +आभ्याम् +एभिः +अस्मै +आभ्याम् +एभ्यः +अस्मात् +आभ्याम् +एभ्यः +अस्य +अनयोः +एषाम् +अस्मिन् +अनयोः +एषु +एषः +एतौ +एते +एतम् एनम् +एतौ एनौ +एतान् एनान् +एतेन +एताभ्याम् +एतैः +एतस्मै +एताभ्याम् +एतेभ्यः +एतस्मात् +एताभ्याम् +एतेभ्यः +एतस्य +एतस्मिन् +एतेषाम् +एतस्मिन् +एतस्मिन् +एतेषु +एषा +एते +एताः +एताम् एनाम् +एते एने +एताः एनाः +एतया एनया +एताभ्याम् +एताभिः +एतस्यै +एताभ्याम् +एताभ्यः +एतस्याः +एताभ्याम् +एताभ्यः +एतस्याः +एतयोः एनयोः +एतासाम् +एतस्याम् +एतयोः एनयोः +एतासु +एतत् एतद् +एते +एतानि +एतत् एतद् एनत् एनद् +एते एने +एतानि एनानि +एतेन एनेन +एताभ्याम् +एतैः +एतस्मै +एताभ्याम् +एतेभ्यः +एतस्मात् +एताभ्याम् +एतेभ्यः +एतस्य +एतयोः एनयोः +एतेषाम् +एतस्मिन् +एतयोः एनयोः +एतेषु +असौ +अमू +अमी +अमूम् +अमू +अमून् +अमुना +अमूभ्याम् +अमीभिः +अमुष्मै +अमूभ्याम् +अमीभ्यः +अमुष्मात् +अमूभ्याम् +अमीभ्यः +अमुष्य +अमुयोः +अमीषाम् +अमुष्मिन् +अमुयोः +अमीषु +असौ +अमू +अमूः +अमूम् +अमू +अमूः +अमुया +अमूभ्याम् +अमूभिः +अमुष्यै +अमूभ्याम् +अमूभ्यः +अमुष्याः +अमूभ्याम् +अमूभ्यः +अमुष्याः +अमुयोः +अमूषाम् +अमुष्याम् +अमुयोः +अमूषु +अमु +अमुनी +अमूनि +अमु +अमुनी +अमूनि +अमुना +अमूभ्याम् +अमीभिः +अमुष्मै +अमूभ्याम् +अमीभ्यः +अमुष्मात् +अमूभ्याम् +अमीभ्यः +अमुष्य +अमुयोः +अमीषाम् +अमुष्मिन् +अमुयोः +अमीषु +कः +कौ +के +कम् +कौ +कान् +केन +काभ्याम् +कैः +कस्मै +काभ्याम् +केभ्य +कस्मात् +काभ्याम् +केभ्य +कस्य +कयोः +केषाम् +कस्मिन् +कयोः +केषु +का +के +काः +काम् +के +काः +कया +काभ्याम् +काभिः +कस्यै +काभ्याम् +काभ्यः +कस्याः +काभ्याम् +काभ्यः +कस्याः +कयोः +कासाम् +कस्याम् +कयोः +कासु +किम् +के +कानि +किम् +के +कानि +केन +काभ्याम् +कैः +कस्मै +काभ्याम् +केभ्य +कस्मात् +काभ्याम् +केभ्य +कस्य +कयोः +केषाम् +कस्मिन् +कयोः +केषु +भवान् +भवन्तौ +भवन्तः +भवन्तम् +भवन्तौ +भवतः +भवता +भवद्भ्याम् +भवद्भिः +भवते +भवद्भ्याम् +भवद्भ्यः +भवतः +भवद्भ्याम् +भवद्भ्यः +भवतः +भवतोः +भवताम् +भवति +भवतोः +भवत्सु +भवती +भवत्यौ +भवत्यः +भवतीम् +भवत्यौ +भवतीः +भवत्या +भवतीभ्याम् +भवतीभिः +भवत्यै +भवतीभ्याम् +भवतीभिः +भवत्याः +भवतीभ्याम् +भवतीभिः +भवत्याः +भवत्योः +भवतीनाम् +भवत्याम् +भवत्योः +भवतीषु +भवत् +भवती +भवन्ति +भवत् +भवती +भवन्ति +भवता +भवद्भ्याम् +भवद्भिः +भवते +भवद्भ्याम् +भवद्भ्यः +भवतः +भवद्भ्याम् +भवद्भ्यः +भवतः +भवतोः +भवताम् +भवति +भवतोः +भवत्सु +अये +अरे +अरेरे +अविधा +असाधुना +अस्तोभ +अहह +अहावस् +आम् +आर्यहलम् +आह +आहो +इस् +उम् +उवे +काम् +कुम् +चमत् +टसत् +दृन् +धिक् +पाट् +फत् +फाट् +फुडुत् +बत +बाल् +वट् +व्यवस्तोभति व्यवस्तुभ् +षाट् +स्तोभ +हुम्मा +हूम् +अति +अधि +अनु +अप +अपि +अभि +अव +आ +उद् +उप +नि +निर् +परा +परि +प्र +प्रति +वि +सम् +अथवा उत +अन्यथा +इव +च +चेत् यदि +तु परन्तु +यतः करणेन हि यतस् यदर्थम् यदर्थे यर्हि यथा यत्कारणम् येन ही हिन +यथा यतस् +यद्यपि +यात् अवधेस् यावति +येन प्रकारेण +स्थाने +अह +एव +एवम् +कच्चित् +कु +कुवित् +कूपत् +च +चण् +चेत् +तत्र +नकिम् +नह +नुनम् +नेत् +भूयस् +मकिम् +मकिर् +यत्र +युगपत् +वा +शश्वत् +सूपत् +ह +हन्त +हि +""".split() +) diff --git a/spacy/tests/conftest.py b/spacy/tests/conftest.py index 567bf901c..bf9851178 100644 --- a/spacy/tests/conftest.py +++ b/spacy/tests/conftest.py @@ -212,6 +212,11 @@ def ru_lemmatizer(): return get_lang_class("ru").Defaults.create_lemmatizer() +@pytest.fixture(scope="session") +def sa_tokenizer(): + return get_lang_class("sa").Defaults.create_tokenizer() + + @pytest.fixture(scope="session") def sr_tokenizer(): return get_lang_class("sr").Defaults.create_tokenizer() diff --git a/spacy/tests/lang/sa/__init__.py b/spacy/tests/lang/sa/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/spacy/tests/lang/sa/test_text.py b/spacy/tests/lang/sa/test_text.py new file mode 100644 index 000000000..7c961bdae --- /dev/null +++ b/spacy/tests/lang/sa/test_text.py @@ -0,0 +1,45 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import pytest + + +def test_sa_tokenizer_handles_long_text(sa_tokenizer): + text = """नानाविधानि दिव्यानि नानावर्णाकृतीनि च।।""" + tokens = sa_tokenizer(text) + assert len(tokens) == 6 + + +@pytest.mark.parametrize( + "text,length", + [ + ("श्री भगवानुवाच पश्य मे पार्थ रूपाणि शतशोऽथ सहस्रशः।", 9,), + ("गुणान् सर्वान् स्वभावो मूर्ध्नि वर्तते ।", 6), + ], +) +def test_sa_tokenizer_handles_cnts(sa_tokenizer, text, length): + tokens = sa_tokenizer(text) + assert len(tokens) == length + + +@pytest.mark.parametrize( + "text,match", + [ + ("10", True), + ("1", True), + ("10.000", True), + ("1000", True), + ("999,0", True), + ("एकः ", True), + ("दश", True), + ("पञ्चदश", True), + ("चत्वारिंशत् ", True), + ("कूपे", False), + (",", False), + ("1/2", True), + ], +) +def test_lex_attrs_like_number(sa_tokenizer, text, match): + tokens = sa_tokenizer(text) + assert len(tokens) == 1 + assert tokens[0].like_num == match From 332803eda9e9999434d4da41e56d1689f353bbd8 Mon Sep 17 00:00:00 2001 From: Hiroshi Matsuda <40782025+hiroshi-matsuda-rit@users.noreply.github.com> Date: Tue, 25 Aug 2020 21:16:24 +0900 Subject: [PATCH 29/44] fix ja leading spaces (#5969) * change condition for space after * add NAUGHTY_STRINGS test example --- spacy/lang/ja/__init__.py | 4 ++-- spacy/tests/tokenizer/test_naughty_strings.py | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/spacy/lang/ja/__init__.py b/spacy/lang/ja/__init__.py index 30e73fd84..80cb7a837 100644 --- a/spacy/lang/ja/__init__.py +++ b/spacy/lang/ja/__init__.py @@ -98,7 +98,7 @@ def get_dtokens_and_spaces(dtokens, text, gap_tag="空白"): return text_dtokens, text_spaces # align words and dtokens by referring text, and insert gap tokens for the space char spans - for word, dtoken in zip(words, dtokens): + for i, (word, dtoken) in enumerate(zip(words, dtokens)): # skip all space tokens if word.isspace(): continue @@ -119,7 +119,7 @@ def get_dtokens_and_spaces(dtokens, text, gap_tag="空白"): text_spaces.append(False) text_pos += len(word) # poll a space char after the word - if text_pos < len(text) and text[text_pos] == " ": + if i + 1 < len(dtokens) and dtokens[i + 1].surface == " ": text_spaces[-1] = True text_pos += 1 diff --git a/spacy/tests/tokenizer/test_naughty_strings.py b/spacy/tests/tokenizer/test_naughty_strings.py index 36c69611e..9737b15cf 100644 --- a/spacy/tests/tokenizer/test_naughty_strings.py +++ b/spacy/tests/tokenizer/test_naughty_strings.py @@ -32,6 +32,7 @@ NAUGHTY_STRINGS = [ r"₀₁₂", r"⁰⁴⁵₀₁₂", r"ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็ ด้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็", + r" ̄ ̄", # Two-Byte Characters r"田中さんにあげて下さい", r"パーティーへ行かないか", From 7d7b65ffd42c56ce3a0aa73b18196eb20a1dcc24 Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Wed, 26 Aug 2020 04:00:49 +0200 Subject: [PATCH 30/44] Fix raw strings in URL pattern (#5972) Add missing raw string specifiers. --- spacy/lang/tokenizer_exceptions.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spacy/lang/tokenizer_exceptions.py b/spacy/lang/tokenizer_exceptions.py index 13140a230..c903448b0 100644 --- a/spacy/lang/tokenizer_exceptions.py +++ b/spacy/lang/tokenizer_exceptions.py @@ -37,13 +37,13 @@ URL_PATTERN = ( r"|" # host & domain names # mods: match is case-sensitive, so include [A-Z] - "(?:" # noqa - "(?:" - "[A-Za-z0-9\u00a1-\uffff]" - "[A-Za-z0-9\u00a1-\uffff_-]{0,62}" - ")?" - "[A-Za-z0-9\u00a1-\uffff]\." - ")+" + r"(?:" # noqa + r"(?:" + r"[A-Za-z0-9\u00a1-\uffff]" + r"[A-Za-z0-9\u00a1-\uffff_-]{0,62}" + r")?" + r"[A-Za-z0-9\u00a1-\uffff]\." + r")+" # TLD identifier # mods: use ALPHA_LOWER instead of a wider range so that this doesn't match # strings like "lower.Upper", which can be split on "." by infixes in some From caf23462eb3bc0adb05300565b06697dcf7d1b1a Mon Sep 17 00:00:00 2001 From: Adriane Boyd Date: Wed, 26 Aug 2020 15:23:59 +0200 Subject: [PATCH 31/44] Add 3rd party licenses (#5959) --- licenses/3rd_party_licenses.txt | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 licenses/3rd_party_licenses.txt diff --git a/licenses/3rd_party_licenses.txt b/licenses/3rd_party_licenses.txt new file mode 100644 index 000000000..0aeef5507 --- /dev/null +++ b/licenses/3rd_party_licenses.txt @@ -0,0 +1,38 @@ +Third Party Licenses for spaCy +============================== + +NumPy +----- + +* Files: setup.py + +Copyright (c) 2005-2020, NumPy Developers. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of the NumPy Developers nor the names of any + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 9002bea29f30438ed85cc61a11e5547de8318acb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Guti=C3=A9rrez?= Date: Mon, 31 Aug 2020 04:44:56 -0600 Subject: [PATCH 32/44] Update suffixes example (#5989) * Update suffixes example The current example will throw `TypeError: can only concatenate list (not "tuple") to list` * Signing Contributor Agreement --- .github/contributors/jgutix.md | 106 ++++++++++++++++++++++ website/docs/usage/linguistic-features.md | 2 +- 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 .github/contributors/jgutix.md diff --git a/.github/contributors/jgutix.md b/.github/contributors/jgutix.md new file mode 100644 index 000000000..4bda9486b --- /dev/null +++ b/.github/contributors/jgutix.md @@ -0,0 +1,106 @@ +# spaCy contributor agreement + +This spaCy Contributor Agreement (**"SCA"**) is based on the +[Oracle Contributor Agreement](http://www.oracle.com/technetwork/oca-405177.pdf). +The SCA applies to any contribution that you make to any product or project +managed by us (the **"project"**), and sets out the intellectual property rights +you grant to us in the contributed materials. The term **"us"** shall mean +[ExplosionAI GmbH](https://explosion.ai/legal). The term +**"you"** shall mean the person or entity identified below. + +If you agree to be bound by these terms, fill in the information requested +below and include the filled-in version with your first pull request, under the +folder [`.github/contributors/`](/.github/contributors/). The name of the file +should be your GitHub username, with the extension `.md`. For example, the user +example_user would create the file `.github/contributors/example_user.md`. + +Read this agreement carefully before signing. These terms and conditions +constitute a binding legal agreement. + +## Contributor Agreement + +1. The term "contribution" or "contributed materials" means any source code, +object code, patch, tool, sample, graphic, specification, manual, +documentation, or any other material posted or submitted by you to the project. + +2. With respect to any worldwide copyrights, or copyright applications and +registrations, in your contribution: + + * you hereby assign to us joint ownership, and to the extent that such + assignment is or becomes invalid, ineffective or unenforceable, you hereby + grant to us a perpetual, irrevocable, non-exclusive, worldwide, no-charge, + royalty-free, unrestricted license to exercise all rights under those + copyrights. This includes, at our option, the right to sublicense these same + rights to third parties through multiple levels of sublicensees or other + licensing arrangements; + + * you agree that each of us can do all things in relation to your + contribution as if each of us were the sole owners, and if one of us makes + a derivative work of your contribution, the one who makes the derivative + work (or has it made will be the sole owner of that derivative work; + + * you agree that you will not assert any moral rights in your contribution + against us, our licensees or transferees; + + * you agree that we may register a copyright in your contribution and + exercise all ownership rights associated with it; and + + * you agree that neither of us has any duty to consult with, obtain the + consent of, pay or render an accounting to the other for any use or + distribution of your contribution. + +3. With respect to any patents you own, or that you can license without payment +to any third party, you hereby grant to us a perpetual, irrevocable, +non-exclusive, worldwide, no-charge, royalty-free license to: + + * make, have made, use, sell, offer to sell, import, and otherwise transfer + your contribution in whole or in part, alone or in combination with or + included in any product, work or materials arising out of the project to + which your contribution was submitted, and + + * at our option, to sublicense these same rights to third parties through + multiple levels of sublicensees or other licensing arrangements. + +4. Except as set out above, you keep all right, title, and interest in your +contribution. The rights that you grant to us under these terms are effective +on the date you first submitted a contribution to us, even if your submission +took place before the date you sign these terms. + +5. You covenant, represent, warrant and agree that: + + * Each contribution that you submit is and shall be an original work of + authorship and you can legally grant the rights set out in this SCA; + + * to the best of your knowledge, each contribution will not violate any + third party's copyrights, trademarks, patents, or other intellectual + property rights; and + + * each contribution shall be in compliance with U.S. export control laws and + other applicable export and import laws. You agree to notify us if you + become aware of any circumstance which would make any of the foregoing + representations inaccurate in any respect. We may publicly disclose your + participation in the project, including the fact that you have signed the SCA. + +6. This SCA is governed by the laws of the State of California and applicable +U.S. Federal law. Any choice of law rules will not apply. + +7. Please place an “x” on one of the applicable statement below. Please do NOT +mark both statements: + + * [x] I am signing on behalf of myself as an individual and no other person + or entity, including my employer, has or will have rights with respect to my + contributions. + + * [ ] I am signing on behalf of my employer or a legal entity and I have the + actual authority to contractually bind that entity. + +## Contributor Details + +| Field | Entry | +|------------------------------- | -------------------- | +| Name | Juan Gutiérrez | +| Company name (if applicable) | Ojtli | +| Title or role (if applicable) | | +| Date | 2020-08-28 | +| GitHub username | jgutix | +| Website (optional) | ojtli.app | diff --git a/website/docs/usage/linguistic-features.md b/website/docs/usage/linguistic-features.md index 9031a356f..53ea2dfa6 100644 --- a/website/docs/usage/linguistic-features.md +++ b/website/docs/usage/linguistic-features.md @@ -915,7 +915,7 @@ expressions – for example, [`compile_suffix_regex`](/api/top-level#util.compile_suffix_regex): ```python -suffixes = nlp.Defaults.suffixes + (r'''-+$''',) +suffixes = nlp.Defaults.suffixes + [r'''-+$''',] suffix_regex = spacy.util.compile_suffix_regex(suffixes) nlp.tokenizer.suffix_search = suffix_regex.search ``` From f7a25d69f798841fcf54d924a6c84b784b2bc882 Mon Sep 17 00:00:00 2001 From: Sofie Van Landeghem Date: Tue, 1 Sep 2020 21:57:52 +0200 Subject: [PATCH 33/44] Bugfix in merge_entities (#6005) * failing test * bugfix --- spacy/tests/regression/test_issue5918.py | 31 ++++++++++++++++++++++++ spacy/tokens/_retokenize.pyx | 6 +++-- 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 spacy/tests/regression/test_issue5918.py diff --git a/spacy/tests/regression/test_issue5918.py b/spacy/tests/regression/test_issue5918.py new file mode 100644 index 000000000..2dee26d82 --- /dev/null +++ b/spacy/tests/regression/test_issue5918.py @@ -0,0 +1,31 @@ +# coding: utf8 +from __future__ import unicode_literals + +from spacy.lang.en import English +from spacy.pipeline import merge_entities, EntityRuler + + +def test_issue5918(): + # Test edge case when merging entities. + nlp = English() + patterns = [ + {"label": "ORG", "pattern": "Digicon Inc"}, + {"label": "ORG", "pattern": "Rotan Mosle Inc's"}, + {"label": "ORG", "pattern": "Rotan Mosle Technology Partners Ltd"}, + ] + ruler = EntityRuler(nlp) + ruler.add_patterns(patterns) + nlp.add_pipe(ruler) + + text = """ + Digicon Inc said it has completed the previously-announced disposition + of its computer systems division to an investment group led by + Rotan Mosle Inc's Rotan Mosle Technology Partners Ltd affiliate. + """ + doc = nlp(text) + assert len(doc.ents) == 3 + # make it so that the third span's head is within the entity (ent_iob=I) + # bug #5918 would wrongly transfer that I to the full entity, resulting in 2 instead of 3 final ents. + doc[29].head = doc[33] + doc = merge_entities(doc) + assert len(doc.ents) == 3 diff --git a/spacy/tokens/_retokenize.pyx b/spacy/tokens/_retokenize.pyx index ce8e510d6..abc9b731b 100644 --- a/spacy/tokens/_retokenize.pyx +++ b/spacy/tokens/_retokenize.pyx @@ -175,6 +175,8 @@ def _merge(Doc doc, merges): spans.append(span) # House the new merged token where it starts token = &doc.c[start] + start_ent_iob = doc.c[start].ent_iob + start_ent_type = doc.c[start].ent_type # Initially set attributes to attributes of span root token.tag = doc.c[span.root.i].tag token.pos = doc.c[span.root.i].pos @@ -187,8 +189,8 @@ def _merge(Doc doc, merges): merged_iob = 3 # If start token is I-ENT and previous token is of the same # type, then I-ENT (could check I-ENT from start to span root) - if doc.c[start].ent_iob == 1 and start > 0 \ - and doc.c[start].ent_type == token.ent_type \ + if start_ent_iob == 1 and start > 0 \ + and start_ent_type == token.ent_type \ and doc.c[start - 1].ent_type == token.ent_type: merged_iob = 1 token.ent_iob = merged_iob From 92d7832a86b9bb525cfc02f97378712ff4770cfb Mon Sep 17 00:00:00 2001 From: Marek Grzenkowicz Date: Wed, 2 Sep 2020 15:15:45 +0200 Subject: [PATCH 34/44] Fix off-by-one error for best iteration calculation (closes #6014) (#6016) --- spacy/cli/train.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spacy/cli/train.py b/spacy/cli/train.py index e24aa8a95..0614c7519 100644 --- a/spacy/cli/train.py +++ b/spacy/cli/train.py @@ -554,9 +554,10 @@ def train( iter_since_best = 0 best_score = current_score if iter_since_best >= n_early_stopping: + iter_current = i + 1 msg.text( "Early stopping, best iteration " - "is: {}".format(i - iter_since_best) + "is: {}".format(iter_current - iter_since_best) ) msg.text( "Best score = {}; Final iteration " From 2160aafec689b72ccbb4c69cf75e132bfa86862a Mon Sep 17 00:00:00 2001 From: Brad Jascob Date: Fri, 4 Sep 2020 02:03:35 -0600 Subject: [PATCH 35/44] Updates spaCy Universe for amrlib (#6020) * Updates spaCy Universe for amrlib * Updates to doc based on feedback --- website/meta/universe.json | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/website/meta/universe.json b/website/meta/universe.json index cf361435f..bd2cff65a 100644 --- a/website/meta/universe.json +++ b/website/meta/universe.json @@ -1967,6 +1967,28 @@ "category": ["pipeline"], "tags": ["inflection", "lemmatizer"] }, + { + "id": "amrlib", + "slogan": "A python library that makes AMR parsing, generation and visualization simple.", + "description": "amrlib is a python module and spaCy add-in for Abstract Meaning Representation (AMR). The system can parse sentences to AMR graphs or generate text from existing graphs. It includes a GUI for visualization and experimentation.", + "github": "bjascob/amrlib", + "pip": "amrlib", + "code_example": [ + "import spacy", + "import amrlib", + "amrlib.setup_spacy_extension()", + "nlp = spacy.load('en_core_web_sm')", + "doc = nlp('This is a test of the spaCy extension. The test has multiple sentences.')", + "graphs = doc._.to_amr()", + "for graph in graphs:", + " print(graph)" + ], + "author": "Brad Jascob", + "author_links": { + "github": "bjascob" + }, + "category": ["pipeline"] + }, { "id": "blackstone", "title": "Blackstone", From 0a27fca55709e166775a51a14fd2645eab3a5ee6 Mon Sep 17 00:00:00 2001 From: holubvl3 <47881982+holubvl3@users.noreply.github.com> Date: Fri, 4 Sep 2020 11:00:14 +0200 Subject: [PATCH 36/44] Create examples.py (#5985) * Create examples.py * Create tag_map.py * Delete tag_map.py * Update examples.py formatting: add empty line Co-authored-by: Sofie Van Landeghem --- spacy/lang/cs/examples.py | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 spacy/lang/cs/examples.py diff --git a/spacy/lang/cs/examples.py b/spacy/lang/cs/examples.py new file mode 100644 index 000000000..fe8a9f6d1 --- /dev/null +++ b/spacy/lang/cs/examples.py @@ -0,0 +1,42 @@ +# coding: utf8 +from __future__ import unicode_literals + + +""" +Example sentences to test spaCy and its language models. +>>> from spacy.lang.cs.examples import sentences +>>> docs = nlp.pipe(sentences) +""" + + +sentences = [ + "Máma mele maso.", + "Příliš žluťoučký kůň úpěl ďábelské ódy.", + "ArcGIS je geografický informační systém určený pro práci s prostorovými daty." , + "Může data vytvářet a spravovat, ale především je dokáže analyzovat, najít v nich nové vztahy a vše přehledně vizualizovat.", + "Dnes je krásné počasí.", + "Nestihl autobus, protože pozdě vstal z postele.", + "Než budeš jíst, jdi si umýt ruce.", + "Dnes je neděle.", + "Škola začíná v 8:00.", + "Poslední autobus jede v jedenáct hodin večer.", + "V roce 2020 se téměř zastavila světová ekonomika.", + "Praha je hlavní město České republiky.", + "Kdy půjdeš ven?", + "Kam pojedete na dovolenou?", + "Kolik stojí iPhone 12?", + "Průměrná mzda je 30000 Kč.", + "1. ledna 1993 byla založena Česká republika.", + "Co se stalo 21.8.1968?", + "Moje telefonní číslo je 712 345 678.", + "Můj pes má blechy.", + "Když bude přes noc více než 20°, tak nás čeká tropická noc.", + "Kolik bylo letos tropických nocí?", + "Jak to mám udělat?", + "Bydlíme ve čtvrtém patře.", + "Vysílají 30. sezonu seriálu Simpsonovi.", + "Adresa ČVUT je Thákurova 7, 166 29, Praha 6.", + "Jaké PSČ má Praha 1?", + "PSČ Prahy 1 je 110 00.", + "Za 20 minut jede vlak.", + ] From ba600f91c5e317984875ac4bf61961a8b537122e Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 13:15:44 +0200 Subject: [PATCH 37/44] Tidy up imports --- spacy/language.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spacy/language.py b/spacy/language.py index 17ca020ca..1eac3cbaf 100644 --- a/spacy/language.py +++ b/spacy/language.py @@ -1,9 +1,8 @@ from typing import Optional, Any, Dict, Callable, Iterable, Union, List, Pattern -from typing import Tuple, Iterator, Optional +from typing import Tuple, Iterator from dataclasses import dataclass import random import itertools -import weakref import functools from contextlib import contextmanager from copy import deepcopy From df0b68f60eda43865d4b7271c55670784b214ade Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 13:19:16 +0200 Subject: [PATCH 38/44] Remove unicode declarations and update language data --- spacy/lang/cs/examples.py | 10 +++----- spacy/lang/cs/lex_attrs.py | 5 +--- spacy/lang/he/lex_attrs.py | 6 ++--- spacy/lang/ne/stop_words.py | 4 --- spacy/lang/sa/__init__.py | 10 +------- spacy/lang/sa/examples.py | 4 --- spacy/lang/sa/lex_attrs.py | 32 +++++++++++------------- spacy/lang/sa/stop_words.py | 3 --- spacy/tests/lang/cs/test_text.py | 3 --- spacy/tests/lang/ne/test_text.py | 3 --- spacy/tests/lang/sa/test_text.py | 3 --- spacy/tests/regression/test_issue5838.py | 14 +++++------ spacy/tests/regression/test_issue5918.py | 3 --- 13 files changed, 27 insertions(+), 73 deletions(-) diff --git a/spacy/lang/cs/examples.py b/spacy/lang/cs/examples.py index fe8a9f6d1..a30b5ac14 100644 --- a/spacy/lang/cs/examples.py +++ b/spacy/lang/cs/examples.py @@ -1,7 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - - """ Example sentences to test spaCy and its language models. >>> from spacy.lang.cs.examples import sentences @@ -10,9 +6,9 @@ Example sentences to test spaCy and its language models. sentences = [ - "Máma mele maso.", + "Máma mele maso.", "Příliš žluťoučký kůň úpěl ďábelské ódy.", - "ArcGIS je geografický informační systém určený pro práci s prostorovými daty." , + "ArcGIS je geografický informační systém určený pro práci s prostorovými daty.", "Může data vytvářet a spravovat, ale především je dokáže analyzovat, najít v nich nové vztahy a vše přehledně vizualizovat.", "Dnes je krásné počasí.", "Nestihl autobus, protože pozdě vstal z postele.", @@ -39,4 +35,4 @@ sentences = [ "Jaké PSČ má Praha 1?", "PSČ Prahy 1 je 110 00.", "Za 20 minut jede vlak.", - ] +] diff --git a/spacy/lang/cs/lex_attrs.py b/spacy/lang/cs/lex_attrs.py index 368cab6c8..530d1d5eb 100644 --- a/spacy/lang/cs/lex_attrs.py +++ b/spacy/lang/cs/lex_attrs.py @@ -1,6 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - from ...attrs import LIKE_NUM _num_words = [ @@ -43,7 +40,7 @@ _num_words = [ "kvadrilion", "kvadriliarda", "kvintilion", - ] +] def like_num(text): diff --git a/spacy/lang/he/lex_attrs.py b/spacy/lang/he/lex_attrs.py index 9eab93ae4..2953e7592 100644 --- a/spacy/lang/he/lex_attrs.py +++ b/spacy/lang/he/lex_attrs.py @@ -1,6 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - from ...attrs import LIKE_NUM _num_words = [ @@ -73,6 +70,7 @@ _ordinal_words = [ "עשירי", ] + def like_num(text): if text.startswith(("+", "-", "±", "~")): text = text[1:] @@ -84,7 +82,7 @@ def like_num(text): num, denom = text.split("/") if num.isdigit() and denom.isdigit(): return True - + if text in _num_words: return True diff --git a/spacy/lang/ne/stop_words.py b/spacy/lang/ne/stop_words.py index f008697d0..8470297b9 100644 --- a/spacy/lang/ne/stop_words.py +++ b/spacy/lang/ne/stop_words.py @@ -1,7 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - - # Source: https://github.com/sanjaalcorps/NepaliStopWords/blob/master/NepaliStopWords.txt STOP_WORDS = set( diff --git a/spacy/lang/sa/__init__.py b/spacy/lang/sa/__init__.py index 8a4533341..345137817 100644 --- a/spacy/lang/sa/__init__.py +++ b/spacy/lang/sa/__init__.py @@ -1,18 +1,10 @@ -# coding: utf8 -from __future__ import unicode_literals - from .stop_words import STOP_WORDS from .lex_attrs import LEX_ATTRS - from ...language import Language -from ...attrs import LANG class SanskritDefaults(Language.Defaults): - lex_attr_getters = dict(Language.Defaults.lex_attr_getters) - lex_attr_getters.update(LEX_ATTRS) - lex_attr_getters[LANG] = lambda text: "sa" - + lex_attr_getters = LEX_ATTRS stop_words = STOP_WORDS diff --git a/spacy/lang/sa/examples.py b/spacy/lang/sa/examples.py index 9d4fa1e49..60243c04c 100644 --- a/spacy/lang/sa/examples.py +++ b/spacy/lang/sa/examples.py @@ -1,7 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - - """ Example sentences to test spaCy and its language models. diff --git a/spacy/lang/sa/lex_attrs.py b/spacy/lang/sa/lex_attrs.py index c33be2ce4..f2b51650b 100644 --- a/spacy/lang/sa/lex_attrs.py +++ b/spacy/lang/sa/lex_attrs.py @@ -1,9 +1,5 @@ -# coding: utf8 -from __future__ import unicode_literals - from ...attrs import LIKE_NUM - # reference 1: https://en.wikibooks.org/wiki/Sanskrit/Numbers _num_words = [ @@ -106,26 +102,26 @@ _num_words = [ "सप्तनवतिः", "अष्टनवतिः", "एकोनशतम्", - "शतम्" + "शतम्", ] def like_num(text): - """ + """ Check if text resembles a number """ - if text.startswith(("+", "-", "±", "~")): - text = text[1:] - text = text.replace(",", "").replace(".", "") - if text.isdigit(): - return True - if text.count("/") == 1: - num, denom = text.split("/") - if num.isdigit() and denom.isdigit(): - return True - if text in _num_words: - return True - return False + if text.startswith(("+", "-", "±", "~")): + text = text[1:] + text = text.replace(",", "").replace(".", "") + if text.isdigit(): + return True + if text.count("/") == 1: + num, denom = text.split("/") + if num.isdigit() and denom.isdigit(): + return True + if text in _num_words: + return True + return False LEX_ATTRS = {LIKE_NUM: like_num} diff --git a/spacy/lang/sa/stop_words.py b/spacy/lang/sa/stop_words.py index aa51ceae0..30302a14d 100644 --- a/spacy/lang/sa/stop_words.py +++ b/spacy/lang/sa/stop_words.py @@ -1,6 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - # Source: https://gist.github.com/Akhilesh28/fe8b8e180f64b72e64751bc31cb6d323 STOP_WORDS = set( diff --git a/spacy/tests/lang/cs/test_text.py b/spacy/tests/lang/cs/test_text.py index d98961738..b834111b9 100644 --- a/spacy/tests/lang/cs/test_text.py +++ b/spacy/tests/lang/cs/test_text.py @@ -1,6 +1,3 @@ -# coding: utf-8 -from __future__ import unicode_literals - import pytest diff --git a/spacy/tests/lang/ne/test_text.py b/spacy/tests/lang/ne/test_text.py index 794f8fbdc..7dd971132 100644 --- a/spacy/tests/lang/ne/test_text.py +++ b/spacy/tests/lang/ne/test_text.py @@ -1,6 +1,3 @@ -# coding: utf-8 -from __future__ import unicode_literals - import pytest diff --git a/spacy/tests/lang/sa/test_text.py b/spacy/tests/lang/sa/test_text.py index 7c961bdae..41257a4d8 100644 --- a/spacy/tests/lang/sa/test_text.py +++ b/spacy/tests/lang/sa/test_text.py @@ -1,6 +1,3 @@ -# coding: utf-8 -from __future__ import unicode_literals - import pytest diff --git a/spacy/tests/regression/test_issue5838.py b/spacy/tests/regression/test_issue5838.py index c008c5aec..4e4d98beb 100644 --- a/spacy/tests/regression/test_issue5838.py +++ b/spacy/tests/regression/test_issue5838.py @@ -1,15 +1,13 @@ -# coding: utf8 -from __future__ import unicode_literals - from spacy.lang.en import English from spacy.tokens import Span from spacy import displacy -SAMPLE_TEXT = '''First line + +SAMPLE_TEXT = """First line Second line, with ent Third line Fourth line -''' +""" def test_issue5838(): @@ -18,8 +16,8 @@ def test_issue5838(): nlp = English() doc = nlp(SAMPLE_TEXT) - doc.ents = [Span(doc, 7, 8, label='test')] + doc.ents = [Span(doc, 7, 8, label="test")] - html = displacy.render(doc, style='ent') - found = html.count('
') + html = displacy.render(doc, style="ent") + found = html.count("
") assert found == 4 diff --git a/spacy/tests/regression/test_issue5918.py b/spacy/tests/regression/test_issue5918.py index 2dee26d82..3b96009a8 100644 --- a/spacy/tests/regression/test_issue5918.py +++ b/spacy/tests/regression/test_issue5918.py @@ -1,6 +1,3 @@ -# coding: utf8 -from __future__ import unicode_literals - from spacy.lang.en import English from spacy.pipeline import merge_entities, EntityRuler From 90043a6f9b7da3f11c7b11b6d1cfcf1de2824836 Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 13:42:33 +0200 Subject: [PATCH 39/44] Tidy up and auto-format --- spacy/language.py | 2 -- spacy/tests/lang/en/test_text.py | 10 +--------- spacy/tests/pipeline/test_tagger.py | 4 ++-- spacy/tests/test_tok2vec.py | 1 + 4 files changed, 4 insertions(+), 13 deletions(-) diff --git a/spacy/language.py b/spacy/language.py index 1eac3cbaf..70655bafd 100644 --- a/spacy/language.py +++ b/spacy/language.py @@ -1376,8 +1376,6 @@ class Language: docs = (self.make_doc(text) for text in texts) for pipe in pipes: docs = pipe(docs) - - nr_seen = 0 for doc in docs: yield doc diff --git a/spacy/tests/lang/en/test_text.py b/spacy/tests/lang/en/test_text.py index d67bcac62..733e814f7 100644 --- a/spacy/tests/lang/en/test_text.py +++ b/spacy/tests/lang/en/test_text.py @@ -56,15 +56,7 @@ def test_lex_attrs_like_number(en_tokenizer, text, match): assert tokens[0].like_num == match -@pytest.mark.parametrize( - "word", - [ - "third", - "Millionth", - "100th", - "Hundredth", - ] -) +@pytest.mark.parametrize("word", ["third", "Millionth", "100th", "Hundredth"]) def test_en_lex_attrs_like_number_for_ordinal(word): assert like_num(word) diff --git a/spacy/tests/pipeline/test_tagger.py b/spacy/tests/pipeline/test_tagger.py index a1aa7e1e1..540301eac 100644 --- a/spacy/tests/pipeline/test_tagger.py +++ b/spacy/tests/pipeline/test_tagger.py @@ -71,6 +71,6 @@ def test_overfitting_IO(): def test_tagger_requires_labels(): nlp = English() - tagger = nlp.add_pipe("tagger") + nlp.add_pipe("tagger") with pytest.raises(ValueError): - optimizer = nlp.begin_training() + nlp.begin_training() diff --git a/spacy/tests/test_tok2vec.py b/spacy/tests/test_tok2vec.py index 1068b662d..9f0f4b74a 100644 --- a/spacy/tests/test_tok2vec.py +++ b/spacy/tests/test_tok2vec.py @@ -135,6 +135,7 @@ TRAIN_DATA = [ ("Eat blue ham", {"tags": ["V", "J", "N"]}), ] + def test_tok2vec_listener(): orig_config = Config().from_str(cfg_string) nlp, config = util.load_model_from_config(orig_config, auto_fill=True, validate=True) From d7cc2ee72da7bec6de024a1a1be228c3ccd8a29e Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 14:05:55 +0200 Subject: [PATCH 40/44] Fix tests --- spacy/schemas.py | 14 ++++++++------ spacy/tests/conftest.py | 4 ++-- spacy/tests/matcher/test_pattern_validation.py | 6 +++--- spacy/tests/regression/test_issue5918.py | 5 ++--- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/spacy/schemas.py b/spacy/schemas.py index be8db6a99..59af53301 100644 --- a/spacy/schemas.py +++ b/spacy/schemas.py @@ -57,12 +57,13 @@ def validate_token_pattern(obj: list) -> List[str]: class TokenPatternString(BaseModel): - REGEX: Optional[StrictStr] - IN: Optional[List[StrictStr]] - NOT_IN: Optional[List[StrictStr]] + REGEX: Optional[StrictStr] = Field(None, alias="regex") + IN: Optional[List[StrictStr]] = Field(None, alias="in") + NOT_IN: Optional[List[StrictStr]] = Field(None, alias="not_in") class Config: extra = "forbid" + allow_population_by_field_name = True # allow alias and field name @validator("*", pre=True, each_item=True, allow_reuse=True) def raise_for_none(cls, v): @@ -72,9 +73,9 @@ class TokenPatternString(BaseModel): class TokenPatternNumber(BaseModel): - REGEX: Optional[StrictStr] = None - IN: Optional[List[StrictInt]] = None - NOT_IN: Optional[List[StrictInt]] = None + REGEX: Optional[StrictStr] = Field(None, alias="regex") + IN: Optional[List[StrictInt]] = Field(None, alias="in") + NOT_IN: Optional[List[StrictInt]] = Field(None, alias="not_in") EQ: Union[StrictInt, StrictFloat] = Field(None, alias="==") NEQ: Union[StrictInt, StrictFloat] = Field(None, alias="!=") GEQ: Union[StrictInt, StrictFloat] = Field(None, alias=">=") @@ -84,6 +85,7 @@ class TokenPatternNumber(BaseModel): class Config: extra = "forbid" + allow_population_by_field_name = True # allow alias and field name @validator("*", pre=True, each_item=True, allow_reuse=True) def raise_for_none(cls, v): diff --git a/spacy/tests/conftest.py b/spacy/tests/conftest.py index 3cc6bad75..e17199a08 100644 --- a/spacy/tests/conftest.py +++ b/spacy/tests/conftest.py @@ -46,7 +46,7 @@ def ca_tokenizer(): @pytest.fixture(scope="session") def cs_tokenizer(): - return get_lang_class("cs").Defaults.create_tokenizer() + return get_lang_class("cs")().tokenizer @pytest.fixture(scope="session") @@ -211,7 +211,7 @@ def ru_lemmatizer(): @pytest.fixture(scope="session") def sa_tokenizer(): - return get_lang_class("sa").Defaults.create_tokenizer() + return get_lang_class("sa")().tokenizer @pytest.fixture(scope="session") diff --git a/spacy/tests/matcher/test_pattern_validation.py b/spacy/tests/matcher/test_pattern_validation.py index 79300374e..4d21aea81 100644 --- a/spacy/tests/matcher/test_pattern_validation.py +++ b/spacy/tests/matcher/test_pattern_validation.py @@ -61,10 +61,10 @@ def test_minimal_pattern_validation(en_vocab, pattern, n_errors, n_min_errors): matcher.add("TEST", [pattern]) -def test_pattern_warnings(en_vocab): +def test_pattern_errors(en_vocab): matcher = Matcher(en_vocab) # normalize "regex" to upper like "text" matcher.add("TEST1", [[{"text": {"regex": "regex"}}]]) - # warn if subpattern attribute isn't recognized and processed - with pytest.warns(UserWarning): + # error if subpattern attribute isn't recognized and processed + with pytest.raises(MatchPatternError): matcher.add("TEST2", [[{"TEXT": {"XX": "xx"}}]]) diff --git a/spacy/tests/regression/test_issue5918.py b/spacy/tests/regression/test_issue5918.py index 3b96009a8..66280f012 100644 --- a/spacy/tests/regression/test_issue5918.py +++ b/spacy/tests/regression/test_issue5918.py @@ -1,18 +1,17 @@ from spacy.lang.en import English -from spacy.pipeline import merge_entities, EntityRuler +from spacy.pipeline import merge_entities def test_issue5918(): # Test edge case when merging entities. nlp = English() + ruler = nlp.add_pipe("entity_ruler") patterns = [ {"label": "ORG", "pattern": "Digicon Inc"}, {"label": "ORG", "pattern": "Rotan Mosle Inc's"}, {"label": "ORG", "pattern": "Rotan Mosle Technology Partners Ltd"}, ] - ruler = EntityRuler(nlp) ruler.add_patterns(patterns) - nlp.add_pipe(ruler) text = """ Digicon Inc said it has completed the previously-announced disposition From afdf14c717f93851f9f0db28008a6ba1e206eb2d Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 14:21:41 +0200 Subject: [PATCH 41/44] Remove Google Analytics [ci skip] --- website/gatsby-config.js | 9 --------- website/meta/site.json | 1 - website/package.json | 1 - 3 files changed, 11 deletions(-) diff --git a/website/gatsby-config.js b/website/gatsby-config.js index 752628749..6c67de6ea 100644 --- a/website/gatsby-config.js +++ b/website/gatsby-config.js @@ -140,15 +140,6 @@ module.exports = { icon: favicon, }, }, - { - resolve: `gatsby-plugin-google-analytics`, - options: { - trackingId: site.analytics, - head: false, - anonymize: true, - respectDNT: true, - }, - }, { resolve: `gatsby-plugin-plausible`, options: { domain }, diff --git a/website/meta/site.json b/website/meta/site.json index 7e6f4c692..d1162edf9 100644 --- a/website/meta/site.json +++ b/website/meta/site.json @@ -17,7 +17,6 @@ "github": "explosion" }, "theme": "#09a3d5", - "analytics": "UA-58931649-1", "newsletter": { "user": "spacy.us12", "id": "83b0498b1e7fa3c91ce68c3f1", diff --git a/website/package.json b/website/package.json index 0ba7159fe..40018f532 100644 --- a/website/package.json +++ b/website/package.json @@ -20,7 +20,6 @@ "gatsby-image": "^2.0.29", "gatsby-mdx": "^0.3.6", "gatsby-plugin-catch-links": "^2.0.11", - "gatsby-plugin-google-analytics": "^2.0.14", "gatsby-plugin-manifest": "^2.0.17", "gatsby-plugin-offline": "^2.0.24", "gatsby-plugin-plausible": "0.0.6", From 86510227749be0c0db156672fc8f0d8f5401505f Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 14:27:46 +0200 Subject: [PATCH 42/44] Fix outbound link [ci skip] --- website/src/components/link.js | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/website/src/components/link.js b/website/src/components/link.js index acded7d0d..178cb7105 100644 --- a/website/src/components/link.js +++ b/website/src/components/link.js @@ -1,7 +1,6 @@ import React, { Fragment } from 'react' import PropTypes from 'prop-types' import { Link as GatsbyLink } from 'gatsby' -import { OutboundLink } from 'gatsby-plugin-google-analytics' import classNames from 'classnames' import Icon from './icon' @@ -81,15 +80,9 @@ export default function Link({ const rel = isInternal ? null : 'noopener nofollow noreferrer' return ( - + {content} - + ) } From c28f73ddfdf346f6e86e833428bafd9f8d404798 Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 14:41:55 +0200 Subject: [PATCH 43/44] Update package-lock.json --- website/package-lock.json | 8 -------- 1 file changed, 8 deletions(-) diff --git a/website/package-lock.json b/website/package-lock.json index 9b449aca9..d995f910e 100644 --- a/website/package-lock.json +++ b/website/package-lock.json @@ -12818,14 +12818,6 @@ "escape-string-regexp": "^1.0.5" } }, - "gatsby-plugin-google-analytics": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/gatsby-plugin-google-analytics/-/gatsby-plugin-google-analytics-2.0.14.tgz", - "integrity": "sha512-sFD73d9isJQknnDAAkDidaybHJx6VIaLfy3nO3DwbFaitvZ08RimbynYOkcWAeA0zwwix2RgAvbq/9pAmtTb/A==", - "requires": { - "@babel/runtime": "^7.0.0" - } - }, "gatsby-plugin-manifest": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/gatsby-plugin-manifest/-/gatsby-plugin-manifest-2.0.17.tgz", From f9550b4493335fe9d64b4ac482e2de7d041535a4 Mon Sep 17 00:00:00 2001 From: Ines Montani Date: Fri, 4 Sep 2020 14:42:12 +0200 Subject: [PATCH 44/44] Fix components in meta.json and website [ci skip] --- spacy/language.py | 1 + website/src/templates/models.js | 2 ++ 2 files changed, 3 insertions(+) diff --git a/spacy/language.py b/spacy/language.py index 17ca020ca..3b307e3f4 100644 --- a/spacy/language.py +++ b/spacy/language.py @@ -211,6 +211,7 @@ class Language: # TODO: Adding this back to prevent breaking people's code etc., but # we should consider removing it self._meta["pipeline"] = list(self.pipe_names) + self._meta["components"] = list(self.component_names) self._meta["disabled"] = list(self.disabled) return self._meta diff --git a/website/src/templates/models.js b/website/src/templates/models.js index 1bcdd4859..afeefde64 100644 --- a/website/src/templates/models.js +++ b/website/src/templates/models.js @@ -167,6 +167,8 @@ const Model = ({ name, langId, langName, baseUrl, repo, compatibility, hasExampl const releaseUrl = `https://github.com/${repo}/releases/${releaseTag}` const pipeline = meta.pipeline && join(meta.pipeline.map(p => {p})) + const components = + meta.components && join(meta.components.map(p => {p})) const sources = formatSources(meta.sources) const author = !meta.url ? meta.author : {meta.author} const licenseUrl = licenses[meta.license] ? licenses[meta.license].url : null