Coverage for lingpy/data/model.py : 95%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
""" Module for handling sequence models. """
""" Class for the handling of sound-class models.
Parameters ----------
model : { 'sca', 'dolgo', 'asjp', 'art', '_color' } A string indicating the name of the model which shall be loaded. Select between:
* 'sca' - the SCA sound-class model (see :evobib:`List2012a`), * 'dolgo' - the DOLGO sound-class model (see: :evobib:`Dolgopolsky1986'), * 'asjp' - the ASJP sound-class model (see :evobib:`Brown2008` and :evobib:`Brown2011`), * 'art' - the sound-class model which is used for the calculation of sonority profiles and prosodic strings (see :evobib:`List2012`), and * '_color' - the sound-class model which is used for the coloring of sound-tokens when creating html-output.
Notes ----- Models are loaded from binary files which can be found in the :file:`data/models/` folder of the LingPy package. A model has two essential attributes:
* :py:attr:`converter` -- a dictionary with IPA-tokens as keys and sound-class characters as values, and * :py:attr:`scorer` -- a scoring dictionary with tuples of sound-class characters as keys and scores (integers or floats) as values.
Attributes ---------- converter : dict A dictionary with IPA tokens as keys and sound-class characters as values.
scorer : dict A scoring dictionary with tuples of sound-class characters as keys and similarity scores as values.
info : dict A dictionary storing the key-value pairs defined in the ``INFO``.
name : str The name of the model which is identical with the name of the folder from wich the model is loaded.
Examples -------- When loading LingPy, the models ``sca``, ``asjp``, ``dolgo``, and ``art`` are automatically loaded, and they are accessible via the :py:func:`~lingpy.settings.rc` function for global settings:
>>> from lingpy import * >>> rc('asjp') <sca-model "asjp">
Define variables for the standard models for convenience:
>>> asjp = rc('asjp') >>> sca = rc('sca') >>> dolgo = rc('dolgo') >>> art = rc('art')
Check how the letter ``a`` is converted in the various models:
>>> for m in [asjp,sca,dolgo,art]: ... print('{0} > {1} ({2})'.format('a',m.converter['a'],m.name)) ... a > a (asjp) a > A (sca) a > V (dolgo) a > 7 (art)
Retrieve basic information of a given model:
>>> print(sca) Model: sca Info: Extended sound class model based on Dolgopolsky (1986) Source: List (2012) Compiler: Johann-Mattis List Date: 2012-03
See also -------- lingpy.data.derive.compile_model lingpy.data.derive.compile_dvt
"""
os.path.join(path or util.data_path('models'), model, *cmps)
# try to load the converter
# give always preference to scorer matrix files self.scorer = cache.load(model + '.scorer') except compat.FileNotFoundError: pass # if none of the above fits, leave it else: pass
# read information from the info-file
# check for vowels and tones
self.name, self.info['description'], self.info['source'], self.info['compiler'], self.info['date'] )
""" Compare a sound-class model with another model. """
""" Use the call-shortcut to retrieve the scoring function. """
""" Function loads the default characters for IPA diacritics and IPA vowels of LingPy. """ # check for specific evolaemp path which sues asjp alphabet instead of IPA else:
|