def test_timestamp_extraction(self): sections = DOCSECTIONS.xt(self.doc) self.assertEquals(sections[12]['timestamps'], [[13, 36, 43], [14, 5]]) self.assertEquals(sections[12]['ref_timestamp'], [14, 5]) self.assertEquals(sections[13]['timestamps'], []) # No timestamps here self.assertEquals(sections[13]['ref_timestamp'], [14, 5]) # .. use latest from prev self.assertEquals(sections[29]['timestamps'], [[15, 11, 6], [15, 11]])
def test_plaintext_extraction(self): unicode_firstp = u"""Für diese Sitzung hat das Bundeskanzleramt über Vertretung von Mitgliedern der Bundesregierung folgende Mitteilungen gemacht:""" unicode_secondp = u"""Die Bundesministerin für Familien und Jugend Dr. Sophie Karmasin wird durch die Bundesministerin für Inneres Mag. Johanna Mikl-Leitner vertreten.""" sections = DOCSECTIONS.xt(self.doc) section = sections[3] paragraphs = section['full_text'].split('\n\n') self.assertEquals(len(paragraphs), 5, "Statement contains 5 paragraphs") self.assertEquals(paragraphs[0], unicode_firstp) self.assertEquals(paragraphs[1], unicode_secondp)
def test_debate_overview(self): sections = DOCSECTIONS.xt(self.doc) self.assertEquals(len([s for s in sections if s['text_type'] == 'other']), 2) self.assertEquals(len([s for s in sections if s['text_type'] == 'reg']), 484) self.assertEquals(len([s for s in sections if s['speaker_role'] == 'other']), 1) self.assertEquals(len([s for s in sections if s['speaker_role'] == 'pres']), 259) self.assertEquals(len([s for s in sections if s['speaker_role'] == 'abg']), 179) self.assertEquals(len([s for s in sections if s['speaker_role'] == 'min']), 45) self.assertEquals(len([s for s in sections if s['speaker_role'] == 'kanz']), 0)
def test_annotatedtext_extraction(self): unicode_firstp = u"""Meine sehr verehrten Damen und Herren! Herr Bundesminister! Wir haben jetzt von Ihnen 28 Antworten auf 28 Fragen <i class="comment">(Abg. Mag. Donnerbauer: Das sind Fakten!),</i> die niemand gestellt hat, erhalten. Die 28 Fragen, die Sie nicht beantwortet haben, werden Sie ein zweites Mal beantworten können, und zwar im parlamentarischen Untersuchungsausschuss. <i class="comment">(Beifall bei den Grünen. – Zwischenrufe bei der ÖVP.)</i>""" unicode_lastp = u"""Deshalb sehe ich den Untersuchungssausschuss als eine der größten politischen Chancen dieser Republik <i class="comment">(Zwischenruf des Abg. Großruck)</i> und hoffe, dass dieses Haus diese Chance nützt. – Danke schön. <i class="comment">(Beifall bei den Grünen. – Abg. Neugebauer: Vorverurteiler!)</i>""" sections = DOCSECTIONS.xt(self.doc) section = sections[14] paragraphs = section['annotated_text'].split('</p><p>') self.assertEquals(len(paragraphs), 28) self.assertEquals(paragraphs[0], '<p>'+unicode_firstp) self.assertEquals(paragraphs[27], unicode_lastp+'</p>')
def test_plaintext_extraction(self): unicode_firstp = u"""Meine sehr verehrten Damen und Herren! Herr Bundesminister! Wir haben jetzt von Ihnen 28 Antworten auf 28 Fragen die niemand gestellt hat, erhalten. Die 28 Fragen, die Sie nicht beantwortet haben, werden Sie ein zweites Mal beantworten können, und zwar im parlamentarischen Untersuchungsausschuss. """ unicode_lastp = u"""Deshalb sehe ich den Untersuchungssausschuss als eine der größten politischen Chancen dieser Republik und hoffe, dass dieses Haus diese Chance nützt. – Danke schön. """ sections = DOCSECTIONS.xt(self.doc) section = sections[14] paragraphs = section['full_text'].split('\n\n') self.assertEquals(len(paragraphs), 28, "Statement contains 28 paragraphs") self.assertEquals(paragraphs[0], unicode_firstp) self.assertEquals(paragraphs[27], unicode_lastp)
def test_annotatedtext_extraction(self): unicode_firstp = u"""Für diese Sitzung hat das Bundeskanzleramt über Vertretung von Mitgliedern der Bundesregierung folgende Mitteilungen gemacht:""" unicode_secondp = u"""Die Bundesministerin für Familien und Jugend Dr. Sophie Karmasin wird durch die Bundesministerin für Inneres <a class="ref" href="https://www.parlament.gv.at/WWER/PAD_08214/index.shtml">Mag. Johanna Mikl-Leitner</a> vertreten.""" sections = DOCSECTIONS.xt(self.doc) section = sections[3] paragraphs = section['annotated_text'].split('</p><p>') self.assertEquals(len(paragraphs), 5, "Statement contains 5 paragraphs") self.assertEquals(paragraphs[0], '<p>' + unicode_firstp) self.assertEquals(paragraphs[1], unicode_secondp)
def test_annotatedtext_extraction(self): unicode_firstp = u"""Meine sehr verehrten Damen und Herren! Herr Bundesminister! Wir haben jetzt von Ihnen 28 Antworten auf 28 Fragen <i class="comment">(Abg. Mag. Donnerbauer: Das sind Fakten!),</i> die niemand gestellt hat, erhalten. Die 28 Fragen, die Sie nicht beantwortet haben, werden Sie ein zweites Mal beantworten können, und zwar im parlamentarischen Untersuchungsausschuss. <i class="comment">(Beifall bei den Grünen. – Zwischenrufe bei der ÖVP.)</i>""" unicode_lastp = u"""Deshalb sehe ich den Untersuchungssausschuss als eine der größten politischen Chancen dieser Republik <i class="comment">(Zwischenruf des Abg. Großruck)</i> und hoffe, dass dieses Haus diese Chance nützt. – Danke schön. <i class="comment">(Beifall bei den Grünen. – Abg. Neugebauer: Vorverurteiler!)</i>""" sections = DOCSECTIONS.xt(self.doc) section = sections[14] paragraphs = section['annotated_text'].split('</p><p>') self.assertEquals(len(paragraphs), 28) self.assertEquals(paragraphs[0], '<p>' + unicode_firstp) self.assertEquals(paragraphs[27], unicode_lastp + '</p>')
def test_time_and_pages(self): sections = DOCSECTIONS.xt(self.doc) self.assertEquals(sections[39]['time_start'], [10, 44, 40]) self.assertEquals(sections[39]['time_end'], [10, 49]) self.assertEquals(sections[39]['page_start'], 61) self.assertEquals(sections[39]['page_end'], 62) self.assertEquals(sections[40]['page_start'], 62) self.assertEquals(sections[40]['page_end'], 62) self.assertEquals(sections[190]['page_start'], 167) self.assertEquals(sections[190]['page_end'], 167) self.assertEquals(sections[191]['page_start'], 168) self.assertEquals(sections[191]['page_end'], 168)
def test_time_and_pages(self): sections = DOCSECTIONS.xt(self.doc) self.assertEquals(sections[39]['time_start'], [10, 44, 40]) self.assertEquals(sections[39]['time_end'], [10, 49]) self.assertEquals(sections[39]['page_start'], 60) self.assertEquals(sections[39]['page_end'], 62) self.assertEquals(sections[40]['page_start'], 62) self.assertEquals(sections[40]['page_end'], 62) self.assertEquals(sections[190]['page_start'], 167) self.assertEquals(sections[190]['page_end'], 167) self.assertEquals(sections[191]['page_start'], 167) self.assertEquals(sections[191]['page_end'], 168)
def test_debate_overview(self): sections = DOCSECTIONS.xt(self.doc) self.assertEquals( len([s for s in sections if s['text_type'] == 'other']), 2) self.assertEquals( len([s for s in sections if s['text_type'] == 'reg']), 484) self.assertEquals( len([s for s in sections if s['speaker_role'] == 'other']), 1) self.assertEquals( len([s for s in sections if s['speaker_role'] == 'pres']), 259) self.assertEquals( len([s for s in sections if s['speaker_role'] == 'abg']), 179) self.assertEquals( len([s for s in sections if s['speaker_role'] == 'min']), 45) self.assertEquals( len([s for s in sections if s['speaker_role'] == 'kanz']), 0)
def test_speaker_detect(self): sections = DOCSECTIONS.xt(self.doc) section = sections[39] self.assertEquals(section['speaker_id'], 'PAD_51579') self.assertTrue(section['full_text'].startswith(u'Frau Präsidentin!'))