def test_article_example(): """Source: http://www.prevko.cz/dite/skutecne-pribehy-deti""" parser = PlaintextParser.from_string( load_resource("articles/prevko_cz_1.txt"), Tokenizer("czech") ) summarizer = LexRankSummarizer(stem_word) summarizer.stop_words = get_stop_words("czech") sentences = summarizer(parser.document, 20) assert len(sentences) == 20
def test_real_example(): """Source: http://www.prevko.cz/dite/skutecne-pribehy-deti""" parser = PlaintextParser.from_string( load_resource("snippets/prevko.txt"), Tokenizer("czech") ) summarizer = LsaSummarizer(Stemmer("czech")) summarizer.stop_words = get_stop_words("czech") sentences = summarizer(parser.document, 2) assert len(sentences) == 2
def test_issue_5_svd_converges(): """Source: https://github.com/miso-belica/sumy/issues/5""" pytest.skip("Can't reproduce the issue.") parser = PlaintextParser.from_string( load_resource("articles/svd_converges.txt"), Tokenizer("english") ) summarizer = LsaSummarizer(Stemmer("english")) summarizer.stop_words = get_stop_words("english") sentences = summarizer(parser.document, 20) assert len(sentences) == 20
def test_document_is_all_in_upper_case(): """ When all words is in upper case Plaintext parser first line as heading and LexRank algorithm raises exception "ZeroDivisionError: float division by zero" because there is no sentence to summarize. See https://github.com/miso-belica/sumy/issues/25 """ parser = PlaintextParser.from_string( "JUST WRITING SOME TEXT. TO TEST CASE. WITH ZERO SENTENCES RETURNED. FROM TOKENIZER.", Tokenizer("english") ) summarizer = LexRankSummarizer(stem_word) summarizer.stop_words = get_stop_words("english") sentences = summarizer(parser.document, 20) assert len(sentences) == 0
def test_real_example(): parser = PlaintextParser.from_string( "Jednalo se o případ chlapce v 6. třídě, který měl problémy s učením. " "Přerostly až v reparát z jazyka na konci školního roku. " "Nedopadl bohužel dobře a tak musel opakovat 6. třídu, což se chlapci ani trochu nelíbilo. " "Připadal si, že je mezi malými dětmi a realizoval se tím, že si ve třídě " "o rok mladších dětí budoval vedoucí pozici. " "Dost razantně. Fyzickou převahu měl, takže to nedalo až tak moc práce.", Tokenizer("czech")) summarizer = LuhnSummarizer(stem_word) summarizer.stop_words = get_stop_words("czech") returned = summarizer(parser.document, 2) assert list(map(to_unicode, returned)) == [ "Jednalo se o případ chlapce v 6. třídě, který měl problémy s učením.", "Připadal si, že je mezi malými dětmi a realizoval se tím, že si ve třídě o rok mladších dětí budoval vedoucí pozici.", ]
def main(args=None): args = docopt(to_string(__doc__), args, version=__version__) summarizer, document, items_count, reference_summary = handle_arguments( args) evaluated_sentences = summarizer(document, items_count) reference_document = PlaintextParser.from_string( reference_summary, Tokenizer(args["--language"])) reference_sentences = reference_document.document.sentences for name, evaluate_document, evaluate in AVAILABLE_EVALUATIONS: if evaluate_document: result = evaluate(evaluated_sentences, document.sentences) else: result = evaluate(evaluated_sentences, reference_sentences) print("%s: %f" % (name, result)) return 0
def test_parse_plaintext(): parser = PlaintextParser.from_string( """ Ako sa máš? Ja dobre! A ty? No mohlo to byť aj lepšie!!! Ale pohodička. TOTO JE AKOŽE NADPIS A toto je text pod ním, ktorý je textový. A tak ďalej... """, Tokenizer("czech")) document = parser.document assert len(document.paragraphs) == 2 assert len(document.paragraphs[0].headings) == 0 assert len(document.paragraphs[0].sentences) == 5 assert len(document.paragraphs[1].headings) == 1 assert len(document.paragraphs[1].sentences) == 2
def test_parse_plaintext_long(): parser = PlaintextParser.from_string( """ Ako sa máš? Ja dobre! A ty? No mohlo to byť aj lepšie!!! Ale pohodička. TOTO JE AKOŽE NADPIS A toto je text pod ním, ktorý je textový. A tak ďalej... VEĽKOLEPÉ PREKVAPENIE Tretí odstavec v tomto texte je úplne o ničom. Ale má vety a to je hlavné. Takže sa majte na pozore ;-) A tak ďalej... A tak este dalej! """, Tokenizer("czech")) document = parser.document assert len(document.paragraphs) == 5 assert len(document.paragraphs[0].headings) == 0 assert len(document.paragraphs[0].sentences) == 5 assert len(document.paragraphs[1].headings) == 1 assert len(document.paragraphs[1].sentences) == 2 assert len(document.paragraphs[2].headings) == 1 assert len(document.paragraphs[2].sentences) == 3 assert len(document.paragraphs[3].headings) == 0 assert len(document.paragraphs[3].sentences) == 1 assert len(document.paragraphs[4].headings) == 0 assert len(document.paragraphs[4].sentences) == 1