mirror of
https://github.com/explosion/spaCy.git
synced 2025-01-12 10:16:27 +03:00
Simplify CLI implementation for subcommands. Remove model command.
This commit is contained in:
parent
33e2222839
commit
80e19a2399
|
@ -69,29 +69,6 @@ def package(input_dir, output_dir, meta=None, force=False):
|
||||||
cli_package(input_dir, output_dir, meta, force)
|
cli_package(input_dir, output_dir, meta, force)
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
lang=("model language", "positional", None, str),
|
|
||||||
output_dir=("output directory to store model in", "positional", None, str),
|
|
||||||
train_data=("location of JSON-formatted training data", "positional", None, str),
|
|
||||||
dev_data=("location of JSON-formatted development data (optional)", "positional", None, str),
|
|
||||||
n_iter=("number of iterations", "option", "n", int),
|
|
||||||
nsents=("number of sentences", "option", None, int),
|
|
||||||
parser_L1=("L1 regularization penalty for parser", "option", "L", float),
|
|
||||||
use_gpu=("Use GPU", "flag", "g", bool),
|
|
||||||
no_tagger=("Don't train tagger", "flag", "T", bool),
|
|
||||||
no_parser=("Don't train parser", "flag", "P", bool),
|
|
||||||
no_entities=("Don't train NER", "flag", "N", bool)
|
|
||||||
)
|
|
||||||
def train(lang, output_dir, train_data, dev_data=None, n_iter=15,
|
|
||||||
nsents=0, parser_L1=0.0, use_gpu=False,
|
|
||||||
no_tagger=False, no_parser=False, no_entities=False):
|
|
||||||
"""
|
|
||||||
Train a model. Expects data in spaCy's JSON format.
|
|
||||||
"""
|
|
||||||
nsents = nsents or None
|
|
||||||
cli_train(lang, output_dir, train_data, dev_data, n_iter, nsents,
|
|
||||||
use_gpu, no_tagger, no_parser, no_entities, parser_L1)
|
|
||||||
|
|
||||||
@plac.annotations(
|
@plac.annotations(
|
||||||
input_file=("input file", "positional", None, str),
|
input_file=("input file", "positional", None, str),
|
||||||
output_dir=("output directory for converted file", "positional", None, str),
|
output_dir=("output directory for converted file", "positional", None, str),
|
||||||
|
@ -105,19 +82,6 @@ def convert(input_file, output_dir, n_sents=10, morphology=False):
|
||||||
"""
|
"""
|
||||||
cli_convert(input_file, output_dir, n_sents, morphology)
|
cli_convert(input_file, output_dir, n_sents, morphology)
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
lang=("model language", "positional", None, str),
|
|
||||||
model_dir=("output directory to store model in", "positional", None, str),
|
|
||||||
freqs_data=("tab-separated frequencies file", "positional", None, str),
|
|
||||||
clusters_data=("Brown clusters file", "positional", None, str),
|
|
||||||
vectors_data=("word vectors file", "positional", None, str)
|
|
||||||
)
|
|
||||||
def model(lang, model_dir, freqs_data, clusters_data=None, vectors_data=None):
|
|
||||||
"""
|
|
||||||
Initialize a new model and its data directory.
|
|
||||||
"""
|
|
||||||
cli_model(lang, model_dir, freqs_data, clusters_data, vectors_data)
|
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
@plac.annotations(
|
||||||
lang=("model language", "positional", None, str),
|
lang=("model language", "positional", None, str),
|
||||||
|
@ -131,13 +95,12 @@ def model(lang, model_dir, freqs_data, clusters_data=None, vectors_data=None):
|
||||||
no_parser=("Don't train parser", "flag", "P", bool),
|
no_parser=("Don't train parser", "flag", "P", bool),
|
||||||
no_entities=("Don't train NER", "flag", "N", bool)
|
no_entities=("Don't train NER", "flag", "N", bool)
|
||||||
)
|
)
|
||||||
def train(self, lang, output_dir, train_data, dev_data=None, n_iter=15,
|
def train(lang, output_dir, train_data, dev_data=None, n_iter=15,
|
||||||
nsents=0, use_gpu=False,
|
nsents=0, use_gpu=False,
|
||||||
no_tagger=False, no_parser=False, no_entities=False):
|
no_tagger=False, no_parser=False, no_entities=False):
|
||||||
"""
|
"""
|
||||||
Train a model. Expects data in spaCy's JSON format.
|
Train a model. Expects data in spaCy's JSON format.
|
||||||
"""
|
"""
|
||||||
print(train_data, dev_data)
|
|
||||||
nsents = nsents or None
|
nsents = nsents or None
|
||||||
cli_train(lang, output_dir, train_data, dev_data, n_iter, nsents,
|
cli_train(lang, output_dir, train_data, dev_data, n_iter, nsents,
|
||||||
use_gpu, no_tagger, no_parser, no_entities)
|
use_gpu, no_tagger, no_parser, no_entities)
|
||||||
|
@ -146,7 +109,21 @@ def train(self, lang, output_dir, train_data, dev_data=None, n_iter=15,
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import plac
|
import plac
|
||||||
import sys
|
import sys
|
||||||
if sys.argv[1] == 'train':
|
commands = {
|
||||||
plac.call(train)
|
'train': train,
|
||||||
if sys.argv[1] == 'convert':
|
'convert': convert,
|
||||||
plac.call(convert)
|
'download': download,
|
||||||
|
'link': link,
|
||||||
|
'info': info,
|
||||||
|
'package': package,
|
||||||
|
}
|
||||||
|
if len(sys.argv) == 1:
|
||||||
|
print("Available commands: %s" % ', '.join(sorted(commands)))
|
||||||
|
sys.exit(1)
|
||||||
|
command = sys.argv.pop(1)
|
||||||
|
sys.argv[0] = 'spacy %s' % command
|
||||||
|
if command in commands:
|
||||||
|
plac.call(commands[command])
|
||||||
|
else:
|
||||||
|
print("Unknown command: %s. Available: %s" % (command, ', '.join(commands)))
|
||||||
|
sys.exit(1)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user