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 of MorphologyDB or 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:frozenset of str
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:

list of dict

Raises:
tok_feats()

Return a set of tokenization features provided by the database used in this generator instance.

Returns:The set tokenization features provided by the database used in this generator instance.
Return type:frozenset of str

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)