💡 이 프로젝트는 경희대학교 캡스톤 디자인1 산학연계로 (주) 미리내 멘토와 경희대 학생과 팀을 이뤄 진행하였습니다.
모든 내용은 멘토 및 팀원과 토론을 통해 도출해낸 결과임을 알립니다.
사실 학부생이 머신러닝 모델의 구조를 바꾸거나 새로운 모델을 만들어내는 것은 쉬운일이 아니다.
이미 존재하는 모델 자체를 개선시키는 것 조차도 어려운 일이었다.
모델의 구조와 학습 방식을 공부하는 것도 어려운 일이었지만, 가장 힘들었던 이슈들을 적어보았다.
한국어 띄어쓰기 교정기의 목적에 따라, 검증 데이터의 형태 또한 달라져야 한다.
예를 들어
나는 자전거를 탈 수 있다.
라는 문장이 있을 때, 랜덤하게 띄어쓰기를 넣거나 삭제하면
나 는 자전 거를 탈수있 다 .
와 같은 문장을 만들어낼 수 있다.
그러나 위와 같은 문장은 현실적으로 사람들이 잘 범하지 않는 정도의 띄어쓰기 오류이다.
나는 자전거를 탈수있다.
위와 같은 문장 정도가 사람들이 현실적으로 범할 수 있는 띄어쓰기의 오류이다.
그렇다면 한국어 띄어쓰기 교정기의 성능 파악을 위해서는, 랜덤하게 띄어쓰기를 넣거나 삭제한 문장 보다는 사람들이 현실적으로 범할 수 있는 띄어쓰기 문제가 있는 문장을 사용해야 한다는 결론을 내릴 수 있다.
가장 큰 문제는, 이러한 데이터 자체가 존재하지 않는다는 것이다
개발 중에는 국립국의 말뭉치를 사용하였다.
출처: 국립국어원 모두의 말뭉치
위와 같이 다양한 목적의 corpus를 제공하고, 꾸준히 업데이트 하고 있는 것으로 보이지만, 띄어쓰기와 관련된 corpus는 발견할 수 없었다.
회사 내부에서 이러한 corpus를 직접 만들어 낼 리소스가 없었기 때문에 우리가 개발한 한국어 띄어쓰기 교정기가 우리의 목적에 적합한가를 판가름할 방법이 없었고, 결국 실 서비스에는 사용할 수 없다는 결론을 내렸다.
모델의 구조 자체가 어느정도는 구식이거나 데이터가 많을 수 있지만, 자모분해를 진행한 FastText를 학습시킬 때는 corpus 인코딩에만 48시간이 넘는 시간이 걸렸다.
다행이 정부지원 사업으로 GPU를 지원받아서 부담이 덜 했지만, GPU가 없는 경우 어떻게 학습시켰을지를 생각해보면 끔찍하다.
프로젝트 마감을 맞추기 위하여, 학습에 걸리는 시간 또한 꽤 묵직한 심리적 압박으로 다가 왔었다.