혜온의 이것저것

[Chapter 2 자연어와 단어의 분산 표현] 1 자연어 처리란 / 2 시소러스 본문

Deep Learning/밑바닥부터 시작하는 딥러닝2

[Chapter 2 자연어와 단어의 분산 표현] 1 자연어 처리란 / 2 시소러스

혜온 :) 2022. 3. 3. 17:19

한국어와 영어 등 우리가 평소에 쓰는 말을 자연어(natural language)라고 한다. 자언어처리(NP)는 우리의 말을 컴퓨터에게 이해시키기 위한 기술이다.

자연어는 프로그래밍 언어와 달리 똑같은 의미의 문장도 여러 형태로 표현할 수 있고, 문장의 뜻이 애매할 수 있듯이 그 의미나 형태가 유연하게 바뀐다.

 

컴퓨터에게 자연어를 이해시킬 수 있다면 수많은 사람에게 도움되는 일을 컴퓨터에게 시킬 수 있다. 그 예로 대표적인 것이 검색엔진이나 기계 번역이다. 이 밖에도 질의응답 시스템, IME(입력기 전환), 문장 자동요약과 감정분석 등 우리 주변에는 이미 자연어 처리 기술이 널리 사용되고 있다.

 

2.1.1 단어의 의미

우리의 말은 문자로 구성되며, 말의 의미는 단어로 구성된다. 단어가 최소 단위인 셈ㅇ다. 자연어를 컴퓨터에게 이해시키는 데는 무엇보다 단어의 의미를 이해시키는 것이 중요하다.

 

단어의 의미를 잘 파악하는 표현 방법에 3가지 기법을 살펴볼 것이다.

- 시소러스를 활용한 기법

- 통계 기반 기법

- 추론 기반 기법(word2vec)

 


단어의 의미를 나타내는 방법으로는 먼저 사람이 직접 단어의 의미를 정의하는 방식을 생각할 수 있다.

그 중 한 방법으로는 표준국어대사전처럼 각가의 단어에 그 의미를 설명해 넣을 수 있는 것이다.

자연어 처리의 역사를 되돌아보면 단어의 의미를 인력을 동원해 정의하려는 시도는 수없이 있어왔지만, 사람이 이용하는 표준국어대사전 같이 일반적인 사전이 아니라 시소러스 형태의 사전을 애용했다.

시소러스란 유의어 사전으로, 뜻이 같은 단어(동의어)나 비슷한 단어(유의어)가 한 그룹으로 분류되어 있다.

자연어 처리에 이용되는 시소러스에서는 단어 사이의 상위와 하위 혹은 전체오 ㅏ부분 등, 더 세세한 관계까지 정의해둔 경우가 있다.

이 처럼 모든 단어에 대한 유의어 집합을 만든 다음, 단어들의 관계를 그래프로 표현하여 단어 사이의 연결을 정의할 수 있다.

 

2.2.1 WordNet

자연어 처리 분야에서 가장 유명한 시소러스는 WordNet이다.

WordNet을 사용하면 유이어를 얻거나 단어 네트워크를 이용할 수 있고 단어 사이의 유사도를 구할 수도 있다.

 

2.2.2 시소러스의 문제점

WordNet과 같은 시소러스에는 수많은 단어에 대한 동의어와 계층 구조 등의 관계가 정의도 있고, 이 지식을 이용하면 단어의 의미를 컴퓨터에 전달할 수 있다. 하지만 이처럼 사람이 수작업으로 레이블링하는 방식에는 크나큰 결점이 존재한다.

- 시대 변화에 대응하기 어렵다.

새로운 단어가 생거나고, 옛말은 언젠가 잊혀진다. 시대에 따라 언어의 의미가 변하기도 한다. 이러한 단어의 변화에 대응하려면 시소러스를 사람이 수작업으로 끊임없이 갱신해야 한다.

- 사람을 쓰는 비용은 크다.

시스로서를 만드는 데는 엄청난 인적 비용이 발생한다. 1,000만개가 넘는 방대한 단어들 모두에 대해 단어 사이의 관계를 정의하는 것은 쉬운 일이 아니다.

- 단어의 미묘한 차이를 표현할 수 없다.

시소러스는 뜻이 비슷한 단어를 묶는다. 하지만 실제로 비슷한 단어들이라도 미묘한 차이가 있지만 시소러스에서는 이러한 미묘한 차이를 표현할 수 없다.

 

시소러스를 사용하는 기법에서 발생하는 문제를 피하기 위해, 통계기반기법과 신경망을 사용한 추론 기반 기법을 알아볼 것이다.

이 두 기법에서는 대량의 텍스트 데이터로부터 단어의 의미를 자동으로 추출하여 손수 단어를 연결짓는 노동은 필요가 없어지게 된다.

 

Comments