-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathalign_AMR.py
More file actions
executable file
·45 lines (35 loc) · 1.25 KB
/
align_AMR.py
File metadata and controls
executable file
·45 lines (35 loc) · 1.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import amrlib
from amrlib.alignments.rbw_aligner import RBWAligner
from amrlib.graph_processing.annotator import add_lemmas,annotate_graph
import penman
from penman.surface import Alignment
import os
import sys
if __name__ == '__main__':
graph_string = sys.argv[1]
penman_graph = annotate_graph(graph_string)
tokens = eval(penman_graph.metadata["tokens"])
ner_tags = eval(penman_graph.metadata["ner_tags"])
ner_iob = eval(penman_graph.metadata["ner_iob"])
pos_tags = eval(penman_graph.metadata["pos_tags"])
lemmas = eval(penman_graph.metadata["lemmas"])
aligner = RBWAligner.from_penman_w_json(penman_graph)
aligned_graph = aligner.get_penman_graph()
alignments = penman.surface._get_alignments(aligned_graph, Alignment)
for key in alignments:
print(key[0],alignments[key].indices)
print("###tokens")
for token in tokens:
print(token,end="<###>")
print("\n###ner_tags")
for ner in ner_tags:
print(ner,end="<###>")
print("\n###ner_iob_tags")
for ner_iob_tag in ner_iob:
print(ner_iob_tag,end="<###>")
print("\n###pos_tags")
for pos in pos_tags:
print(pos,end="<###>")
print("\n###lemmas")
for lemma in lemmas:
print(lemma,end="<###>")