자연어 처리의 주요 과제
문서 분류
텍스트 분석에서 가장 많이 하는 것은 문서 분류이다. 문서 분류는 글을 몇 개의 유형으로 정해놓고, 텍스트를 입력하면 그것을 정해진 것 중 하나로 분류해주는 것이다. 예를 들어, 스팸 필터는 메일을 스팸과 스팸이 아닌 것, 두 가지로 분류한다. 이메일이 오면 이 둘 중 하나로 분류해주는 것이다. 문서 분류는 가장 널리 활용되는 자연어 처리 과제 중 하나이다.
감성 분석은 글을 긍정과 부정으로 나누는 것이다. 이는 소비자 리뷰 같은 경우에 많이 사용되는데, 긍정 의견과 부정 의견을 파악하는 것이 중요하기 때문이다. 정서 분석은 이를 더 세분화하여 기쁨, 슬픔 등으로 나누는 것을 말한다.
의도 분류는 주로 챗봇에서 사용된다. 예를 들어, 은행 앱에서 고객이 할 수 있는 일은 정해져 있다. 계좌 개설, 돈 인출, 송금, 계좌 확인 등이 있다. 고객이 "나 돈 얼마 있지?"라고 하면 계좌를 확인하고 싶은 것이고, "누구한테 얼마 보내줘"라고 하면 송금을 하고 싶은 것이다. 고객은 다양한 방식으로 말할 수 있지만, 은행 앱에서 할 수 있는 일은 정해져 있다. 이렇게 정해진 일 중에서 고객이 지금 하고 싶은 것이 무엇인지 분류하는 것을 의도 분류라고 한다.
토큰 분류
문서 분류가 글 전체를 분류하는 것이라면, 글을 구성하고 있는 단어 또는 토큰을 분류하는 것도 있다. 이를 토큰 분류라고 한다. 토큰이라는 말을 쓰는 이유는 글을 단어 단위로 쪼갤 수도 있고, 더 작은 형태소 단위로 쪼갤 수도 있기 때문이다. 어쨌든 글을 구성한 요소라는 의미에서 토큰이라고 부른다.
예를 들어, 고객이 주문을 했을 때 고객의 의도는 알겠지만, 고객이 주문한 메뉴가 무엇인지 알아내려면 고객이 말한 내용 중 메뉴를 언급하는 부분을 뽑아낼 수 있어야 한다.
게임에서 욕설을 막고 싶을 때도 토큰 분류를 사용할 수 있다. 고객이 욕설을 우회하기 위해 숫자를 집어넣거나 말을 바꾸더라도, 각 토큰이나 단어가 욕설인지 아닌지 분류해서 욕설로 판정되는 토큰을 마스킹할 수 있다.
이메일에서 '몇 월 며칠에 회의합시다'라는 문구를 자동으로 인식하여 달력에 추가해주는 기능도 토큰 분류를 통해 구현할 수 있다.
개체명 인식은 토큰 분류의 일종으로, 이름(Name)을 찾는 토큰 분류 방법을 말한다.