def init_by_vocabulary(self, lemma_counter: Counter, lemma_to_word_forms: Dict[str, Set[WordForm]],
lemma_case: Dict[str, LemmaCase]):
"""
?????? ??????? ?? ???????????????? ??????
:param lemma_counter: Counter ?? ??????.
:param lemma_to_word_forms: ??????????? ?? ????? ? ?????? ????????? ????????? ??? ??? (?? ?????????)
:param lemma_case: ??????????? ?? ????? ? ??? ?????????????, ????????? ??? ???? ?????
"""
for i, (lemma, _) in enumerate(tqdm(lemma_counter.most_common(), desc="Init vocabulary")):
for word_form in lemma_to_word_forms[lemma]:
word_form.set_case(lemma_case[word_form.lemma])
self.word_forms.append(word_form)
self.word_form_indices[word_form] = len(self.word_forms) - 1
assert self.word_forms[self.word_form_indices[word_form]] == word_form
self.lemma_indices[word_form] = i + 1 # 0 - ?????????????? ??? ????????.
assert self.lemma_indices[SEQ_END_WF] == 1
评论列表
文章目录