Guest User

Untitled

a guest
Jul 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.77 KB | None | 0 0
  1. def feature_template(self, state, sentence):
  2. feature_list = np.empty((0), int)
  3. stack = state.stack
  4. buffer = state.buffer
  5. ld = state.ld
  6. rd = state.rd
  7. form = sentence.form
  8. pos = sentence.pos
  9. lemma = sentence.lemma
  10. morph = sentence.morph
  11. head = state.arcs
  12.  
  13. if stack:
  14. s0 = stack[-1]
  15. feature_list = np.append(feature_list, self.get_feature("s0_form="+form[s0]))
  16. feature_list = np.append(feature_list, self.get_feature("s0_pos="+pos[s0]))
  17. feature_list = np.append(feature_list, self.get_feature("s0_lemma="+lemma[s0]))
  18. feature_list = np.append(feature_list, self.get_feature("s0_form_pos="+form[s0]+pos[s0]))
  19. feature_list = np.append(feature_list, self.get_feature("s0_lemma_pos="+lemma[s0]+pos[s0]))
  20.  
  21. if head[s0]>=0:
  22. feature_list = np.append(feature_list, self.get_feature("head_s0_form="+form[head[s0]]))
  23. feature_list = np.append(feature_list, self.get_feature("head_s0_pos="+pos[head[s0]]))
  24. if ld[s0]>=0:
  25. feature_list = np.append(feature_list, self.get_feature("ld_s0_form="+form[ld[s0]]))
  26. feature_list = np.append(feature_list, self.get_feature("ld_s0_pos="+pos[ld[s0]]))
  27. if rd[s0]>=0:
  28. feature_list = np.append(feature_list, self.get_feature("rd_s0_form="+form[rd[s0]]))
  29. feature_list = np.append(feature_list, self.get_feature("rd_s0_pos="+pos[rd[s0]]))
  30. if len(stack)>1:
  31. s1 = stack[-2]
  32. feature_list = np.append(feature_list, self.get_feature("s1_form="+form[s1]))
  33. feature_list = np.append(feature_list, self.get_feature("s1_pos="+pos[s1]))
  34. feature_list = np.append(feature_list, self.get_feature("s1_form_pos="+form[s1]+pos[s1]))
  35. if morph:
  36. feature_list = np.append(feature_list, self.get_feature("s0_morph="+morph[s0]))
  37.  
  38. if buffer:
  39. b0 = buffer[0]
  40. feature_list = np.append(feature_list, self.get_feature("b0_form="+form[b0]))
  41. feature_list = np.append(feature_list, self.get_feature("b0_pos="+pos[b0]))
  42. feature_list = np.append(feature_list, self.get_feature("b0_lemma="+lemma[b0]))
  43. feature_list = np.append(feature_list, self.get_feature("b0_form_pos="+form[b0]+pos[b0]))
  44. feature_list = np.append(feature_list, self.get_feature("b0_lemma_pos="+lemma[b0]+pos[b0]))
  45.  
  46. if head[b0]>=0:
  47. feature_list = np.append(feature_list, self.get_feature("head_b0_form="+form[head[b0]]))
  48. feature_list = np.append(feature_list, self.get_feature("head_b0_pos="+pos[head[b0]]))
  49. if ld[b0]>=0:
  50. feature_list = np.append(feature_list, self.get_feature("ld_b0_form="+form[ld[b0]]))
  51. feature_list = np.append(feature_list, self.get_feature("ld_b0_pos="+pos[ld[b0]]))
  52. if rd[b0]>=0:
  53. feature_list = np.append(feature_list, self.get_feature("rd_b0_form="+form[rd[b0]]))
  54. feature_list = np.append(feature_list, self.get_feature("rd_b0_pos="+pos[rd[b0]]))
  55.  
  56. if len(buffer)>1:
  57. b1 = buffer[1]
  58. feature_list = np.append(feature_list, self.get_feature("b1_form="+form[b1]))
  59. feature_list = np.append(feature_list, self.get_feature("b1_pos="+pos[b1]))
  60. feature_list = np.append(feature_list, self.get_feature("b1_form_pos="+form[b1]+pos[b1]))
  61. feature_list = np.append(feature_list, self.get_feature("b0_form+b1_form="+form[b0]+form[b1]))
  62. feature_list = np.append(feature_list, self.get_feature("b0_pos+b1_pos="+pos[b0]+pos[b1]))
  63. if stack:
  64. feature_list = np.append(feature_list, self.get_feature("b0_pos+b1_pos+s0_pos="+pos[b0]+pos[b1]+pos[stack[-1]]))
  65. if len(buffer)>2:
  66. b2 = buffer[2]
  67. feature_list = np.append(feature_list, self.get_feature("b2_pos="+pos[b2]))
  68. feature_list = np.append(feature_list, self.get_feature("b2_form="+form[b2]))
  69. feature_list = np.append(feature_list, self.get_feature("b2_form_pos="+form[b2]+pos[b2]))
  70. feature_list = np.append(feature_list, self.get_feature("b0_pos+b1_pos+b2_pos="+pos[b0]+pos[b1]+pos[b2]))
  71. if len(buffer)>3:
  72. b3 = buffer[3]
  73. feature_list = np.append(feature_list, self.get_feature("b3_pos="+pos[b3]))
  74.  
  75. if morph:
  76. feature_list = np.append(feature_list, self.get_feature("b0_morph="+morph[b0]))
  77. feature_list = np.append(feature_list, self.get_feature("b0_pos_morph="+pos[b0]+morph[b0]))
  78. if stack and buffer:
  79. s0 = stack[-1]
  80. b0 = buffer[0]
  81. feature_list = np.append(feature_list, self.get_feature("s0_form_pos+b0_form_pos="+form[s0]+pos[s0]+form[b0]+pos[b0]))
  82. feature_list = np.append(feature_list, self.get_feature("s0_form_pos+b0_form="+form[s0]+pos[s0]+form[b0]))
  83. feature_list = np.append(feature_list, self.get_feature("s0_form+b0_form_pos="+form[s0]+form[b0]+pos[b0]))
  84. feature_list = np.append(feature_list, self.get_feature("s0_form_pos+b0_pos="+form[s0]+pos[s0]+pos[b0]))
  85. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_form_pos="+pos[s0]+form[b0]+pos[b0]))
  86. feature_list = np.append(feature_list, self.get_feature("s0_form+b0_form="+form[s0]+form[b0]))
  87. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos="+pos[s0]+pos[b0]))
  88. feature_list = np.append(feature_list, self.get_feature("s0_lemma+b0_lemma="+lemma[s0]+lemma[b0]))
  89.  
  90. if morph:
  91. feature_list = np.append(feature_list, self.get_feature("s0_b0_morph="+morph[s0]+morph[b0]))
  92. feature_list = np.append(feature_list, self.get_feature("s0_b0_pos_morph="+pos[s0]+pos[b0]+morph[s0]+morph[b0]))
  93.  
  94. if head[s0]>=0:
  95. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos+hd_s0_pos="+pos[s0]+pos[b0]+pos[head[s0]]))
  96. if ld[b0]>=0:
  97. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos+ld_s0_pos="+pos[s0]+pos[b0]+pos[ld[s0]]))
  98. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos+ld_b0_pos="+pos[s0]+pos[b0]+pos[ld[b0]]))
  99. if rd[b0]>=0:
  100. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos+rd_s0_pos="+pos[s0]+pos[b0]+pos[rd[s0]]))
  101. feature_list = np.append(feature_list, self.get_feature("s0_pos+b0_pos+rd_b0_pos="+pos[s0]+pos[b0]+pos[rd[b0]]))
Add Comment
Please, Sign In to add comment