자연어 처리란?

자연어란 인간의 역사 속에서 자연 발색적으로 나타나고 그 역사와 더불어 진화해 온 언어를 말하는 것으로, 프로그래밍 언어 등로 대표되는 '인공어'와 대비되는 개념입니다. 따라서 우리가 사용하는 한국어나 영어는 모두 자연어라 할 수 있습니다. 자연어 처리는 자연어 즉 인간의 언어를 컴퓨터가 이해할 수 있도록 하기 위한 여러 가지 지식 및 기술들을 연구하는 분야입니다. 아래는 자연어 처리에 필요한 기술들을 요소기술과 현재 연구중인 기술로 나누어서 분류한 것입니다.

>> 자연어처리 소개 자료

Advanced Technologies(현재 연구 중인 기술)

1. 대화분석 (Dialogue Analysis)

둘 이상의 화자들이 나누는 대화를 분석하는 기술입니다. 일반적으로 대화는 문서와는 다른 특성을 지닙니다. 즉, 문어체를 주로 쓰는 문서와는 달리 대화는 구어체 표현을 사용하고, 생략 및 대용어 표현이 빈번히 나타나며, 표정이나 손짓 등 언어 이외의 다양한 수단을 통해 의사를 전달합니다. 그리고 대화 당사자들이 공유하고 있는 지식들에 대해서 알고 있지 않으면 대화 자체를 이해할 수 없는 경우가 생기기도 합니다. 그래서 대화를 처리하기 위해서는 그에 맞는 여러 기술들의 응용이 필요합니다.

관련 영상 [건물안내대화시스템]

2. 정보검색

- IR (Information Retrieval)
일반적인 의미에서, 즉, 검색 포탈 등에서 흔히 사용하는 검색을 뜻합니다. 정보검색을 위해서는 검색 대상이 되는 문서를 색인하고, 검색질의를 분석하는 작업이 필요한데, 이러한 색인/질의분석 과정에 자연어처리의 기반기술들이 이용 및 응용되고 있습니다.

- QA (Question Answering)
의미 분석까지의 자연어 처리 기술을 적용한 정보 검색의 진일보한 방법론입니다. 정보검색이 사용자의 질의에 대해 분석된 키워드와 유사한 문서들을 나열해주는 방식이라면. QA는 질의에 대해 한 단어 또는 구, 문장 등의 형태로 질의의 정답만을 보여준다.

- NLIDB (Natural Language Interface for DataBase)
데이터베이스(DB)의 검색을 위해서는 각각의 DB에 맞는 SQL을 생성해 주어야만 합니다다. NLIDB는 사용자가 입력한 자연어 질의를 DB에 최적화된 SQL 문장으로 자동 변환하여 DB에 있는 내용을 검색하는 기술입니다. 따라서 NLIDB를 통하면 SQL에 익숙하지 않은 사용자도 복잡한 데이터베이스를 쉽게 사용할 수 있습니다.

3. 정보추출 (IE : Information Extraction)

정보추출은 비정규화된 대량의 문서로부터 의미 있는 정보만을 골라 구조화된 형태로 사용자에게 제시하는 시스템을 말합니다. 정보추출 기술은 웹문서의 구조정보를 이용하는 분야와 일반적인 텍스트 문서를 대상으로 문서의 언어패턴정보를 이용하는 분야로 구분할 수 있습니다.

4. 정보요약 (Summarization)

문서를 자동으로 요약하여 주는 기술입니다. 문서를 일정 크기 이내로 요약하여 사용자에게 제공함으로써 대량의 문서의 중요 부분만을 빠르게 열람할 수 있도록 해 줍니다.

5. 문서분류 (Categorization/Classification) 및 문서군집화 (Clustering)

다양한 분야에 속하는 많은 문서들을 미리 정해진 분류 체계에 따라 자동으로 분류하거나 군집화하는 기술입니다.

Standard Technologies (기반 기술)

1. 구조 분석 (Syntactic Analysis)

하나의 (자연어)문장은 보통 여러 개의 단어로 구성되어 있으며, 각각의 단어들 사이에는 그 단어가 문장 내에서 맡은 역할에 따른 연결 관계가 존재합니다. 따라서 자연어 처리를 위해서는 문장을 구성하는 성분과 그 성분들 간의 관계를 분석할 필요성이 있습니다. 이 과정을 구조 분석 단계라고 합니다. 여기서는 앞서 말한 대로 문장을 의미를 가지는 최소단위로 분리하고 (형태소 분석), 이들 간의 연관관계 및 문장 내에서의 역할을 파악합니다(구문 분석).

