Esempio n. 1
0
 def _parse(self):
     """
     오분석 패치 한 라인을 파싱한다.
     """
     if len(self.line) >= 2 and self.line.startswith('# '):
         self.is_sharp = True
         self.line = self.line[2:]
     cols = self.line.split('\t')
     if len(cols) != 3:
         if not self.is_sharp:
             self.err_msg = '[PARSE] number of columns must be 3, not {}'.format(
                 len(cols))
         return
     self.raw, left_str, right_str = cols
     if not self.raw:
         self.err_msg = '[PARSE] no raw string'
         return
     try:
         self.left = Morph.parse(left_str)
     except ParseError as par_err:
         self.err_msg = '[PARSE] {}'.format(par_err)
     try:
         self.right = Morph.parse(right_str)
     except ParseError as par_err:
         self.err_msg = '[PARSE] {}'.format(par_err)
Esempio n. 2
0
 def _parse(self):
     """
     기분석 사전 한 라인을 파싱한다.
     """
     if len(self.line) >= 2 and self.line.startswith('# '):
         self.is_sharp = True
         self.line = self.line[2:]
     cols = self.line.split('\t')
     if len(cols) != 2:
         if not self.is_sharp:
             self.err_msg = '[PARSE] number of columns must be 2, not {}'.format(len(cols))
         return
     self.word, morph_str = [c.strip() for c in cols]
     if not self.word:
         self.err_msg = '[PARSE] no word'
         return
     if len(self.word) > 2 and self.word[-1] == '*':
         self.is_pfx = True
         self.word = self.word[:-1].strip()
     elif ' ' in self.word:
         self.err_msg = '[PARSE] space in word'
         return
     try:
         self.morphs = Morph.parse(morph_str)
     except ParseError as par_err:
         self.err_msg = '[PARSE] {}'.format(par_err)