-
Notifications
You must be signed in to change notification settings - Fork 5
/
coreference_resolver_builder.py
executable file
·63 lines (51 loc) · 1.71 KB
/
coreference_resolver_builder.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
# Copyright 2021 BBC
# Authors: Chris Newell <chris.newell@bbc.co.uk>
#
# License: Apache-2.0
"""
This application trains and/or evaluates a Citron Coreference Resolver.
"""
import argparse
import logging
from citron.coreference import CoreferenceResolver
from citron import utils
from citron.logger import logger
def main():
parser = argparse.ArgumentParser(
description="Build and/or evaluate a Coreference Resolver model",
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument("-v",
action = "store_true",
default = False,
help = "Verbose mode"
)
parser.add_argument("--train-path",
metavar = "train_path",
type = str,
help = "Optional: Path to file or directory containing Citron format training data (default: no training)"
)
parser.add_argument("--test-path",
metavar = "test_path",
type = str,
help = "Optional: Path to file or directory containing Citron format test data (default: no testing)"
)
parser.add_argument("--model-path",
metavar = "model_path",
type = str,
required=True,
help = "Path to the Citron model directory"
)
args = parser.parse_args()
if args.v:
logger.setLevel(logging.DEBUG)
nlp = utils.get_parser()
if args.train_path:
CoreferenceResolver.build_model(nlp, args.train_path, args.model_path)
if args.test_path:
coreference_resolver = CoreferenceResolver(args.model_path)
coreference_resolver.evaluate(nlp, args.test_path)
if not (args.train_path or args.test_path):
logger.error("Must specify train_path and/or test_path")
if __name__ == "__main__":
main()