- 문장 분할
문장 분할은 분석의 대상인 문단 또는 문서를 개개의 문장 단위로 분할하는 과정으로, 형태소분석 및 구문분석을 하기 위한 전처리 과정입니다.

- 형태소 분석
문장에서 의미를 갖는 최소 단위를 형태소라 하고, 문장을 형태소 단위로 분리하는 것을 형태소 분석이라고 합니다. 형태소 분석을 위해서는 형태소들의 정보를 담아 놓는 형태소 사전, 형태소들의 연결에 제약을 가하는 문법 규칙, 그리고 그 밖의 여러 가지 통계적 정보들을 사용합니다.

- 구문 분석 / 의존관계 분석
구문 분석은 형태소 분석 결과를 바탕으로 각 형태소들의 문장 내에서의 역할을 분석하여 문장성분을 구별하는 단계입니다. 이 단계에서는 문장의 주어, 목적어, 동사 등 기본적인 역할을 분석하고 수식어와 수식 대상을 파악합니다. 이를 통해 대상이 되는 문장의 전체적인 구조를 파악하는 것이 구문 분석의 주된 목적입니다.

2. 문장 의미 분석 (Semantic Analysis): 표층 의미 분석

의미 분석은 문장의 '의미'를 파악하는 과정입니다. 여기에는 단어 중의성 해소, 대용어 처리 등이 포함됩니다.

- 단어 중의성 해소 (WSD:Word Sense Disambiguation)
자연어에서는 하나의 단어가 둘 이상의 의미를 가지기도 합니다. '배'라는 단어는 과일을 의미하기도 하고, 교통수단 혹은 신체 부위를 의미하기도 합니다. 인간은 이러한 단어가 문장에 사용되었을 때 '어떤 의미로 사용되었는지'를 쉽게 판단할 수 있지만 컴퓨터는 그렇지 않습니다. 따라서 단어가 현재 문장에서 여러 의미 가운데 어떤 의미로 사용되었는가를 파악하는 단계가 필요합니다. 이 단계를 단어 중의성 해소라고 합니다. 단어 중의성 해소를 위해서는 단어들 간의 의미적 제약 정보와 단어들간의 공기정보(cooccurrence) 등을 이용합니다.

- 대용어 분석 (Anaphric Reference Analysis)
사람이 작성한 문서나 사람들 사이의 일상적 대화에서, 이전에 나온 명사 등을 지칭할 때는 대명사 등을 많이 사용하게 됩니다(그것, 그 사람 등). 이러한 표현을 대용어라고 합니다. 문장의 의미를 정확히 파악하기 위해서는 문장에 사용된 대용어가 이전 문장/대화의 어떤 사물/행위를 가리키는지를 구별하여야 하는데 이러한 과정을 대용어 처리라 하며 대화체 문장에서 특히 중요한 연구분야입니다.

3. 담화 분석 (Discourse Analysis)

담화 분석은 문장 하나하나에 대한 분석을 넘어서서, 여러 문장 간의 연관관계를 파악하고, 전/후 문맥 정보를 이용하여 현재 문장의 심층적인 의미를 파악하는 과정입니다.

- 문맥 구조 분석
의미 전달을 위해서 한 문장만이 사용되는 경우도 있지만, 많은 경우 여러 문장이 유기적으로 묶여 의미를 전달하게 됩니다. 문장들은 서로 대등한 관계이거나 또는 이유나 근거 제시, 결론 제시 등 다양한 방법으로 관계를 맺게 됩니다. 이러한 경우 전체적인 뜻을 파악하기 위해서는 문장들이 갖고 있는 연관관계들을 분석해야 합니다. 이것이 문맥 구조 분석입니다.

- 의도 분석: 심층 의미 분석
인간의 언어 생활에서 저자 또는 발화자는 문장(또는 문서)이나 발화를 통해 상대방에게 자신의 의도를 표현합니다. 즉, 의도 분석 과정은 문장의 의미, 전후 문맥 관계 등을 사용하여 저자 또는 발화자가 전달하고자 하는 실제의 의도(심층 의미)를 파악하는 과정입니다.