From f655a079434f1bb3755fe411d29dfe1b4b966e8f Mon Sep 17 00:00:00 2001 From: Maja Jablonska <majajjablonska@gmail.com> Date: Wed, 15 Nov 2023 19:45:32 +1100 Subject: [PATCH] Small api.py fixes --- combo/data/api.py | 33 ++------------------------------- 1 file changed, 2 insertions(+), 31 deletions(-) diff --git a/combo/data/api.py b/combo/data/api.py index 82cca44..c8e08de 100644 --- a/combo/data/api.py +++ b/combo/data/api.py @@ -8,35 +8,6 @@ from combo.data.tokenizers import Token import conllu from overrides import overrides - -# Moze NER moglby uzywac tej 11tej kolumny? -@dataclass -class OldToken: - id: Optional[Union[int, Tuple]] = None # czemu tuple? multiwordy? - token: Optional[str] = None - lemma: Optional[str] = None - upostag: Optional[str] = None - xpostag: Optional[str] = None - feats: Optional[str] = None - head: Optional[int] = None # Identyfikator innego tokena, ktory jest nadrzednikiem, drzewo zaleznosciowe - deprel: Optional[str] = None - deps: Optional[str] = None - misc: Optional[str] = None # wszystko, najczesciej czy jest spacja (np. po "spi" w "spi." nie m spacji) - # nie predykujemy tego, to jest robione na poziomie tokenizera - # czasem wpisuja sie tam tez dodatkowe informacje, np. teksty z transliteracjami - # to jest w formacie conllu - semrel: Optional[str] = None # w conllu w formacie 10kolumnowym tego nie ma - # ale sa pomysly, zeby semantyke podawac jako kolejna kolumne - # moze ja zostawmy - # np. jesli mamy okoliczniki, to deprel to "adjunct", np. "w lozeczku" mamy okolicznik, - # ale nie mamy informacji o tym, ze jest to okolicznyk miejsca, i to mogloby byc w tym polu - # i tu pojawilaby sie informacja "locative" - # Niestety so far zle sie to predykuje - # Zostawic na przyszlosc, ale musi byc calkowicie opcjonalna!!! - # Nie powinno byc predykcji tego z defaultu, bo walidatory nie chca miec 11 kolumn. - embeddings: Dict[str, List[float]] = field(default_factory=list, repr=False) - - @dataclass class Sentence: tokens: List[Token] = field(default_factory=list) @@ -54,14 +25,14 @@ class Sentence: return len(self.tokens) -class _TokenList(conllu.TokenList): +class _TokenList(conllu.models.TokenList): @overrides def __repr__(self): return 'TokenList<' + ', '.join(token['text'] for token in self) + '>' -def sentence2conllu(sentence: Sentence, keep_semrel: bool = True) -> conllu.TokenList: +def sentence2conllu(sentence: Sentence, keep_semrel: bool = True) -> conllu.models.TokenList: tokens = [] for token in sentence.tokens: token_dict = collections.OrderedDict(token.as_dict(keep_semrel)) -- GitLab