camel_tools.morphology.generator¶
The generator component of CAMeL Tools.
Classes¶
-
class
camel_tools.morphology.generator.Generator(db)¶ Morphological generator component.
Parameters: db ( MorphologyDB) – Database to use for generation. Must be opened in generation or reinflection mode.Raises: GeneratorError– If db is not an instance ofMorphologyDBor if db does not support generation.-
all_feats()¶ Return a set of all features provided by the database used in this generator instance.
Returns: The set all features provided by the database used in this generator instance. Return type: frozensetofstr
-
generate(lemma, feats)¶ Generate surface forms and their associated analyses for a given lemma and a given set of (possibly underspecified) features. The surface form is accessed through the diac feature.
Parameters: - lemma (
str) – Lemma to generate from. - feats (
dict) – Dictionary of features. Must contain ‘pos’ feature. See CAMeL Morphology Features for more information on features and their values.
Returns: List of generated analyses. See CAMeL Morphology Features for more information on features and their values.
Return type: Raises: InvalidGeneratorFeature– If a feature is given that is not defined in database.InvalidGeneratorFeatureValue– If an invalid value is given to a feature or if ‘pos’ feature is not defined.
- lemma (
-
Examples¶
from camel_tools.morphology.database import MorphologyDB
from camel_tools.morphology.generator import Generator
# Initialize database in generation mode
db = MorphologyDB.builtin_db(flags='g')
# Create generator instance
generator = Generator(db)
# Specify lemma and features to generate for
lemma = 'شارِع'
features = {
'pos': 'noun',
'gen': 'm',
'num': 'p'
}
# Generate analyses for lemma and features
analyses = generator.generate(lemma, features)