NLP 형태소분석과 사용자 사전

JunMyung Lee·2024년 1월 26일
0

개발지식

목록 보기
14/14

여러 형태소분석기를 사용하다 보면, 형태소분석기에 따라 사용자 사전을 사용할 수 있는 분석기가 있고, 사용할 수 없는 분석기가 있다.

형태소분석기에 사용자 사전을 넣을 수 없는 경우, 코드 단계에서 시스템 사전을 수정하여 재빌드 해야한다

형태소 분석기가 사용자 사전(user dictionary)을 참조할 때 오분석(misanalysis)이나 과분석(overanalysis)이 발생할 수 있다. 사용자 사전은 특정 단어나 용어에 대한 정보를 포함하고 있어, 형태소 분석기가 이를 우선적으로 고려하여 분석을 수행하게 된다. 그러나 사전에 잘못된 정보가 입력되어 있거나, 문맥을 고려하지 않은 채 단어를 분석할 때 오류가 발생할 수 있다.

사용자 사전에 '감기'라는 단어가 '감'과 '기'로 분리되어야 한다고 정의 했다면, '감기'라는 단어가 등장했을 때 이를 잘못 분리하여 분석할 수 있다. 또한 특정 전문 용어가 신조어, 인명 등이 사전에 등록되어 있지 않을 경우, 이러한 단어들이 잘못 분석되거나 여러 형태소로 과분석될 수 있다.

통계 기반 방식의 형태소분석

추세가 통계 기반 형태소분석으로 넘어왔다. 그런데 통계기반인 경우 최대 단점이 존재하는데 그것은 잘못된 사전이 등록되었을 경우다.
아버지가방에들어가신다는 노리 기준으로 다음과 같다.

아버지/NNP,가/J,방/NNG,에/J,들어가/V,신다 

말뭉치 기반으로 각 분해 될 예측 분해 정보와 전이율, 출현빈도 등이 설정되어 있어 해당 정보를 토대로 위와 같은 형태소분석을 진행한다.

만약에 사용자 사전에 아버지가방이라고 명사로 등록해 버리면 어떻게 될까? 다음과 같은 상황이 발생하게 된다.

  • 사용자 사전에 정의된 아버지가방을 선분해 진행
  • 나머지 문장 에들어가신다가 토크나이징 대상
  • 말뭉치로 학습된 통계 바이너리에는 에들어가신다라는 학습 데이터가 존재하지 않음
  • 오분석/과분석이 발생하여 에들/어/가/신/다 처럼 토크나이징이 되어버림

해당 문제가 발생하지 않으려면, binary dictionary에 직접 등록하여 빌드를 진행해야 하는데, 그래야 에들어가신다가 시작 문장이 아닌, 문맥을 통한 남은 문장인것으로 인식을 해서 나은 토크나이징 결과를 기대해 볼 수 있다.

현재 검색서비스는?

검색서비스가 운영되고 있는 대부분의 사이트들은 모두 사용자 사전에 사용되고 있다. 초기 구축시 사전을 명확하게 나누고, (사용자 사전, 동의어 사전, 오타 사전 등) 특정 단어를 넣었을 때 이슈가 발생할 수 있는지, 또한 언어 전문가에게 자문을 구해서 진행을 해야 하지만 우리는 보통 그렇게 사용하지 않는다. 동의어 사전에 검색이 되어야 하는 모든 단어를 넣어 버린다. 사전적 의미의 동의어가 아닌 오타, 영문식 한글, 숫자, 노출되어야하는 특정 키워드...
규칙이 없이 모든게 들어가버리고, 이때 동의어사전을 통해 검색이 안되어버리니까 사용자 사전에 미리 넣어버린다. 이렇게 하면 점점 관리가 어려워지기 때문에 초기 구축과 룰이 중요하다.

profile
11년차 검색개발자 입니다. 여러 지식과 함께 실제 서비스를 운영 하면서 발생한 이슈에 대해서 정리하고 공유하고자 합니다.

0개의 댓글