Beispiel #1
0
    def test_calculate_one_way_likelihood_bigram_and_target_comes_before(self):
        mock_context_item_0 = mock()
        context = [mock_context_item_0]

        target = mock()

        wrapped_calculator = mock()

        calculation_context = None

        when(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_0], False,
            calculation_context).thenReturn(0.5)

        interpolating_calculator = InterpolatingLikelihoodCalculator(
            wrapped_calculator)

        interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(
            target, context, False, calculation_context)

        assert_that(interpolated_likelihood, equal_to(0.5))

        verify(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_0], False, calculation_context)
        verifyNoMoreInteractions(wrapped_calculator)
    def test_calculate_one_way_likelihood_4gram_and_target_comes_after(self):
        # not practical but just try
        mock_context_item_0 = mock()
        mock_context_item_1 = mock()
        mock_context_item_2 = mock()
        context = [mock_context_item_0, mock_context_item_1, mock_context_item_2]

        target = mock()

        wrapped_calculator = mock()

        calculation_context = None

        when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_2], True, calculation_context).thenReturn(0.5)
        when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_1, mock_context_item_2], True, calculation_context).thenReturn(0.2)
        when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0, mock_context_item_1, mock_context_item_2], True,
            calculation_context).thenReturn(0.05)

        interpolating_calculator = InterpolatingLikelihoodCalculator(wrapped_calculator)

        interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(target, context, True, calculation_context)

        assert_that(interpolated_likelihood, equal_to(0.5 * 1 / 111 + 0.2 * 10 / 111 + 0.05 * 100 / 111))

        verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_2], True, calculation_context)
        verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_1, mock_context_item_2], True, calculation_context)
        verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0, mock_context_item_1, mock_context_item_2], True,
            calculation_context)
        verifyNoMoreInteractions(wrapped_calculator)
Beispiel #3
0
    def test_calculate_one_way_likelihood_trigram_and_target_comes_after(self):
        mock_context_item_0 = mock()
        mock_context_item_1 = mock()
        context = [mock_context_item_0, mock_context_item_1]

        target = mock()

        wrapped_calculator = mock()

        calculation_context = None

        when(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_1], True,
            calculation_context).thenReturn(0.5)
        when(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_0, mock_context_item_1], True,
            calculation_context).thenReturn(0.2)

        interpolating_calculator = InterpolatingLikelihoodCalculator(
            wrapped_calculator)

        interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(
            target, context, True, calculation_context)

        assert_that(interpolated_likelihood,
                    equal_to(0.5 * 1 / 11 + 0.2 * 10 / 11))

        verify(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_1], True, calculation_context)
        verify(wrapped_calculator).calculate_oneway_likelihood(
            target, [mock_context_item_0, mock_context_item_1], True,
            calculation_context)
        verifyNoMoreInteractions(wrapped_calculator)
    def test_calculate_one_way_likelihood_bigram_and_target_comes_before(self):
        mock_context_item_0 = mock()
        context = [mock_context_item_0]

        target = mock()

        wrapped_calculator = mock()

        calculation_context = None

        when(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0], False, calculation_context).thenReturn(0.5)

        interpolating_calculator = InterpolatingLikelihoodCalculator(wrapped_calculator)

        interpolated_likelihood = interpolating_calculator.calculate_oneway_likelihood(target, context, False, calculation_context)

        assert_that(interpolated_likelihood, equal_to(0.5))

        verify(wrapped_calculator).calculate_oneway_likelihood(target, [mock_context_item_0], False, calculation_context)
        verifyNoMoreInteractions(wrapped_calculator)