MCPcopy Create free account
hub / github.com/RingBDStack/GDAP / DyIEPP

Class DyIEPP

data_convert/task_format/event_extraction.py:8–42  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6 def generate_sentence(self): pass
7
8class DyIEPP(TaskFormat):
9 def __init__(self, doc_json):
10 self.doc_key = doc_json['doc_key']
11 self.sentences = doc_json['sentences']
12 self.ner = doc_json['ner']
13 self.relations = doc_json['relations']
14 self.events = doc_json['events']
15 self.sentence_start = doc_json.get('sentence_start', doc_json['_sentence_start'])
16
17 def generate_sentence(self, type_format='subtype'):
18 for sentence, events_in_sentence, sentence_start in zip(self.sentences, self.events, self.sentence_start):
19 events = list()
20 for event in events_in_sentence: # 一个trigger代表一个事件的形式
21 trigger, event_type = event[0]
22 trigger -= sentence_start # sentence_start 指的是该句在整个document中的位置
23
24 suptype, subtype = event_type.split('.') # XX.YY 类别信息, XX为大类别, YY为小类别
25
26 if type_format == 'subtype':
27 event_type = subtype
28 elif type_format == 'suptype':
29 event_type = suptype
30 else:
31 event_type = suptype + type_format + subtype
32
33 arguments = list()
34 for start, end, role in event[1:]:
35 start -= sentence_start
36 end -= sentence_start
37 arguments += [[role, list(range(start, end + 1))]]
38
39 event = {'type': event_type, 'tokens': [trigger], 'arguments': arguments}
40
41 events += [event]
42 yield {'tokens': sentence, 'events': events}
43
44
45class Event(TaskFormat):

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected