-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy patharguminsci.py
79 lines (73 loc) · 2.94 KB
/
arguminsci.py
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import warnings
warnings.filterwarnings("ignore")
import argparse
import codecs
import serve
import os
parser = argparse.ArgumentParser(description='Analyze Argumentation and Rhetorical Aspects in Scientific Writing.')
parser.add_argument('inputfile', type=str, help='The name of the textual file containing the input text.')
parser.add_argument('outputfolder', type=str, help='The name of the output folder where the output should be stored.')
parser.add_argument("--argumentation", help="Extract argument components.", action="store_true")
parser.add_argument("--discourse", help="Analyze discourse roles.", action="store_true")
parser.add_argument("--aspect", help="Analyze subjective aspects.", action="store_true")
parser.add_argument("--citation", help="Extract citation contexts.", action="store_true")
parser.add_argument("--summary", help="Assign summary relevance.", action="store_true")
args = parser.parse_args()
if not args.argumentation and not args.discourse and not args.aspect and not args.citation and not args.summary:
parser.print_help()
exit()
print("ArguminSci started")
print("Reading " + args.inputfile)
text = ""
with codecs.open(args.inputfile, "r", "utf8") as input:
text = input.read()
input.close()
print("Input loaded")
print("Load model(s)")
if args.argumentation:
argumentation_model = serve.Model("argumentation")
if args.discourse:
discourse_model = serve.Model("discourse")
if args.aspect:
aspect_model = serve.Model("aspect")
if args.citation:
citation_model = serve.Model("citation")
if args.summary:
summary_model = serve.Model("summary")
print("Model(s) loaded")
print("Predict")
if args.argumentation:
argumentation = argumentation_model.predict(text)
if args.discourse:
discourse = discourse_model.predict(text)
if args.aspect:
aspect = aspect_model.predict(text)
if args.citation:
citation = citation_model.predict(text)
if args.summary:
summary = summary_model.predict(text)
print("Predicted")
print("Writing output")
if not os.path.exists(args.outputfolder):
os.makedirs(args.outputfolder)
if args.argumentation:
with codecs.open(os.path.join(args.outputfolder, "argumentation.txt"), "w", "utf8") as output:
output.write(str(argumentation))
output.close()
if args.discourse:
with codecs.open(os.path.join(args.outputfolder, "discourse.txt"), "w", "utf8") as output:
output.write(str(discourse))
output.close()
if args.aspect:
with codecs.open(os.path.join(args.outputfolder, "aspect.txt"), "w", "utf8") as output:
output.write(str(aspect))
output.close()
if args.citation:
with codecs.open(os.path.join(args.outputfolder, "citation.txt"), "w", "utf8") as output:
output.write(str(citation))
output.close()
if args.summary:
with codecs.open(os.path.join(args.outputfolder, "summary.txt"), "w", "utf8") as output:
output.write(str(summary))
output.close()
print("Saved output in " + args.outputfolder)