여러 형태소분석기를 사용하다 보면, 형태소분석기에 따라 사용자 사전
을 사용할 수 있는 분석기가 있고, 사용할 수 없는 분석기가 있다.
형태소분석기에 사용자 사전을 넣을 수 없는 경우, 코드 단계에서 시스템 사전을 수정하여 재빌드 해야한다
형태소 분석기가 사용자 사전(user dictionary)
을 참조할 때 오분석(misanalysis)이나 과분석(overanalysis)이 발생할 수 있다. 사용자 사전은 특정 단어나 용어에 대한 정보를 포함하고 있어, 형태소 분석기가 이를 우선적으로 고려하여 분석을 수행하게 된다. 그러나 사전에 잘못된 정보가 입력되어 있거나, 문맥을 고려하지 않은 채 단어를 분석할 때 오류가 발생할 수 있다.
사용자 사전에 '감기'라는 단어가 '감'과 '기'로 분리되어야 한다고 정의 했다면, '감기'라는 단어가 등장했을 때 이를 잘못 분리하여 분석할 수 있다. 또한 특정 전문 용어가 신조어, 인명 등이 사전에 등록되어 있지 않을 경우, 이러한 단어들이 잘못 분석되거나 여러 형태소로 과분석될 수 있다.
추세가 통계 기반 형태소분석으로 넘어왔다. 그런데 통계기반인 경우 최대 단점이 존재하는데 그것은 잘못된 사전이 등록되었을 경우다.
아버지가방에들어가신다
는 노리 기준으로 다음과 같다.
아버지/NNP,가/J,방/NNG,에/J,들어가/V,신다
말뭉치 기반으로 각 분해 될 예측 분해 정보와 전이율, 출현빈도 등이 설정되어 있어 해당 정보를 토대로 위와 같은 형태소분석을 진행한다.
만약에 사용자 사전에 아버지가방
이라고 명사로 등록해 버리면 어떻게 될까? 다음과 같은 상황이 발생하게 된다.
아버지가방
을 선분해 진행에들어가신다
가 토크나이징 대상에들어가신다
라는 학습 데이터가 존재하지 않음에들/어/가/신/다
처럼 토크나이징이 되어버림해당 문제가 발생하지 않으려면, binary dictionary
에 직접 등록하여 빌드를 진행해야 하는데, 그래야 에들어가신다
가 시작 문장이 아닌, 문맥을 통한 남은 문장인것으로 인식을 해서 나은 토크나이징 결과를 기대해 볼 수 있다.
검색서비스가 운영되고 있는 대부분의 사이트들은 모두 사용자 사전에 사용되고 있다. 초기 구축시 사전을 명확하게 나누고, (사용자 사전, 동의어 사전, 오타 사전 등) 특정 단어를 넣었을 때 이슈가 발생할 수 있는지, 또한 언어 전문가에게 자문을 구해서 진행을 해야 하지만 우리는 보통 그렇게 사용하지 않는다. 동의어 사전에 검색이 되어야 하는 모든 단어를 넣어 버린다. 사전적 의미의 동의어가 아닌 오타
, 영문식 한글
, 숫자
, 노출되어야하는 특정 키워드
...
규칙이 없이 모든게 들어가버리고, 이때 동의어사전을 통해 검색이 안되어버리니까 사용자 사전에 미리 넣어버린다. 이렇게 하면 점점 관리가 어려워지기 때문에 초기 구축과 룰이 중요하다.