Я пытаюсь разработать класс, который маркирует предложение с предопределенным шаблоном. Мой класс определяется следующим образом:
class Token:
def __init__(self, text: str, begin: int, end: int, tid: int):
self.__text = text
self.__length = len(text)
self.__begin = begin
self.__end = end
self.__tid = tid
@property
def text(self) -> str:
return self.__text
@property
def begin(self) -> int:
return self.__begin
@property
def end(self) -> int:
return self.__end
@property
def tid(self) -> int:
return self.__tid
def __len__(self):
return self.__length
Поскольку этот класс используется для обработки больших документов с большим количеством токенов, создается много экземпляров. Я определил свой собственный класс токенизации следующим образом:
def tokenizer(sentence):
list_of_tokens = []
# tokenizing algorithm
# creating an instance of Token
# adding each instance into list_of_tokens
return list_of_tokens
Теперь мой вопрос состоит в том, правильно ли использовать @classmethod в python (как показано ниже), чтобы помочь в решении этой проблемы или создать еще одну функцию из класс, который делает это?
@classmethod
def tokenenizer(cls, sentence):
list_of_tokens = []
# tokenization
# create instance of Token with cls(*arg)
# add each token into list_of_tokens
return list_of_tokens # that holds objects of Token