Skip to content

[parsing] SyntaxNet

Myungchul Shin edited this page Mar 29, 2017 · 37 revisions
  • SyntaxNet
  • how to install
  • test code
  • train other corpus
    • detail code is here
    • train UD_English Corpus from Universal Treebank
    - evaluation accuracy is around 88%, not that high.
      - check only parsing accuracy. i.e, pos tags are given
    
    • train Korean Sejong Corpus
    - convert constituent parse to dependency parse 
      and split eojeol-based token to morpheme-based to train parser.
    
    ; 프랑스의 세계적인 의상 디자이너 엠마누엘 웅가로가 실내 장식용 직물 디자이너로 나섰다.
    (S  (NP_SBJ (NP (NP_MOD 프랑스/NNP + 의/JKG)
                    (NP (VNP_MOD 세계/NNG + 적/XSN + 이/VCP + ᆫ/ETM)
                        (NP (NP 의상/NNG)
                            (NP 디자이너/NNG))))
                (NP_SBJ (NP 엠마누엘/NNP)
                    (NP_SBJ 웅가로/NNP + 가/JKS)))
            (VP (NP_AJT (NP (NP (NP 실내/NNG)
                            (NP 장식/NNG + 용/XSN))
                        (NP 직물/NNG))
                    (NP_AJT 디자이너/NNG + 로/JKB))
                (VP 나서/VV + 었/EP + 다/EF + ./SF)))  
    
    # if you want to visualize this constituent tree, 
      use https://github.com/dsindex/syntree
    
    1 프랑스의 프랑스/NNP + 의/JKG NP_MOD 4
    2 세계적인 세계/NNG + 적/XSN + 이/VCP + ᆫ/ETM VNP_MOD 4
    3 의상 의상/NNG NP 4
    4 디자이너 디자이너/NNG NP 6
    5 엠마누엘 엠마누엘/NNP NP 6
    6 웅가로가 웅가로/NNP + 가/JKS NP_SBJ 11
    7 실내 실내/NNG NP 8
    8 장식용 장식/NNG + 용/XSN NP 9
    9 직물 직물/NNG NP 10
    10 디자이너로 디자이너/NNG + 로/JKB NP_AJT 11
    11 나섰다. 나서/VV + 었/EP + 다/EF + ./SF VP 0
    
    1 프랑스 프랑스 NNP NNP _ 2 MOD _ _
    2 의 의 JKG JKG _ 8 NP_MOD _ _
    3 세계 세계 NNG NNG _ 4 MOD _ _
    4 적 적 XSN XSN _ 5 MOD _ _
    5 이 이 VCP VCP _ 6 MOD _ _
    6 ᆫ ᆫ ETM ETM _ 8 VNP_MOD _ _
    7 의상 의상 NNG NNG _ 8 NP _ _
    8 디자이너 디자이너 NNG NNG _ 10 NP _ _
    9 엠마누엘 엠마누엘 NNP NNP _ 10 NP _ _
    10 웅가로 웅가로 NNP NNP _ 11 MOD _ _
    11 가 가 JKS JKS _ 18 NP_SBJ _ _
    12 실내 실내 NNG NNG _ 13 NP _ _
    13 장식 장식 NNG NNG _ 14 MOD _ _
    14 용 용 XSN XSN _ 15 NP _ _
    15 직물 직물 NNG NNG _ 16 NP _ _
    16 디자이너 디자이너 NNG NNG _ 17 MOD _ _
    17 로 로 JKB JKB _ 18 NP_AJT _ _
    18 나서 나서 VV VV _ 19 MOD _ _
    19 었 었 EP EP _ 20 MOD _ _
    20 다 다 EF EF _ 21 MOD _ _
    21 . . SF SF _ 0 VP _ _
    
    - evaluation accuracy(UAS) is over 94% with structured model.
      ...
      INFO:tensorflow:Seconds elapsed in evaluation: 116.51, eval metric: 94.07%
      ...
      to the best of my knowledge,
      Korean dependency parsing accuracy(eoj-based) of state of arts is around 91%.
      in this case, however, there should be label bias on computing accuracy 
      because i add 'MOD' label to inter-eojeol relations
      (adjacent morphemes in the same eojeol).
      for fair comparison, 
      we need to convert morpheme-based parse to eoj-based parse before computing accuracy. 
      ...
      accuracy(UAS) = 0.887824
      ...
      i think this result is worse than CRF-ME based parser which i developed 5 months ago. -_-;;
      some kind of tunings are heavily demanding.
    
    - sample
    
    ; 추위와 흥분으로 볼이 발갛게 달아오른 꼬마를 한 명 붙잡았다.
    1   추위와  추위/NNG + 와/JC    NP_CNJ  2   NP_CNJ  2   SUCCESS
    2   흥분으로    흥분/NNG + 으로/JKB NP_AJT  5   NP_AJT  9   FAILURE
    3   볼이    볼/NNG + 이/JKS NP_SBJ  5   NP_SBJ  9   FAILURE
    4   발갛게  발갛/VA + 게/EC VP  5   VP  5   SUCCESS
    5   달아오른    달아오르/VV + ᆫ/ETM VP_MOD  6   VP_MOD  6   SUCCESS
    6   꼬마를  꼬마/NNG + 를/JKO   NP_OBJ  9   NP_OBJ  9   SUCCESS
    7   한  한/MM   DP  8   DP  8   SUCCESS
    8   명  명/NNB  NP_OBJ  9   NP_OBJ  9   SUCCESS
    9   붙잡았다.   붙잡/VV + 았/EP + 다/EF + ./SF  VP  0   ROOT    0   SUCCESS
    
    ; 그 날 지회에서는 해직교사 비상대책회의인가 하는 조금은 살벌한 회의가 열렸다.
    1   그  그/MM   DP  2   MOD 2   SUCCESS
    2   날  날/NNG  NP_AJT  10  NP_AJT  10  SUCCESS
    3   지회에서는  지회/NNG + 에서/JKB + 는/JX NP_AJT  10  NP_AJT  10  SUCCESS
    4   해직교사    해직/NNG + 교사/NNG NP  5   MOD 5   SUCCESS
    5   비상대책회의인가    비상/NNG + 대책/NNG + 회의/NNG + 이/VCP + ᆫ가/EC    VNP 6   VNP 6   SUCCESS
    6   하는    하/VV + 는/ETM  VP_MOD  9   VP_MOD  7   FAILURE
    7   조금은  조금/NNG + 은/JX    NP_AJT  8   NP_AJT  10  FAILURE
    8   살벌한  살벌/NNG + 하/XSA + ᆫ/ETM   VP_MOD  9   VP_MOD  9   SUCCESS
    9   회의가  회의/NNG + 가/JKS   NP_SBJ  10  NP_SBJ  10  SUCCESS
    10  열렸다. 열리/VV + 었/EP + 다/EF + ./SF  VP  0   ROOT    0   SUCCESS
    
    ; 제게 중요한 건 이성주의와는 달리, 인간이 '사고하는' 본질에 따라 합리적으로 사고하거나 행동하지 않는다는 점이었습니다.
    1   제게    저/NP + 에게/JKB    NP_AJT  2   NP_AJT  2   SUCCESS
    2   중요한  중요/NNG + 하/XSA + ᆫ/ETM   VP_MOD  3   VP_MOD  3   SUCCESS
    3   건  것/NNB + ᆫ/JX   NP_SBJ  14  NP_SBJ  14  SUCCESS
    4   이성주의와는    이성주의/NNG + 와/JKB + 는/JX   NP_AJT  5   NP_AJT  5   SUCCESS
    5   달리,   달리/MAG + ,/SP AP  13  AP  14  FAILURE
    6   인간이  인간/NNG + 이/JKS   NP_SBJ  12  NP_SBJ  14  FAILURE
    7   '사고하는'  '/SS + 사고/NNG + 하/XSV + 는/ETM + '/SS    VP  8   L   14  FAILURE
    8   본질에  본질/NNG + 에/JKB   NP_AJT  12  NP_AJT  9   FAILURE
    9   따라    따르/VV + 아/EC VP  10  VP  12  FAILURE
    10  합리적으로  합리/NNG + 적/XSN + 으로/JKB    NP_AJT  12  NP_AJT  12  SUCCESS
    11  사고하거나  사고/NNG + 하/XSV + 거나/EC VP  12  VP  12  SUCCESS
    12  행동하지    행동/NNG + 하/XSV + 지/EC   VP  13  VP  13  SUCCESS
    13  않는다는    않/VX + 는다는/ETM  VP_MOD  14  VP_MOD  14  SUCCESS
    14  점이었습니다.   점/NNG + 이/VCP + 었/EP + 습니다/EF + ./SF  VNP 0   ROOT    0   SUCCESS
    
Clone this wiki locally