summaryrefslogtreecommitdiff
path: root/sa-extract/manager.py
diff options
context:
space:
mode:
Diffstat (limited to 'sa-extract/manager.py')
-rw-r--r--sa-extract/manager.py100
1 files changed, 0 insertions, 100 deletions
diff --git a/sa-extract/manager.py b/sa-extract/manager.py
deleted file mode 100644
index 3a079c2a..00000000
--- a/sa-extract/manager.py
+++ /dev/null
@@ -1,100 +0,0 @@
-import csuf
-import cdat
-import cintlist
-
-class Sampler(object):
- '''A Sampler implements a logic for choosing
- samples from a population range'''
-
- def __init__(self):
- pass
-
- def registerContext(self, context_manager):
- self.context_manager = context_manager
-
- def sample(self, phrase_location):
- return cintlist.CIntList()
-
-
-class Extractor(object):
- '''Extractor is responsible for extracting rules
- from a given context; once a sentence id/location
- is found for the source fwords, extractor is
- responsible for producing any matching rule(s).
- Optionally, extractor may return an empty list'''
-
- def __init__(self):
- pass
-
- def registerContext(self, context_manager):
- self.context_manager = context_manager
-
- def extract(self, fwords, loc):
- return []
-
-
-
-class RuleFactory(object):
- '''RuleFactory is a class that manages the
- generation of translation rules, using the Context
- and (optionally) any of its contained classes or
- data. The RuleFactory is responsible for handling
- any caching (i.e. when presented with an input
- sentence, it may lookup a rule from its cache
- rather than extracting a new rule)'''
-
- def __init__(self):
- self.num_lookups = 0
- self.num_extractions = 0
- self.num_rules = 0
- self.time = 0.0
-
-
- def registerContext(self, context_manager):
- self.context_manager = context_manager
-
-
- def input(self, fwords):
- '''Manages the process of enumerating
- rules for a given input sentence, and
- looking them with calls to Context,
- Sampler, and Extractor'''
- return []
-
-
-class ContextManager(object):
-
- def __init__(self, ffile, efile, extractor=None, sampler=None, rulefactory=None, from_binary=False):
- # NOTE: Extractor does not have a default value because
- # the only nontrivial extractor right now depends on an
- # alignment file
-
- self.fsarray = csuf.SuffixArray(ffile, from_binary)
- self.edarray = cdat.DataArray(efile, from_binary)
-
- self.factory = rulefactory
- self.factory.registerContext(self)
-
- self.sampler = sampler
- self.sampler.registerContext(self)
-
- self.models = []
- self.owner = None
-
-
- def add_model(self, model):
- if self.owner is None:
- self.owner = model
- model_id = len(self.models)
- self.models.append(model)
- return model_id
-
-
- def input(self, model, fwords, meta):
- if model != self.owner:
- return
- self.fwords = fwords
- self.factory.input(self.fwords, meta)
-
-
-