def _set_align(rsc_src, entries): # pylint: disable=invalid-name """ 음절과 형태소 분석 결과를 정렬한다. Args: rsc_src: (Aligner, restore dic, vocab out) resource triple Word: Word 타입 entries: 엔트리 리스트 """ bad_entries = [] for entry in entries: if entry.is_sharp: continue entry.left_align = align_patch(rsc_src, entry.raw, Morph.to_str(entry.left)) if not entry.left_align: entry.err_msg = 'fail to align left' bad_entries.append(entry) continue entry.right_align = align_patch(rsc_src, entry.raw, Morph.to_str(entry.right)) if not entry.right_align: entry.err_msg = 'fail to align right' bad_entries.append(entry) continue assert len(entry.left_align) == len(entry.right_align) print_errors(bad_entries)
def __str__(self): file_num = '{}:{}: '.format(self.file_name, self.line_num) if self.file_name else '' line = '# {}'.format(self.line) if self.is_sharp else self.line if self.err_msg: return '{}{}: "{}"'.format(file_num, self.err_msg, line) if self.is_sharp: return '{}: "{}"'.format(file_num, line) return '{}\t{}\t{}'.format(self.raw, Morph.to_str(self.left), Morph.to_str(self.right))
def key_str(self): """ 패치의 중복 검사를 하기 위해 원문과 left를 이용하여 키를 생성 Returns: 중복 생성 검사를 위한 키 """ return '{}\t{}'.format(self.raw, Morph.to_str(self.left))
def __str__(self): file_num = '{}:{}: '.format(self.file_name, self.line_num) if self.file_name else '' line = '# {}'.format(self.line) if self.is_sharp else self.line if self.err_msg: return '{}{}: "{}"'.format(file_num, self.err_msg, line) elif self.is_sharp: return '{}: "{}"'.format(file_num, line) return '{}{}\t{}'.format(self.word, '*' if self.is_pfx else '', Morph.to_str(self.morphs))
def _set_align(aligner, Word, entries): # pylint: disable=invalid-name """ 음절과 형태소 분석 결과를 정렬한다. Args: aligner: Aligner 객체 Word: Word 타입 entries: 엔트리 리스트 """ bad_entries = [] for entry in entries: if entry.is_sharp: continue word = Word.parse('\t'.join(['', entry.word, Morph.to_str(entry.morphs)]), '', 0) try: entry.align = aligner.align(word) except AlignError as map_exc: entry.err_msg = 'fail to align' logging.error(map_exc) bad_entries.append(entry) print_errors(bad_entries)