자연어처리(Natural Language Processing)이란 인공지능의 한 분야로, 컴퓨터가 사람의 언어인 자연어를 이해할 수 있게 처리하는 것이다. 자연어처리 분석단계는 크게 형태소분석 → 구문 분석 → 의미 분석 → 담화 분석의 4단계 프로세스로 정의할 수 있다.
형태소 분석(Morphological Analysis)는 문장을 형태소 단위로 분리하는 것을 의미한다. 형태소는 말의 최소 의미 단위이다. 형태소 분석 시 언어의 중의성,고유명사,신조어 발생등의 이유로 어려움을 겪게 된다.
빵을 먹는 아이
→빵 ##을 먹## ##는 아이
위와 같이 순서대로, 빵(명사),을(조사),먹(동사),는(어미),아이(명사) 순으로 분리하는 것을 의미한다.
📌관련 NLP task
구문 분석은 문장의 구성요소를 분해하고, 위계관계를 분석해 문장의 구조를 찾아내는 것이다. 보통 어절(띄어쓰기) 단위로 나눠 Parsing tree를 이용해 해당하는 tag를 부여해서 분류한다.
'Time flies like an arrow'라는 문장 분석시, flies를 명사(파리)로 분석하는지 동사(날아가다)로 분석하는지에 따라 결과가 달라진다. 아래의 그림을 통해 구문적 모호성을 보자.
각각 노드에 트리의 노드에 해당하는 알파벳은 아래와 같은 의미를 가진다.
- S (Sentence): 문장
- NP (Noun Phrase): 명사구
- VP (Verb Phrase): 동사구
- PP (Prepositional Phrase): 전치사구
- N (Noun): 명사
- V (Verb): 동사
- P (Preposition): 전치사
- D (Determiner): 한정사
- A (Adjective): 형용사
좌측의 예시는 "시간은 화살과 같이 날아간다" 라고 해석되고, 우측의 예시는 "시간파리들은 화살을 좋아한다" 라고 해석된다. flies와 like가 한가지 뜻만 가지고 있지 않기 때문에 모호성이 생기는 것이다.
📌관련 NLP task
구문 분석에 이어지는 의미분석은 문장의 뜻을 파악하는 작업이다. 의미분석을 통해서 문법에는 맞지만, 의미가 잘못된 문장을 파악하는 단계이다.
1. 사람이 사과를 먹는다
2. 사람이 비행기를 먹는다
3. 비행기가 사과를 먹는다
위 세가지 모두 문법적으로는 가능하지만, 의미분석을 통해서 첫번째 경우만 가능하다는 것을 알 수 있다.
📌관련 NLP task
담화 분석은 문장을 전체문맥과 연결하여 정확한 의미를 분석하는 작업이다. 같은 문장이여도 문맥에 따라 의미가 달라질 수 있다. 예시로, "그는 울고 말았다." 라는 문장은 아래의 두 경우 다르게 해석된다.
- 민수가 도자기를 떨어뜨렸다. 그는 울고 말았다.
- 민수가 경기에서 우승했다. 그는 울고 말았다.
이처럼 문맥에 따라 같은 문장이여도 의미가 달라질 수 있는데, 발화자의 의도에 맞도록 대화의 흐름을 파악하고 응답해주는 기능이 담화분석이다.
📌관련 NLP task
인공지능은 딥러닝으로 단어나 구문이 문장 내에서 어떻게 사용되는지 직접 관찰하여 의미를 학습할 수 있다. 사람이 개입하여 관계를 정의하는 머신러닝과 다르게, 인공지능이 원문을 학습하면서, 스스로 구문의 의미와 관계를 이해한다.