Пример #1
0
    def calculate_bias_scores(self, docs, key):
        """
        Return a list of BiasScore instances for +docs+, where groups are calculated
        by grouping by the +key+ function.
        """
        docs.sort(key=key)
        entropy = calculate_entropy(self.count_sources(docs, key))

        return [self.calculate_bias(k, list(group), entropy) for k, group in groupby(docs, key)]
Пример #2
0
    def calculate_bias_scores(self, docs, key):
        """
        Return a list of BiasScore instances for +docs+, where groups are calculated
        by grouping by the +key+ function.
        """
        docs.sort(key=key)
        entropy = calculate_entropy(self.count_sources(docs, key))

        return [
            self.calculate_bias(k, list(group), entropy)
            for k, group in groupby(docs, key)
        ]
Пример #3
0
    def test_entropy_all_zeros(self):
        table = {
            'The Star': {
                'AMP': 0,
                'ACDP': 0,
                'ANC': 0,
            },
            'Beeld': {
                'ANC': 0,
            },
        }

        entropies = calculate_entropy(table)

        self.assertAlmostEqual(0, entropies['The Star'], 2)
        self.assertAlmostEqual(0, entropies['Beeld'], 2)
Пример #4
0
    def test_entropy_all_zeros(self):
        table = {
            'The Star': {
                'AMP': 0,
                'ACDP': 0,
                'ANC': 0,
            },
            'Beeld': {
                'ANC': 0,
            },
        }

        entropies = calculate_entropy(table)

        self.assertAlmostEqual(0, entropies['The Star'], 2)
        self.assertAlmostEqual(0, entropies['Beeld'], 2)
Пример #5
0
    def test_entropy_simple(self):
        table = {
            'The Star': {
                'AMP': 6,
                'ACDP': 6,
                'ANC': 200,
            },
            'Beeld': {
                'ANC': 14,
            },
            'Sowetan': {
                'Foo': 6,
                'AMP': 4,
                'ACDP': 5,
                'ANC': 252,
            },
            'BD': {
                'Foo': 81,
                'ACDP': 10,
                'ANC': 610,
            },
            'Citizen': {
                'Foo': 11,
                'AMP': 5, 
                'ACDP': 2,
                'ANC': 301,
            },
        }

        entropies = calculate_entropy(table)

        self.assertAlmostEqual(0.74, entropies['The Star'], 2)
        self.assertAlmostEqual(0.0, entropies['Beeld'], 2)
        self.assertAlmostEqual(0.93, entropies['Sowetan'], 2)
        self.assertAlmostEqual(0.76, entropies['BD'], 2)
        self.assertAlmostEqual(0.9, entropies['Citizen'], 2)
Пример #6
0
    def test_entropy_simple(self):
        table = {
            'The Star': {
                'AMP': 6,
                'ACDP': 6,
                'ANC': 200,
            },
            'Beeld': {
                'ANC': 14,
            },
            'Sowetan': {
                'Foo': 6,
                'AMP': 4,
                'ACDP': 5,
                'ANC': 252,
            },
            'BD': {
                'Foo': 81,
                'ACDP': 10,
                'ANC': 610,
            },
            'Citizen': {
                'Foo': 11,
                'AMP': 5,
                'ACDP': 2,
                'ANC': 301,
            },
        }

        entropies = calculate_entropy(table)

        self.assertAlmostEqual(0.74, entropies['The Star'], 2)
        self.assertAlmostEqual(0.0, entropies['Beeld'], 2)
        self.assertAlmostEqual(0.93, entropies['Sowetan'], 2)
        self.assertAlmostEqual(0.76, entropies['BD'], 2)
        self.assertAlmostEqual(0.9, entropies['Citizen'], 2)
Пример #7
0
 def test_entropy_none(self):
     table = {}
     self.assertEqual(
             calculate_entropy(table),
             {})
Пример #8
0
 def test_entropy_none(self):
     table = {}
     self.assertEqual(calculate_entropy(table), {})