mirror of https://github.com/explosion/spaCy.git
* Reform constructor and save/load workflow in parser model
This commit is contained in:
parent
1d7f2d3abc
commit
a3d5e6c0dd
|
@ -11,7 +11,6 @@ from .stateclass cimport StateClass
|
||||||
|
|
||||||
|
|
||||||
cdef class Parser:
|
cdef class Parser:
|
||||||
cdef readonly object cfg
|
|
||||||
cdef readonly Model model
|
cdef readonly Model model
|
||||||
cdef readonly TransitionSystem moves
|
cdef readonly TransitionSystem moves
|
||||||
|
|
||||||
|
|
|
@ -67,16 +67,22 @@ def ParserFactory(transition_system):
|
||||||
|
|
||||||
|
|
||||||
cdef class Parser:
|
cdef class Parser:
|
||||||
def __init__(self, StringStore strings, model_dir, transition_system):
|
def __init__(self, StringStore strings, transition_system, model):
|
||||||
|
self.moves = transition_system
|
||||||
|
self.model = model
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_dir(cls, model_dir, strings, transition_system):
|
||||||
if not os.path.exists(model_dir):
|
if not os.path.exists(model_dir):
|
||||||
print >> sys.stderr, "Warning: No model found at", model_dir
|
print >> sys.stderr, "Warning: No model found at", model_dir
|
||||||
elif not os.path.isdir(model_dir):
|
elif not os.path.isdir(model_dir):
|
||||||
print >> sys.stderr, "Warning: model path:", model_dir, "is not a directory"
|
print >> sys.stderr, "Warning: model path:", model_dir, "is not a directory"
|
||||||
else:
|
cfg = Config.read(model_dir, 'config')
|
||||||
self.cfg = Config.read(model_dir, 'config')
|
moves = transition_system(strings, cfg.labels)
|
||||||
self.moves = transition_system(strings, self.cfg.labels)
|
templates = get_templates(cfg.features)
|
||||||
templates = get_templates(self.cfg.features)
|
model = Model(moves.n_moves, templates, model_dir)
|
||||||
self.model = Model(self.moves.n_moves, templates, model_dir)
|
return cls(strings, moves, model)
|
||||||
|
|
||||||
|
|
||||||
def __call__(self, Doc tokens):
|
def __call__(self, Doc tokens):
|
||||||
cdef StateClass stcls = StateClass.init(tokens.data, tokens.length)
|
cdef StateClass stcls = StateClass.init(tokens.data, tokens.length)
|
||||||
|
|
Loading…
Reference in New Issue