ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
??©f¨Ò?????? 
??¤î??????¤î? 
Structure and Implementation of the 
Parsers 
for Natural Language Processing 
JOIss2014 @zakuro9715
????
YuZakuro 
@zakuro9715 
?¨‹?? 
??(??3?) 
HN 
twitter 
?? 
??
???
https://github.com/zakuro9715/shino
????
????????
101?
??????©Ä?????
What is Parser? 
??¤î?? ???
??¤î?? 
¡ñ ???????????¤î??? 
????????????(????)??? 
???
??¤î?? 
¡ñ ???????????¤î??? 
????????????(????)??? 
??? 
˜‹ÎÄľ?AST?Sʽ¤Ê¤É
¤»???¡­
I am You
? 
?¥â? 
????¥â 
I 
?¥â? 
?¥â 
am 
?¥â? 
???¥â 
You
Tips 
1. ¤î????????? 
2. ?????????
Tips 
1. ¤î????????? 
2. ?????????
¤î????????? 
¡ñ ??¤î???????????????? 
??¤î???¤»??? 
¡ñ ???????¤î???¤î?????
You are PRO 
???
[You, are, PRO] 
?????
???????? 
???
[???, ?, ??, ??] 
?????
?? 
???
[??] 
?????
Tips 
1. ¤î????????? 
2. ?????????
S-Expression 
(S 
(NP (PeopleN (¡®I¡¯))) 
(VP 
(V (¡®am¡¯)) 
(NP (ProperN ('You')))))
Syntax Tree 
S 
NP 
PeopleN 
I 
VP 
V 
am 
NP 
ProperN 
You
??????? 
¡ñ Abstract Syntax Tree 
¡ñ Reverse Polish Notation 
¡ñ Polish Notation
Context Free Language 
??????
?????? 
¡ñ ????????????????? 
¡ñ ?¤Ä??????????????????
? 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes the dog ??????????CFG
Implements of typical parsers 
??????¤î???????
??????¤î?? 
¡ñ Recursive Descent Parser 
¡ñ Shift-Reduce Parser
??????¤î?? 
¡ñ Recursive Descent Parser 
¡ñ Shift-Reduce Parser
?? 
¡ñ ??????????? 
¡ñ ?????????????????
?? 
¡ñ ???????????????????
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡± 
a cat likes a dog
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
a cat likes a dog 
S 
NP 
N 
Det 
VP 
V 
-> 
-> 
-> 
-> 
-> 
-> 
NP VP 
Det N 
¡°cat¡± | ¡°dog¡± 
¡°the¡± | ¡°a¡± 
V NP 
¡°likes¡±
???
?? 
¡ñ ??? 
¡ñ ?????
??? 
¡ñ ?????CFG???? 
??CFG?????¡±a¡±?????? 
????????????¡ý???? 
??? 
S -> S A | A 
A -> ¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
a a a a a 
S 
A 
-> 
-> 
S A | A 
¡°a¡±
¤î??? 
¡ñ ????????????? 
S 
S_ 
A 
-> 
-> 
-> 
A S_ 
¡°¡± | A S_ 
¡°a¡±
????? 
¡ñ ?¤Â???????????????????? 
?????????????????? 
¡ñ ????????????A?¤Â?????? 
????? 
S 
A 
B 
C 
-> 
-> 
-> 
-> 
A B | A C 
¡°a¡± 
¡°b¡± 
¡°c¡±
¤î??? 
¡ñ A?¤Â??????????????????? 
??¤Â?????? 
S 
A 
B 
C 
-> 
-> 
-> 
-> 
A B | A C 
¡°a¡± 
¡°b¡± 
¡°c¡±
¤î??? 
¡ñ ?¨Þ???????¥£??????????? 
??????
??????¤î?? 
¡ñ Recursive Descent Parser 
¡ñ Shift-Reduce Parser
?? 
¡ñ LL??????????¤î???? 
¡ñ ??????????????????
?? 
¡ñ ??????????????????????? 
????????? 
¡ñ ??????????Shift, ???????? 
???Reduce???
a cat likes a dog
cat likes a dog 
a 
Shift
cat likes a dog 
Reduce 
Det
likes a dog 
Det 
Shift 
cat
likes a dog 
Reduce 
N 
Det
likes a dog 
Reduce 
NP
a dog 
NP 
Shift 
likes
a dog 
Reduce 
V 
NP
dog 
a 
NP 
Shift 
V
dog 
Reduce 
Det 
V 
NP
dog 
Det 
NP 
Shift 
V
Reduce 
N 
Det 
V 
NP
Reduce 
NP 
V 
NP
Reduce 
S
Recursive Descent Parser ??? 
¡ñ ??? 
¡ñ ?????
??? 
¡ñ ????????
??? 
¡ñ ????¡ý??????????????? 
?????????????? 
¡ñ ????????????????????? 
??
????? 
¡ñ Recursive Descent Parser????????? 
?????????
????? 
¡ñ Recursive Descent Parser ????????? 
??¤Â???????????? 
¡ñ ?????¤Â???????????????? 
???????????
LL???????
????
???? 
??¡­
Shift-Reduce Parser ??? 
¡ñ Shift-Reduce?? 
¡ñ Reduce-Reduce??
Shift-Reduce Parser ??? 
¡ñ Shift-Reduce?? 
¡ñ Reduce-Reduce??
Shift-Reduce ?? 
¡ñ ?????????¡±a¡±?????????? 
Reduce???Shift?????????? 
S 
A 
B 
-> 
-> 
-> 
A | A B 
¡°a¡± 
¡°b¡±
¤î??? 
¡ñ ?¨Þ?
Shift-Reduce Parser ??? 
¡ñ Shift-Reduce?? 
¡ñ Reduce-Reduce??
Reduce-Reduce ?? 
¡ñ ?????????¡±a¡±???????????A1 
??????A2???????????? 
S 
A1 
A2 
-> 
-> 
-> 
A1 ¡®x¡¯ | A2 
¡®y¡¯ 
¡°a¡± 
¡°a¡±
¤î??? 
¡ñ ?¨Þ?
Summary 
???
¡ñ Recursive Descent Parser ?????? 
¡ð ???????? 
¡ñ Shift-Reduce Parser ????????¤î? 
¡ð ??????¡­
??
?¨Þ?
??????????????

More Related Content

×ÔÈ»ÑÔÓï„IÀí¤Ë¤ª¤±¤ë¹¹ÎĽâÎöÆ÷¤Î¹¹Ôì¤È½âá‹