kss icon indicating copy to clipboard operation
kss copied to clipboard

'해', VV+EF` 글자가 사라지는 이슈

Open jinmang2 opened this issue 2 years ago • 1 comments

problem

QA task를 풀던 중 error 발생.

from kss import split_sentences
text = '감소한 반면에 해・공군의 점유율이 상대적으로 상승하였다. 해, 공 군 및 연구개발 분야의'
# split_sentences(text, backend="mecab") # backend mecab에서도 동일한 문제 발생
split_sentences(text, backend="pynori")
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)
      1 from kss import split_sentences
      2 text = '감소한 반면에 해・공군의 점유율이 상대적으로 상승하였다. 해, 공 군 및 연구개발 분야의'
----> 3 split_sentences(text)

    186 
    187     if isinstance(text, str):
--> 188         return results[0]
    189     else:
    190         return results

IndexError: list index out of range

최근에 commit된 3.4.3에서는 disable_mp_post_process 옵션으로 위 에러가 발생하지는 않으나 여전히 라는 단어가 사라지는 현상이 발생합니다.

>>> Original text
'감소한 반면에 해・공군의 점유율이 상대적으로 상승하였다. 해, 공 군 및 연구개발 분야의'
<<< Apply split_sentences func
'감소한 반면에 해・공군의 점유율이 상대적으로 상승하였다. , 공 군 및 연구개발 분야의'

tokenized results (pynori)

[('감', NNG), ('소', NNG), ('한', XSV+ETM), (' ', SP), ('반', NNG), ('면', NNG), ('에', JKB), (' ', SP), ('해', VV+EC), 
('・', SY), ('공', NNG), ('군', NNG), ('의', JKG), (' ', SP), ('점', NNG), ('유', NNG), ('율', XSN), ('이', JKS), (' ', SP),
('상', NNG), ('대', NNG), ('적', XSN), ('으', JKB), ('로', JKB), (' ', SP), ('상', NNG), ('승', NNG), ('하', XSV), 
('였', EP), ('다', EF), ('.', SF), (' ', SP),
('해', VV+EF), # <-- 이 토큰이 사라짐
(',', SC), (' ', SP), ('공', NR), (' ', SP), ('군', NNBC), (' ', SP), ('및', MAJ), (' ', SP), ('연', NNG), ('구', NNG), 
('개', NNG), ('발', NNG), (' ', SP), ('분', NNG), ('야', NNG), ('의', NNG)]
  • backend pynori, mecab 둘 다 동일하게 이슈 발생합니다.

원인?

https://github.com/hyunwoongko/kss/blob/c488bfad8047a972a29c3818463bf41ff8445ca4/kss/kss.py#L527-L528

위 코드에서 cur_statStats.DA_MORPH이라 False이며 not Table[cur_stat][eojeol.eojeol] & ID.NEXT1 또한 False로 (8이 나옴) ('해', VV+EF) 토큰이 사라지는데요, 해당 부분이 필요한 이유가 궁금합니다! (input text와 output text가 다른 경우가 많이 존재하는데 이쪽에서 이슈가 발생하는 것 같아서 질문드립니다.)

version

$ pip freeze | grep kss
$ python -V
kss==3.4.2
Python 3.8.12

jinmang2 avatar Apr 18 '22 18:04 jinmang2

해당 이슈와 연관있을까요?

  • https://github.com/hyunwoongko/kss/issues/16

jinmang2 avatar Apr 18 '22 18:04 jinmang2

3.6.4에서 해결되었습니다.

hyunwoongko avatar Nov 28 '22 13:11 hyunwoongko