형태소 분석기 개발이 한창이다.
솔직히 C로 문자열 헨들링하기가 무척 고달프긴한데 나름대로 퍼포먼스가 좋아서 코딩수가 많은건 그리 문제되지 않는다.
C언어로 개발하지 않았다면 어느정도 속도문제에 대해서 분명 언젠가 불만이 나왔을거 같다는 생각까지 들게 했다.
왜냐면 어절에서 형태소를 분석해 내는데 음절테이블써치부터 마지막 사전써치까지 생각보다 많은 가능성을 타진해 보려면 코딩수는 둘째치고 퍼포먼스가 문제가 될수 있기 때문이다.
전에도 포스팅 했다시피 “음절 정보와 복수어 단위 정보를 이용한 한국어 형태소 분석 – 강승식”논문을 요약하고 정리해서 코드로 뽑아내는 중인데…
이부분에 알고리즘도 꽤 많이 나와있긴 하다. 그치만 정확도 상의 문제일지 모르겠지만 특히 조사가 시작되는 부분을 뽑아내는 알고리즘은 논문것을 그대로 적용하지는 않았다.
정확도에 문제가 있어 사전 검색횟수를 약간 높히고 조사 시작 부분에 더 많은 가능성을 부여를 해줘버렸다.
책에서는 조사 첫음절을 추측하는데 첫음절에 쓰이는 음절테이블을 조사하고 그리고 둘째음절 이상에서 쓰이는 음절을 테이블에서 조사하는 방법으로 시작음절을 판단하는데 나는 둘째 이상 음절사용 음절을 조사하는걸 뺐다.
그러니까 첫째 음절에만 나오는것들을 조사하고 조사 사전을 써치하는 방법으로 조사 분리를 하려 한 것이다.
물론 결과적으로 만족할만한 결과가 나오긴 했다.
이렇게 넘어가고 용언부분에서도 역시 어미 시작부분만 검색하고 사전을 조사하는 방법으로 어미 시작부분을 추출했고,
선어말 어미 부분에서는 “으”, “시”가 좀 문제가 되어서 어떻게 처리할지 방안을 고민중이다. 왜냐면 “으”, “시”를 포함하는 용언이 있기 때문이다. 이게 용언의 일부분인지 아니면 선어말 어미의 부분인지는 알고리즘 적으로 연구를 더 해봐야 할부분이다.(이걸 논문에서는 선어말 어미의 비결정성 이라고 하더군..)
아직 불규칙 용언의 처리 부분이 감도 안오는 상황이여서 여기까지 작업을 하긴 했고, 다음주에는 본격적으로 불규칙 용언 처리 부분에 손을 가져가야 할 차례인거 같다. 물론 비결정성 해결도 봐야하고….
형태소 분석기 개발4 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.