示例#1
0
    def _set_model(self, **keywords):
        """
        Define the sequence model for the calculation.

        Parameters
        ----------
        model : { None, Model } (default=None)
            Specify the sound-class model to which the strings shall be
            converted.
        """
        defaults = dict(
            model=rcParams['sca'],
            stress=rcParams['stress'],
            transform=rcParams['align_transform'])
        for k in defaults:
            if k not in keywords:
                keywords[k] = defaults[k]

        if isinstance(keywords['model'], (text_type, str)):
            self.model = rcParams[keywords['model']]
        else:
            self.model = keywords['model']

        self.classes = []
        for clA, clB in map(
            lambda x: (
                tokens2class(x[0], self.model, stress=keywords['stress']),
                tokens2class(x[1], self.model, stress=keywords['stress'])),
            self.tokens
        ):
            self.classes += [(clA, clB)]

        self.weights = []
        for prA, prB in self.prostrings:
            self.weights += [(
                prosodic_weights(prA, _transform=keywords['transform']),
                prosodic_weights(prB, _transform=keywords['transform'])
            )]

        self.scoredict = self.model.scorer
示例#2
0
    def _set_model(self, **keywords):
        """
        Define the sequence model for the calculation.

        Parameters
        ----------
        model : { None, Model } (default=None)
            Specify the sound-class model to which the strings shall be
            converted.
        """
        defaults = dict(
            model=rcParams['sca'],
            stress=rcParams['stress'],
            transform=rcParams['align_transform'])
        for k in defaults:
            if k not in keywords:
                keywords[k] = defaults[k]

        if isinstance(keywords['model'], (text_type, str)):
            self.model = rcParams[keywords['model']]
        else:
            self.model = keywords['model']

        self.classes = []
        for clA, clB in map(
            lambda x: (
                tokens2class(x[0], self.model, stress=keywords['stress']),
                tokens2class(x[1], self.model, stress=keywords['stress'])),
            self.tokens
        ):
            self.classes += [(clA, clB)]

        self.weights = []
        for prA, prB in self.prostrings:
            self.weights += [(
                prosodic_weights(prA, _transform=keywords['transform']),
                prosodic_weights(prB, _transform=keywords['transform'])
            )]

        self.scoredict = self.model.scorer
示例#3
0
    def test_prosodic_weights(self):
        seq = 'tʰ ɔ x t ə r'.split(' ')

        assert prosodic_weights(prosodic_string(seq))[0] == 2
        assert prosodic_weights(prosodic_string(seq))[-1] == 0.8
示例#4
0
def test_prosodic_weights():

    seq = 'tʰ ɔ x t ə r'.split(' ')

    assert prosodic_weights(prosodic_string(seq))[0] == 2
    assert prosodic_weights(prosodic_string(seq))[-1] == 0.8