호돌찌의 AI 연구소
article thumbnail
Published 2022. 4. 17. 18:52
Dependency Parsing (1) AI/NLP

NLP에서 분류와 생성, 키워드 추출, NER, MRC 등 다양한 Task들이 존재합니다. 하지만 이번에 또 다른 영역인 "Parsing"이라는 영역을 공부하게 되었고 그중 단어 간 관계를 파악하는 것이 목적인 "Dependency Parsing"에 대해 공부한 것을 정리하고자 합니다.

 


 

우선적으로 컴퓨터과학에서 "Parsing"의 정의를 점검하자면, 각 문장의 문법적인 구성 또는 구문을 분석하는 과정"이라고 표현합니다. 일련의 문자열을 의미있는 Token으로 분해하고 이들로 이루어진 Parse Tree를 만드는 과정을 뜻합니다. parse tree의 예는 아래와 같습니다.  

http://www.aistudy.co.kr/linguistics/natural/parsing.htm

 

위와 같은 구문분석 트리를 구성하는 것이 "Parsing" 이라고 부릅니다. Tokenizing은 의미를 잘게 쪼개어주고, Pos-Tagging은 Token들에 품사를 붙여주는데, Parsing은 Output이 Parse Tree 형태라고 생각하면 됩니다. 

 

목적에 따라서 2가지로 나눌 수 있는데, 문장의 구조를 파악하는 것이 주목적인 Constituency Parsing단어간 관계를 파악하는 것이 주목적인 Dependency Parsing으로 나눌 수 있습니다. 

 

Constituency Parsing는 문장을 중첩된 성분으로 나누어 문장의 구조를 파악하는 것입니다. 영어와 같이 어순이 비교적 고정적인 언어에서 주로 사용이 됩니다. 

 

John(주어) hit the ball이라는 인풋 문장이 주어졌을 때, John(주어) / hit the ball(동사구) 로 나눌 수 있으며 

John(주어) / hit(동사) / the ball(명사구)로 또 나눌 수 있습니다. 제일 잘게 나누어보면 John(주어) / hit(동사) / the(한정사) / ball(명사) 까지 나눌 수 있습니다. 위의 그림의 문장을 Tree로 구성이 가능하다는 것입니다.  이렇게 문장이라는 것은 단어(또는 토큰)들로 뭉쳐져서 이루어있는 것이 Constituency Parsing의 기본적인 가정입니다. Constituency Parsing의 목적은 문장을 분석함에 있어서 외형적인 구조를 파악하는 것입니다. 

 

Dependency Parsing은 각 단어간 의존 또는 수식 관계를 파악하는 것이 주목적입니다. 한국어와 같이 자유 어순을 가지거나 문장 성분이 생략 가능한 언어에서 선호됩니다. 

 

그림을 보면 화살표 방향을 보고 의아해할 수 있는데(일반적으로 언어를 배울 때 수식을 받는 부분이 화살표를 받기 때문) 이 부분은 수식을 받는 단어에서 수식을 하는 단어로 화살표 방향으로 가는 것이 정의입니다. 그리고 화살표 위에 nsubj, dobj와 같이 라벨이 달립니다. dp는 기본적인 output은 개별 단어 간의 관계를 파악하여 어디서 어디로 화살표가 가고, 어떠한 라벨을 붙여주는 것입니다. 수식을 받는 단어를 head, governor라고 부르며, 수식을 하는 단어는 dependent, modifier라고 부릅니다. 우측 그림에서 좌측 그림 내용을 다르게 표현을 할 수 있는데, 수식 관계를 가지고 있는지 없는지 의사결정하는 영역 부분에도 dependency parsing이 이루어집니다. 

 

 

다음 글에서는 왜 이러한 구조가 필요한지에 대한 내용에 대해서 서술하고자 합니다. 

profile

호돌찌의 AI 연구소

@hotorch's AI Labs

포스팅이 도움이 되셨다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!