SungHae Jun http ailab sogang ac krshjunailab sogang
자연어 처리의 이해 Sung-Hae Jun http: //ailab. sogang. ac. kr/~shjun@ailab. sogang. ac. kr
Tree의 Notation - Node : Non-terminal node ( NP, VP, . . . ) - link - root : 한 문장의 구문 Tree의 root 는 S (Sentence) - leaves : Terminal nodes - parent nodes, child nodes, ancestor nodes (모든 node는 그것의 ancestor node에게 dominate 됨)
Grammars Grammar : a set of rewrite rules (ex) S NP NP VP ART N N V NP Context Free Grammar (CFG) : - 각 rule의 LHS(Left-Hand side)가 하나의 symbol로 이루어진 문법 규칙 Grammar Rule 을 이용해서 sentence를 derive할 수도 있고 (sentence generation), analyze 할 수도 있음(sentence parsing)
Sentence Generation (ex) By rewrite rule S NP VP N VP John V NP John ate ART N John ate the apple.
Sentence Parsing Bottom-up parsing vs. Top-down parsing - Bottom-up parsing 입력 문장의 단어로부터 시작하여 rewrite 규칙을 backward로 적용하여 S 하나만 나타날 때 까지 적용 - Top-down parsing S부터 rewrite해서 주어진 sentence가 generate될 때까지 적용한다. 만 일 모든 가능성을 다 적용해도 그 문장이 나타나지 않으면 parsing fail
Bottom-up Parsing (ex) John ate the apple. N V ART N NP V NP NP VP S S NP VP NP N John V ART N ate the apple
의미해석의 필요성 모호한 구문 해석 결과를 해결 Harry broke the glass with the hammer. - 구문 해석 결과 Harry broke the glass with the hammer. . . 의미 제약에 의해 [break [agent : Harry object : the glass instrument : the hammer]] - 의미 해석 결과 Harry broke the glass with the hammer.
X-bar Grammar • X grammar X Y: specifier X Z: modifier Y X Z X: N(명사), V(동사), Adj(형용사), Adv(부사) X: Np 1, Vp 1, Adj 1, Adv 1 X: NP(명사구), VP(동사구), ADJP(형용사구), ADVP(부사구)
Sub-Categorization • 각 단어들은 그 것들을 수식하는 보어(complements)들이 있음 • 각 단어 들이 가질 수 있는 보어들에 대한 정보를 sub-categorization 정보 라함 • Sub-categorization은 구문 분석 시 매우 요긴하게 사용될 수 있다. (예) verb complement 구조 예문 - laugh: empty Jack laughed. (1형식) - find: NP Jack found a key. (3형식) - give: NP+NP Jack gave Sue the paper. (4형식)
Transition Network Grammar • 아주 단순한 network grammar는 Finite State Automata(FSA)와 같은 구조 N (ex) 1 V 2 ART 3 N 4 5 John ate an apple. - 즉, Initial state와 Final state, 그리고 a set of states와 transition arc들을 정의 함으로써 만들 수 있는 Grammar - 그러나, 이와 같은 FSA로는 자연언어를 충분히 표현할 수 없다. Recursive Transition Network이 필요(John regret that I regret that …)
Recursive Transition Network(RTN) • 각 constituent마다 network이 정의 (ex) S-net, NP-net, VP-net. . . • 각 network에서는 recursive하게 자신의 category를 transition arc에 포함하 거나, 두개 이상의 network이 서로의 category를 transition arc로 사용하여 정의할 수 있음 (ex) verb NP S: NP S 3 S 2 S 1 S 0 S adj noun art NP : NP 1 NP 0 e NP 2 e : empty transition
RTN과 Push-Down Automata (ex) I believe he died. N VERB N V – S-network으로 상기 문장을 parsing하면. . . current state 1. 2. 3. 4. 5. 6. 7. S : S 0 S : S 1 S : S 2 Input I believe he died. `` `` action stack push S : S 2 pop - 3번 step에서 "he died"로 S-network을 recursive하게 시도하면서 다시 돌아올 state를 stack에 push하게 되고, 6번 step에서 "he died"가 성공 적으로 S로 분석됨에 따라서 stack의 top에 있는 state로 되돌아 오게 됨
Definite Clause Grammar (DCG) • DCG는 prolog에 쉽게 구현할 수 있는 Grammar표현 기 법이다. rewrite rule DCG in prolog S s(Input, Rest) : np(Input, Rest 1), vp(Rest 1, Rest). NP VP - 즉, Input으로 들어온 string을 S로 파싱하기 위해서 우선 Input의 앞부분 에서 부터 np부분을 찾고, 그 나머지를 가지고 vp부분을 찾으면 된다.
Features of Words and Constituents • 일반적으로 자연언어는 context sensitive한데 CFG로써 context sensitive 한 면을 처리하기 위해서는 CFG를 확장하여 두 constituent가 결합할 때 각 constituent들의 feature를 검사할 수 있도록 해야 함 (ex) 1. This program works well. 2. This programs work well. (*) 3. These program works well. (*) 4. These programs works well. (*) 2, 3, 4와 같은 비문장을 구별해 내기 위해서는 art와 n, 그리고 v의 수(number)와 인 칭(person)을 구별해 주어야 함
Features and Augmented Grammar • 수나 인칭을 구별해 주는 방법은 2가지가 있음 1. 각 수나 인칭에 따라 단어 품사를 구별해서 지정 (ex) NP-sing NP-plural art-sing n-sing art-plural n-plural – 이 경우, 모든 feature에 대해서 combinatorial하게 품사의 종류가 늘어나게 됨 (ex. NP-sing-person 3) 2. 한 단어나 constituent를 feature structure로 표현 (ex) a : (cat peaches: (cat john : (cat (NP number ? X) art, root n, root a, number peach, number john, number sing) plural) sing, person 3) (art number ? X) (n number ? X) - 이 규칙의 결과로 생기는 np의 number는 subconstituent인 art나 n의 number와 같은 값을 갖게 됨
Features and Augmented Grammar (ex) 1. (s tense ? Y) (np number ? X person ? W) (vp number ? X person ? W tense ? Y) – np와 vp의 number와 person이 compatible하면 S로 combine할 수 있고 이 때 S의 시제(tense)는 VP의 시제를 따름 2. np number ? X person ? Y ( art number ? X ) n number ? X person ? Y – art와 n의 number가 compatible하면 np로 combine하고, 이때 np의 feature값들은 n의 feature값을 갖음
- Slides: 41