@@ -44,6 +44,7 @@ def drs_generator(data_dct_lst, coref_dictionary):
4444
4545 return drs_dict
4646
47+
4748def get_omit_entities (coref_dictionary ):
4849
4950 omit_list = list ()
@@ -57,6 +58,7 @@ def get_omit_entities(coref_dictionary):
5758 omit_list .append ((key , v ))
5859 return omit_list
5960
61+
6062def get_all_entities (data_dct_lst , omit_list ):
6163 entities = list ()
6264 num = 0
@@ -72,7 +74,7 @@ def get_all_entities(data_dct_lst, omit_list):
7274
7375
7476def mapping_entity (entities ):
75- entities_dictionary = {}
77+ entities_dictionary = dict ()
7678 count = 1 ;
7779 for entity in entities :
7880 entities_dictionary ['r' + str (count )] = entity
@@ -82,7 +84,7 @@ def mapping_entity(entities):
8284
8385
8486def retrieve_property (entities_map ):
85- properties = []
87+ properties = list ()
8688 for key , entity in entities_map .items ():
8789 temp = (key , entity )
8890 properties .append (temp )
@@ -91,7 +93,7 @@ def retrieve_property(entities_map):
9193
9294
9395def retrieve_event (data_dct_lst ):
94- events_dictionary = {}
96+ events_dictionary = dict ()
9597 count = 1 ;
9698 for sentences in data_dct_lst :
9799 for sen in sentences :
@@ -109,7 +111,7 @@ def retrieve_event_type(data_dct_lst):
109111 for sentence in data_dct_lst :
110112 for item in sentence :
111113 if item .get ('PPOS' ) == 'VBD' :
112- event_type_dictionary ['e' + str (count )] = item .get ('vn-pb' )[0 ]['vn' ]
114+ event_type_dictionary ['e' + str (count )] = item .get ('vn-pb' )[0 ][1 ]
113115 count += 1
114116
115117 event_type_list = [(k , v ) for k , v in event_type_dictionary .items ()]
@@ -127,34 +129,40 @@ def retrieve_event_time(events_map):
127129 return event_time_list
128130
129131
130- def retrieve_event_argument (data_dct_lst , property , eventType ):
132+ def retrieve_event_argument (data_dct_lst , property , event_type ):
133+
131134 event_argument_list = list ()
132- sentence_property = list ()
133- sentence_rolesets = list ()
134- for et , sentence in zip (eventType , data_dct_lst ):
135- vn = et [1 ]
135+ event_argument_dict = dict ()
136+ index = 1
137+ for event , sentence in zip (event_type , data_dct_lst ):
138+ arguments_list = list ()
139+ args_to_vn = list ()
140+ event_ref = event [0 ]
141+ for sent in sentence :
142+ if sent .get ('Args' ) != '_' and sent .get ('vn-pb' )[0 ] != '_' :
143+ # use first verb class as vn class
144+ vn_role = sent .get ('vn-pb' )[0 ][1 ]
145+ if sent .get ('PPOS' ) == 'NNP' or sent .get ('PPOS' ) == 'NN' or sent .get ('PPOS' ) == 'TO' :
146+ args_to_vn .append (vn_role )
147+
148+ sub_index = 0
136149 for item in sentence :
137150 tmp = list ()
138151 if item .get ('PPOS' ) == 'NNP' or item .get ('PPOS' ) == 'NN' :
139- sentence_property .append (item .get ('Form' ))
140- tmp += item .get ('vn-pb' )
141- for i in tmp :
142- k_list = [k for k in i .keys ()]
143- for k in k_list :
144- if k == vn :
145- sentence_rolesets .append (i [k ])
146-
147- index = 0
148- count = 0
149- for p , r in zip (sentence_property , sentence_rolesets ):
150- entity = ''
151- for i in property :
152- if i [1 ] == p :
153- entity = i [0 ]
154- event_argument_list .append ((eventType [index ][0 ], r , entity ))
155- count += 1
156- if count == 2 :
157- index += 1
158- count = 0
159-
160- return event_argument_list
152+ tmp .append (event_ref )
153+ tmp .append (args_to_vn [sub_index ])
154+ sub_index += 1
155+ entity = item .get ('Form' )
156+ for (ref , ent ) in property :
157+ if entity == ent :
158+ tmp .append (ref )
159+ break
160+ arguments_list .append (tmp )
161+ event_argument_dict [index ] = arguments_list
162+ index += 1
163+
164+ for value in event_argument_dict .values ():
165+ for v in value :
166+ event_argument_list .append (v )
167+
168+ return event_argument_list
0 commit comments