lovit/sejong_corpus_cleaner

여러 개의 어미들이 동시에 축약되는 경우: 세워져 = 세우/VV + 어/EC + 지/VX + 어/EC)

Closed this issue · 2 comments

lovit commented

현재의 리펙토링 코드는 아래의 경우처럼 여러 개의 어미들이 동시에 축약되는 경우 잘못된 분석을 수행한다.

세워져 (세우/VV + 어/EC + 지/VX + 어/EC)	->	세워져 (세지/Verb + 어/Eomi)

비슷한 경우는 아래와 같다.

밝혀져 = (밝히/VV, 어/EC, 지/VX, 어/EC)
뭡니까. = (무엇/NP, 이/VCP, ㅂ니까/EF, ./SF)
정해져 = (정하/VV, 아/EC, 지/VX, 어/EC)
짜여져 = (짜이/VV, 어/EC, 지/VX, 어/EC)
스쳐갔다. = (스치/VV, 어/EC, 가/VX, 았/EP, 다/EF, ./SF)
lovit commented

원인은 용언의 합성어의 경우, 뒷부분의 용언 지/VX 이후에 등장하는 형태소의 길이를 기준으로 L 과 R 의 경계를 측정하기 때문이다. 그러나 어/EC 는 축약 과정에서 생략된다. 그렇기 때문에 아래의 경우는 제대로 작동한다.

세워진 (세우/VV + 어/EC + 지/VX + ㄴ/EC)	->	["세워진 (세워지/Verb + ㄴ/Eomi)"]
lovit commented

해결법은 활용된 형태에서 boundary point 로 추정한 지점 (마지막 어간의 마지막 음절 부분)의 모음이 형태소의 모음과 같은지 확인함으로써 어/EC 가 축약되었는지 확인할 수 있다.