├── matching ├── __init__.py └── README.md ├── results ├── websites_samples.pkl ├── hand_aligned │ ├── 1105758366609588348864781062873640815390053084846.simple │ ├── 896600386802207831346949161149312517258266703625.simple │ ├── 599329318712151224768305067202612197046613696146.normal │ ├── 817005608057485567196160589064121879505288931152.simple │ ├── 896600386802207831346949161149312517258266703625.normal │ ├── 599329318712151224768305067202612197046613696146.simple │ ├── 354119585971754366904694177360156382412905954761.simple │ ├── 1105758366609588348864781062873640815390053084846.normal │ ├── 1359773669381119263676518983779389354056387678664.simple │ ├── 955111909204001243127896444379060470511627735758.simple │ ├── 354119585971754366904694177360156382412905954761.normal │ ├── 222013552412122271966848158000235471670213982017.simple │ ├── 85135735885556278793348498906842418305339675077.simple │ ├── 739712520421388416834217126357141221588347012078.simple │ ├── 454352912481968314094435810070359540723529320752.simple │ ├── 70512434927461411620569612737373280743611648829.simple │ ├── 471187369662542149564618652643449828081056943749.simple │ ├── 71891703955675877144306554676915455546666766785.simple │ ├── 1131070689213453098943088140935721327681302384544.simple │ ├── 117340419407836242067093581502664462169881271737.simple │ ├── 32573154660404008914225576908016688423475046475.simple │ ├── 103027005391201069626605686484360780126817618940.simple │ ├── 1270222740731371270056425202196282573193760097957.simple │ ├── 556622047894677483796976141035228009426410592913.simple │ ├── 695936865907567377181902080342840861628252196646.simple │ ├── 1371948258132837485495969978403309797359383984705.simple │ ├── 422816068473478794180512408164030269794434115383.simple │ ├── 222013552412122271966848158000235471670213982017.normal │ ├── 817005608057485567196160589064121879505288931152.normal │ ├── 1131070689213453098943088140935721327681302384544.normal │ ├── 94916848099090499068002145340937881035607319270.simple │ ├── 955111909204001243127896444379060470511627735758.normal │ ├── 118159672055894079454753104495975547276602114478.simple │ ├── 413825979286632745251796317887199470271860144079.simple │ ├── 32573154660404008914225576908016688423475046475.normal │ ├── 860880496533165490512184436177778852124827535197.simple │ ├── 1359773669381119263676518983779389354056387678664.normal │ ├── 694897703651441117120531916393726470322389557179.simple │ ├── 471187369662542149564618652643449828081056943749.normal │ ├── 739712520421388416834217126357141221588347012078.normal │ ├── 85135735885556278793348498906842418305339675077.normal │ ├── 788432340304059824066028068235195410919011094752.simple │ ├── 1371948258132837485495969978403309797359383984705.normal │ ├── 1198604918992406683172831677269385315831614358005.simple │ ├── 12145784068410340450964079224044857090477598333.simple │ ├── 1278914756180535753230376465572972684231217454506.simple │ ├── 454352912481968314094435810070359540723529320752.normal │ ├── 849270025345024940844417200774983103971021795957.simple │ ├── 465744468303322396867281363215833281038418475539.simple │ ├── 118159672055894079454753104495975547276602114478.normal │ ├── 94916848099090499068002145340937881035607319270.normal │ ├── 1249213639719982452627198945759712103801957507145.simple │ ├── 695936865907567377181902080342840861628252196646.normal │ ├── 788432340304059824066028068235195410919011094752.normal │ ├── 71891703955675877144306554676915455546666766785.normal │ ├── 413825979286632745251796317887199470271860144079.normal │ ├── 556622047894677483796976141035228009426410592913.normal │ ├── 906215697728623771097621478944206317877609356239.simple │ ├── 828444433833163063931544380127985534704050297616.simple │ ├── 117340419407836242067093581502664462169881271737.normal │ ├── 70512434927461411620569612737373280743611648829.normal │ ├── 694897703651441117120531916393726470322389557179.normal │ ├── 103027005391201069626605686484360780126817618940.normal │ ├── 1270222740731371270056425202196282573193760097957.normal │ ├── 422816068473478794180512408164030269794434115383.normal │ ├── 12145784068410340450964079224044857090477598333.normal │ ├── 1089719717458447841315399443142860678792782139349.simple │ ├── 1198604918992406683172831677269385315831614358005.normal │ ├── 714241570032886014003472875125051985454644795834.simple │ └── 465744468303322396867281363215833281038418475539.normal ├── README.md └── evaluated │ ├── 278018659017931062070732718620736995067577547625.results │ ├── 1105758366609588348864781062873640815390053084846.results │ ├── 615906618567343416389533095226002286331304254697.results │ ├── 1168954048300446306414406216796101146571520611767.results │ ├── 371628922758169262575096602366511519517113767868.results │ ├── 1378026920237907604315406650571985024018928497727.results │ ├── 1252371162140612720129059302974931870449751310750.results │ ├── 1148667907801841053855270002338470427459368167588.results │ ├── 530380916999544090154893339813802103204117161359.results │ ├── 877251095279704356768647070090256492394927380342.results │ └── 412900526089946313916620494448631239686947421717.results ├── requirements ├── .gitignore ├── crawler ├── README.md ├── __init__.py ├── crawler_template.py ├── sozialpolitik.py ├── behindertenbeauftragter.py ├── taz.py ├── stadt-koeln.py ├── apotheken-umschau.py ├── lebenshilfe-main-taunus.py └── archive.py ├── defaultvalues.py ├── environment.yml ├── main.py ├── LICENSE.md ├── evaluation ├── README.md ├── alignment_statistics.py └── eval_matches_auto.py ├── main_crawler.py ├── CONTRIBUTE.md ├── main_alignment.py ├── example.py └── README.md /matching/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /results/websites_samples.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/buschmo/Simple-German-Corpus/HEAD/results/websites_samples.pkl -------------------------------------------------------------------------------- /requirements: -------------------------------------------------------------------------------- 1 | spacy 2 | beautifulsoup4 3 | numpy 4 | requests 5 | pandas 6 | matplotlib 7 | scipy 8 | sentence-transformers 9 | torch 10 | seaborn -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | __pycache__ 2 | Datasets/*/** 3 | !Datasets/*/archive_header.json 4 | defaultvalues.py 5 | results/* 6 | !results/evaluated 7 | !results/hand_aligned 8 | !results/README.md 9 | !results/website_samples.pkl -------------------------------------------------------------------------------- /crawler/README.md: -------------------------------------------------------------------------------- 1 | # Files for crawling and parsing 2 | This folder contains all files needed for crawling and parsing websites. 3 | For every website there needs to be a `website_name.py` determining the crawling and parsing process. 4 | 5 | See the `crawler_template.py` as an example. 6 | -------------------------------------------------------------------------------- /defaultvalues.py: -------------------------------------------------------------------------------- 1 | repository_location = "" 2 | dataset_location = f"{repository_location}/Datasets" 3 | results_location = f"{repository_location}/results" 4 | website_sample_location = f"{results_location}/website_samples.pkl" 5 | ground_truth_location = f"{results_location}/hand_aligned" 6 | matching_location = f"{results_location}/matched" 7 | -------------------------------------------------------------------------------- /environment.yml: -------------------------------------------------------------------------------- 1 | name: simple-german-corpus 2 | channels: 3 | - conda-forge 4 | dependencies: 5 | - python==3.10 6 | - spacy==3.3.1 7 | - beautifulsoup4==4.11.1 8 | - numpy==1.22.3 9 | - requests==2.27.1 10 | - pandas==1.4.3 11 | - matplotlib==3.5.1 12 | - scipy==1.8.1 13 | - sentence-transformers==2.2.2 14 | - pytorch==1.10.2 15 | - seaborn==0.11.2 16 | -------------------------------------------------------------------------------- /results/hand_aligned/1105758366609588348864781062873640815390053084846.simple: -------------------------------------------------------------------------------- 1 | Rund um das Thema Behinderung haben viele Menschen Fragen. 2 | Zum Beispiel: Die Lebenshilfe steht den Menschen mit Behinderung und ihren Familien gerne mit Rat und Tat zur Seite. 3 | Wir haben Angebote für jedes Alter. 4 | Unsere Angebote richten sich an: 5 | Wir beraten und unterstützen Sie gerne. 6 | Sprechen Sie uns an. 7 | Wir freuen uns auf Sie! 8 | -------------------------------------------------------------------------------- /results/hand_aligned/896600386802207831346949161149312517258266703625.simple: -------------------------------------------------------------------------------- 1 | Einige Sachen werden im Jahr 2022 für die Menschen anders. 2 | Im nächsten Jahr ändern sich einige Sachen für die Menschen. 3 | Ab dem nächsten Jahr soll es keine Plastiktüten mehr in den Geschäften geben. 4 | Denn die sind schlecht für die Umwelt . 5 | Und der Mindest-Lohn soll höher werden. 6 | Das bedeutet: Einige Menschen bekommen mehr Geld für ihre Arbeit. 7 | -------------------------------------------------------------------------------- /crawler/__init__.py: -------------------------------------------------------------------------------- 1 | from importlib import import_module 2 | from os.path import dirname, basename, isfile, join 3 | import glob 4 | modules = glob.glob(join(dirname(__file__), "*.py")) 5 | ignore = ["utilities.py", "crawler_template.py", "archive.py"] 6 | __all__ = [basename(f)[:-3] for f in modules if isfile(f) 7 | and not f.endswith('__init__.py') and basename(f) not in ignore] 8 | 9 | 10 | for name in __all__: 11 | import_module("crawler."+name) 12 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import sys 2 | sys.path.append('.') 3 | import main_crawler 4 | import main_matching 5 | 6 | 7 | def main(): 8 | """ Calls all necessary main functions to calculate everything except the end alignment 9 | """ 10 | print("Downloading and parsing.") 11 | main_crawler.main(from_archive=True) 12 | print("Calculating results.\n\tThis might take a while and should not be aborted.\n\tThe calculation would start anew.") 13 | main_matching.main() 14 | 15 | 16 | if __name__ == "__main__": 17 | main() 18 | -------------------------------------------------------------------------------- /results/hand_aligned/599329318712151224768305067202612197046613696146.normal: -------------------------------------------------------------------------------- 1 | Hilfe für Opfer - Recht auf Soziale Entschädigung 2 | Hilfe für Opfer - Recht auf Soziale Entschädigung 3 | Ansprüche hat insbesondere, wer Opfer einer Gewalt­tat geworden ist und dadurch einen gesund­heitlichen Schaden erlitten hat. 4 | Welche Leistungen gibt es? 5 | Wenn jemand dauerhaft geschädigt ist, können Renten gezahlt werden. 6 | Wenn jemand dauerhaft geschädigt ist, können Renten gezahlt werden. 7 | Reform des Sozialen Entschädigungs­rechts: 8 | Zudem wird es viele Leistungs­verbesserungen geben. 9 | Das neue Recht soll ab dem 1. Januar 2024 gelten. 10 | -------------------------------------------------------------------------------- /results/hand_aligned/817005608057485567196160589064121879505288931152.simple: -------------------------------------------------------------------------------- 1 | Bei uns haben schon über 150 Menschen mit Behinderung ein Zuhause gefunden. 2 | Wir bieten verschiedene Wohnformen an. 3 | Denn jeder Mensch hat andere Wünsche und Bedürfnisse. 4 | Bei uns können Sie sich entscheiden: Wir haben 5 Wohnheime. 5 | Und wir haben viele Plätze im Betreuten Wohnen. 6 | Alle sind im Main-Taunus Kreis. 7 | Vielleicht wissen Sie noch nicht, wie Sie gerne wohnen möchten. 8 | Dann können Sie sich beraten lasen. 9 | Wir haben eine Beratungs-Stelle Wohnen. 10 | Wir bieten eine Tages-Betreuung an. 11 | Diese ist für Menschen, die nicht arbeiten gehen können. 12 | -------------------------------------------------------------------------------- /results/hand_aligned/896600386802207831346949161149312517258266703625.normal: -------------------------------------------------------------------------------- 1 | Das kommt 2022 auf Sie zu!. 2 | 2022 bringt viele Neuerungen für Verbraucher. 3 | Der Mindestlohn steigt, in der Bahn können keine Tickets mehr gekauft werden und das Aus für Einkaufstüten aus Plastik kommt. 4 | Der Mindestlohn steigt, in der Bahn können keine Tickets mehr gekauft werden und das Aus für Einkaufstüten aus Plastik kommt. 5 | Der Mindestlohn steigt, in der Bahn können keine Tickets mehr gekauft werden und das Aus für Einkaufstüten aus Plastik kommt. 6 | Der Mindestlohn steigt, in der Bahn können keine Tickets mehr gekauft werden und das Aus für Einkaufstüten aus Plastik kommt. 7 | -------------------------------------------------------------------------------- /results/hand_aligned/599329318712151224768305067202612197046613696146.simple: -------------------------------------------------------------------------------- 1 | Recht auf Soziale Entschädigung 2 | Was ist das Recht auf Soziale Entschädigung? 3 | Das Recht auf Soziale Entschädigung haben zum Beispiel Menschen, die Opfer von Gewalt geworden sind. 4 | Welche Entschädigungen gibt es? 5 | Menschen, die durch den oben genannten Punkt geschädigt sind, können zum Beispiel folgende Hilfen bekommen: 6 | Renten Geld für Arzt-Behandlungen Geld für Pflege Hilfen, um wieder zu arbeiten 7 | Was ändert sich an dem Recht auf Soziale Entschädigung? 8 | Die Leistungen sollen sich verbessern. 9 | Ab 2024 soll es neue Gesetze für das Recht auf Soziale Entschädigung geben. 10 | -------------------------------------------------------------------------------- /results/hand_aligned/354119585971754366904694177360156382412905954761.simple: -------------------------------------------------------------------------------- 1 | Sie bekommen von uns 1 kosten-freie Melde-Bescheinigung beim Anmelden von Ihrer Wohnung in Köln beim Ummelden von Ihrer Wohnung in Köln oder beim Abmelden von Ihrer Wohnung in Köln Manchmal brauchen Sie eine weitere Melde-Bescheinigung für einen Antrag beim Amt, für Pass-Angelegenheiten oder für private Zwecke. 2 | Es gibt verschiedene Melde-Bescheinigungen. 3 | Hier erklären wir die Unterschiede. 4 | Einfache und erweiterte Melde-Bescheinigung 5 | Eine Melde-Bescheinigung ist ein Papier mit den Melde-Daten von einer Person. 6 | Wir bestätigen mit dem Papier: 7 | Wo eine Person gemeldet ist. 8 | Also wo die Person wohnt. 9 | -------------------------------------------------------------------------------- /results/hand_aligned/1105758366609588348864781062873640815390053084846.normal: -------------------------------------------------------------------------------- 1 | Wer ein Kind mit Behinderung erwartet, hat oft viele Fragen. 2 | Die Lebenshilfe Main-Taunus steht den Menschen mit Behinderung und ihren Familien in allen Lebensphasen mit Rat und Tat zur Seite. 3 | Die Lebenshilfe Main-Taunus steht den Menschen mit Behinderung und ihren Familien in allen Lebensphasen mit Rat und Tat zur Seite. 4 | Unsere Angebote richten sich an Familien mit Babys, Kleinkindern, Schulkindern, Jugendlichen und Erwachsenen. 5 | Unsere Fachkräfte beraten, informieren, fördern, begleiten und unterstützen Sie gerne. 6 | Sprechen Sie uns an, wir freuen uns auf Sie! 7 | Sprechen Sie uns an, wir freuen uns auf Sie! 8 | -------------------------------------------------------------------------------- /results/README.md: -------------------------------------------------------------------------------- 1 | # Results folder 2 | 3 | We share the manually created ground truth alignments used for the first evaluation and the results from our second manual evaluation. 4 | - `hand_aligned/`: contains two files per evaluated article with all Simple German sentences in the `.simple` file and the German sentences at the corresponding line in the corresponding `.normal` file. 5 | - `evaluated/`: contains the results from the manual evaluation of the sentence matchings. The files should be opened as json files, containing each match of the algorithm variant and whether it was identified as false or true match by the annotators. 6 | - `website_samples.pkl`: pickle file containing the subset of sampled articles for the hand aligned sentences. -------------------------------------------------------------------------------- /results/hand_aligned/1359773669381119263676518983779389354056387678664.simple: -------------------------------------------------------------------------------- 1 | Im Wartburgkreis haben 200 Menschen gegen eine neue Strom-Trasse demonstriert. 2 | Der Wartburg-Kreis ist in dem Bundes-Land Thüringen. 3 | Dort ist auch der Naturpark : Thüringer Wald. 4 | Und vielleicht wird dort eine neue Strom-Trasse gebaut. 5 | Aber viele Anwohner wollen das nicht. 6 | Deshalb haben sie am Sonntag dagegen demonstriert . 7 | Mehr als 200 Menschen waren bei der Demonstration dabei. 8 | Zum Beispiel auch: Reinhard Krebs. 9 | Er ist der Landrat vom Wartburg-Kreis. 10 | Die Bürgermeisterin von der Gemeinde Gerstungen heißt: Sylvia Hartung. 11 | Sie hat gesagt: 12 | Die Strom-Trasse soll nicht im Thüringer Wald gebaut werden, weil dabei zu viel Natur kaputt geht. 13 | -------------------------------------------------------------------------------- /results/evaluated/278018659017931062070732718620736995067577547625.results: -------------------------------------------------------------------------------- 1 | { 2 | "Herzlich e": { 3 | "Herzliche Grüße": true 4 | }, 5 | "Grüße Jenny Grünewald": { 6 | "Jenny Grünewald": true 7 | }, 8 | "Bald steht hier ein Text in Leichter Sprache.": { 9 | "In solch einer Situation ist es schön, Wegbegleiter und Unterstützer zu finden.": false 10 | }, 11 | "Bis dahin bitte ich Sie um etwas Geduld.": { 12 | "Dies sind meine Ziele und Gründe, warum ich die Chance habe, an Sie ein Grußwort richten zu dürfen.": false 13 | }, 14 | "Vorstands-Vorsitzende": { 15 | "Vorstandsvorsitzende E-Mail:": true 16 | }, 17 | "finished": true, 18 | "Herzlich e Grüße Jenny Grünewald": { 19 | "Herzliche Grüße Jenny Grünewald": true 20 | } 21 | } -------------------------------------------------------------------------------- /results/hand_aligned/955111909204001243127896444379060470511627735758.simple: -------------------------------------------------------------------------------- 1 | Die Frühförderung ist für kleine Kinder und ihre Eltern da. 2 | Wir helfen Kindern mit Behinderung. 3 | In der Frühförder-Stelle lernen die Kinder viel. 4 | Zum Beispiel: Sie üben das Laufen und Sprechen. 5 | Sie lernen, wie sie mit anderen spielen können. 6 | Auch Eltern kommen zu unserer Frühförder-Stelle. 7 | Denn auch für sie sind Unterstützung und Hilfe gut. 8 | Oft haben die Eltern Fragen. 9 | Oder sie brauchen Informationen zu der Behinderung. 10 | Oder sie wollen andere Eltern treffen, die auch behinderte Kinder haben. 11 | Auch Erzieherinnen und Lehrer haben manchmal Fragen. 12 | Sie wollen wissen, was für behinderte Kinder wichtig ist. 13 | Dann kommen sie zu uns in die Früh-Förder-Stelle. 14 | -------------------------------------------------------------------------------- /results/hand_aligned/354119585971754366904694177360156382412905954761.normal: -------------------------------------------------------------------------------- 1 | Bei Ihrer Anmeldung, Ummeldung oder Abmeldung händigen wir Ihnen einmalig eine kostenfreie Meldebestätigung aus. 2 | Einfache und erweiterte Meldebescheinigung 3 | Einfache und erweiterte Meldebescheinigung 4 | Einfache und erweiterte Meldebescheinigung 5 | Die Meldebescheinigung dient gegenüber Dritten als Nachweis über Ihre bestehende Anmeldung in einer aktuellen Wohnung. 6 | Die Meldebescheinigung dient gegenüber Dritten als Nachweis über Ihre bestehende Anmeldung in einer aktuellen Wohnung. 7 | Die Meldebescheinigung dient gegenüber Dritten als Nachweis über Ihre bestehende Anmeldung in einer aktuellen Wohnung. 8 | Die Meldebescheinigung dient gegenüber Dritten als Nachweis über Ihre bestehende Anmeldung in einer aktuellen Wohnung. 9 | -------------------------------------------------------------------------------- /results/hand_aligned/222013552412122271966848158000235471670213982017.simple: -------------------------------------------------------------------------------- 1 | Ein Straßen-Musiker in Stendal soll jetzt ein Bußgeld bezahlen. 2 | Die Stadt Stendal ist in dem Bundes-Land Sachsen-Anhalt. 3 | Die Stadt-Verwaltung von Stendal hat jetzt gesagt: 4 | David Banik soll ein Bußgeld von 53 Euro und 50 Cent bezahlen. 5 | David Banik war am 8. September in der Innen-Stadt von Stendal. 6 | Er hat dort Musik gemacht. 7 | Damit hat er schon um 9 Uhr morgens angefangen. 8 | Die Mitarbeiter vom Ordnungs-Amt haben später gesagt: David Banik hat sehr laut auf seiner Gitarre gespielt. 9 | Dabei hat er auch sehr laut gesungen. 10 | Das hat die Anwohner gestört und sie haben sich darüber beschwert. 11 | Deshalb will er jetzt zusammen mit einem Anwalt dagegen kämpfen: 12 | • Damit er das Bußgeld nicht bezahlen muss. 13 | • Und damit er auch weiter in der Stadt Musik machen kann. 14 | -------------------------------------------------------------------------------- /results/hand_aligned/85135735885556278793348498906842418305339675077.simple: -------------------------------------------------------------------------------- 1 | Immer mehr Menschen benutzen geschlechter-gerechte Sprache. 2 | Aber es gibt dabei auch Probleme, zum Beispiel wenn es um Barriere-Freiheit geht. 3 | Die Partei die Linke hat sich gegen das Gender-Sternchen entschieden. 4 | Sie benutzt das Gender-Sternchen nicht mehr auf ihren Internet-Seiten. 5 | Gender-gerechte Sprache ist für diese Partei wichtig. 6 | Aber die Partei will auch, dass die Texte gut verstanden werden. 7 | Jeder soll die Texte auf der Internet-Seite leicht lesen können. 8 | Das Gender-Sternchen kann auch für blinde Menschen ein Problem sein. 9 | Blinde Menschen benutzen oft Computer-Programme für Internet-Seiten. 10 | Diese Computer-Programme lesen die Texte auf Internet-Seiten vor. 11 | Aber das funktioniert oft nicht so gut , wenn in den Texten das Gender-Sternchen vorkommen. 12 | -------------------------------------------------------------------------------- /results/hand_aligned/739712520421388416834217126357141221588347012078.simple: -------------------------------------------------------------------------------- 1 | Der Chef von Opel will auch die Fabrik in Eisenach behalten. 2 | Der neue Chef von Opel heißt: Uwe Hochgeschurtz. 3 | Er hat gesagt: Opel wird alle Fabriken behalten. 4 | Sie werden nicht zu-gemacht. 5 | Opel ist eine Auto-Firma mit 3 Fabriken in Deutschland. 6 | Die Fabriken sind in diesen Städten: 7 | • Rüsselsheim, • Kaiserslautern • und Eisenach. 8 | Aber bei Opel müssen mehr Elektro-Autos gebaut werden. 9 | Opel braucht dann nicht mehr so viele Mechaniker . 10 | Sondern Opel braucht mehr Mitarbeiter: 11 | Die sich mit Elektro-Autos auskennen. 12 | Deshalb haben die Mitarbeiter Angst, dass die Fabriken zu-gemacht werden. 13 | Dann haben die Mitarbeiter keine Arbeit mehr. 14 | Und in der Fabrik in Eisenach fehlen wichtige Teile, um die Autos zu bauen. 15 | Dort werden jetzt gar keine Autos gebaut. 16 | -------------------------------------------------------------------------------- /results/hand_aligned/454352912481968314094435810070359540723529320752.simple: -------------------------------------------------------------------------------- 1 | „Salon im Kleisthaus“ ist das neue digitale Gesprächs-Form. 2 | In dem Video-Podcast geht es um Kunst, Kultur, Demokratie und Inklusion. 3 | Im Jahr 2020 war vieles anders. 4 | Besonders in der Kultur. 5 | Seit viele Monate gibt es keine Kultur-Veranstaltungen mit Zuschauern. 6 | Deshalb hat die „Kultur im Kleisthaus“ eine digitale Form gefunden. 7 | Die digitale Form heißt: „Salon im Kleisthaus“ . 8 | Hier ist Teilhabe digital für Menschen mit Behinderungen „vor dem heimischen Endgerät“ möglich. 9 | Aber es geht auch um die Teilhabe-Situation von Menschen mit Behinderungen an Kunst und Kultur. 10 | In dem Podcast spricht der Beauftragte regelmäßig mit bekannten Menschen. 11 | Mit Künstler*innen mit und ohne Behinderungen. 12 | Politiker*innen und Expert*innen über Kunst, Kultur, Demokratie und Teilhabe. 13 | -------------------------------------------------------------------------------- /results/hand_aligned/70512434927461411620569612737373280743611648829.simple: -------------------------------------------------------------------------------- 1 | Hallo. 2 | Mein Name ist Zita Blanc. 3 | Ich komme aus Frankreich und ich habe keine Geschwister. 4 | Kannst du mir helfen? 5 | Ich möchte Geld überweisen. 6 | Mit dem Geld will ich Teile von Firmen kaufen. 7 | Ich will damit Geld verdienen. 8 | Das nennt man: investieren. 9 | Ich bin nicht in Frankreich und ich bin ganz allein. 10 | Mein Stief·Vater ist gestorben. 11 | Ich habe viel Geld von ihm bekommen. 12 | Das nennt man: erben. 13 | Du sollst mir helfen wie deiner Familie. 14 | Und du sollst mir auf jeden Fall glauben. 15 | Deswegen habe ich viele Dokumente kopiert. 16 | Ich habe dir die Kopien geschickt. 17 | Denn ich bin ein richtiger Mensch. 18 | Ich bin kein Betrüger. 19 | Das kannst du auf jeden Fall glauben. 20 | Bitte antworte mir. 21 | Dann sehen wir weiter. 22 | Liebe 23 | Grüße von Zita Blanc. 24 | -------------------------------------------------------------------------------- /results/hand_aligned/471187369662542149564618652643449828081056943749.simple: -------------------------------------------------------------------------------- 1 | Das Jugend-Theater Schotte in Erfurt wird 30 Jahre alt. 2 | Die Stadt Erfurt ist im Bundes-Land Thüringen. 3 | Dort gibt es ein Jugend-Theater . 4 | Es heißt: Schotte. 5 | Dieses Jugend-Theater gibt es seit 30 Jahren. 6 | Deshalb feiert es jetzt sein Jubiläum . 7 | Das Jugend-Theater macht sehr gute Arbeit. 8 | Und es ist wichtig für die Kultur von Erfurt. 9 | Deshalb bekommt das Jugend-Theater jetzt einen besonderen Preis: 10 | Den Kultur-Preis der Stadt Erfurt. 11 | Dort haben schon viele Kinder und Jugendliche Theater gespielt. 12 | Dabei haben sie viele wichtige Sachen gelernt. 13 | Zum Beispiel: • Was sie besonders gut können. 14 | • Und was sie später für die Gesellschaft machen wollen. 15 | Am Anfang war das Jugend-Theater in einer Turn-Halle. 16 | Später ist ein richtiges kleines Theater daraus geworden. 17 | -------------------------------------------------------------------------------- /results/hand_aligned/71891703955675877144306554676915455546666766785.simple: -------------------------------------------------------------------------------- 1 | Seit 10 Jahren gibt es die UN-Behinderten-Rechts-Konvention. 2 | Das ist ein wichtiger Vertrag. 3 | Darin steht: Menschen mit Behinderungen haben die gleichen Rechte wie alle anderen Menschen. 4 | Wenn alle Menschen überall mitmachen können, dann nennt man das Inklusion. 5 | Inklusion ist ein Menschen-Recht. 6 | Auch Deutschland soll die UN-Behinderten-Rechts-Konvention umsetzen. 7 | Das Institut für Menschen-Rechte hat diese Fragen beantwortet. 8 | Die Fachleute dort sagen: 9 | Deutschland tut zu wenig beim Thema Arbeit. 10 | 177 Länder haben diesen Vertrag unterschrieben. 11 | Der Vertrag gilt auch in Deutschland. 12 | Die taz erklärt: 270.000 Menschen arbeiten in Behinderten-Werkstätten. 13 | Das sind mehr Menschen als vor 10 Jahren. 14 | Sie bekommen meistens keinen Mindestlohn. 15 | Sie verdienen oft unter 200 Euro im Monat. 16 | -------------------------------------------------------------------------------- /results/hand_aligned/1131070689213453098943088140935721327681302384544.simple: -------------------------------------------------------------------------------- 1 | In Sachsen-Anhalt gab es wieder Proteste gegen die Corona-Regeln. 2 | Am letzten Wochenende haben in Sachsen-Anhalt viele Menschen gegen die Corona-Regeln protestiert . 3 | Die Polizei hat gesagt: 4 | Es gab Proteste in verschiedenen Städten. 5 | Zum Beispiel: 6 | In Halle, • in Magdeburg, • in Salzwedel, • in Stendal, • in Quedlinburg, • in Dessau-Roßlau, • und in Gröningen. 7 | In Stendal waren mehr als 500 Menschen bei dem Protest dabei. 8 | In den Städten Burg und Köthen gab es auch Proteste. 9 | Bei dem Protest in Burg waren 340 Menschen dabei. 10 | In Köthen waren es 65 Menschen. 11 | Die Menschen haben die Proteste nicht bei der Polizei angemeldet: 12 | Obwohl sie das vorher machen müssen. 13 | Das bedeutet: Die Proteste waren nicht erlaubt. 14 | Aber die Polizei hat gesagt: 15 | Die Menschen bei den Protesten waren friedlich . 16 | -------------------------------------------------------------------------------- /results/hand_aligned/117340419407836242067093581502664462169881271737.simple: -------------------------------------------------------------------------------- 1 | Sachsen gibt Förder-Gelder für ein NSU-Dokumentations-Zentrum. 2 | Die rechts-extreme Terror-Gruppe NSU hat insgesamt 10 Menschen getötet. 3 | Der NSU hatte 3 Mitglieder : 4 | • Uwe Böhnhardt, • Uwe Mundlos • und Beate Zschäpe. 5 | Sie haben für lange Zeit versteckt in Zwickau gewohnt. 6 | Deshalb soll es in Zwickau bald ein NSU-Dokumentations-Zentrum geben. 7 | Das bedeutet: Es soll einen Ort geben: 8 | Zu dem die Menschen hin-gehen können. 9 | Am Donnerstag gab es in der Stadt Zwickau eine Gedenk-Veranstaltung . 10 | Dort haben die Menschen an die Opfer von der Terror-Gruppe NSU gedacht. 11 | Katja Meier ist die Justiz-Ministerin von dem Bundes-Land Sachsen. 12 | Sie war bei der Gedenk-Veranstaltung dabei. 13 | Dort hat sie gesagt: 14 | Sachsen will Förder-Gelder für das neue NSU-Dokumentations-Zentrum geben. 15 | Denn es ist wichtig: 16 | Dass die Menschen über die Verbrechen von dem NSU reden. 17 | Und dass die Opfer nicht vergessen werden. 18 | -------------------------------------------------------------------------------- /results/hand_aligned/32573154660404008914225576908016688423475046475.simple: -------------------------------------------------------------------------------- 1 | In der Stadt Erfurt gibt es das Krankenhaus: Helios-Klinikum. 2 | Bei dem Krankenhaus gibt es ein Parkhaus . 3 | Dort ist am Dienstag eine Rampe für Autos ein-gestürzt . 4 | Die Rampe war zwischen 2 Teilen vom Parkhaus. 5 | Darauf konnten die Autos von einem Teil in den anderen Teil fahren. 6 | Dabei ist sie auf eine andere Rampe gefallen. 7 | Jetzt sind beide Rampen kaputt. 8 | Die Feuerwehr und die Polizei haben unter der Rampe nach Menschen gesucht. 9 | Dafür haben sie: • Spürhunde • und besondere Kameras benutzt. 10 | So haben sie heraus-gefunden: 11 | Es wurde kein Mensch verletzt. 12 | Und es sind auch keine Autos kaputt gegangen. 13 | Aber Fach-Leute sollen das jetzt heraus-finden. 14 | Bis jetzt weiß noch kein Mensch: 15 | Warum die Rampe ein-gestürzt ist. 16 | Die Polizei hat das Parkhaus gesperrt . 17 | Das bedeutet: Die Menschen können ihre Autos nicht aus dem Parkhaus heraus-holen. 18 | Und kein Mensch kann in das Parkhaus rein-fahren. 19 | -------------------------------------------------------------------------------- /results/hand_aligned/103027005391201069626605686484360780126817618940.simple: -------------------------------------------------------------------------------- 1 | Hallo Herr X, Sie waren am 28. November 2015 in Frankfurt. 2 | Da haben Sie was angestellt. 3 | Um 11 Uhr abends am Kaisersack. 4 | Sie hatten einen Pulli an. 5 | Auf dem Pulli stand „ACAB“. 6 | „ACAB“ ist eine Abkürzung für einen Spruch. 7 | Der Spruch soll die Polizei beleidigen. 8 | Das war sehr frech von Ihnen. 9 | Das kann Leute ärgern. 10 | Das kann gefährlich sein. 11 | Damit haben Sie gegen ein Gesetz verstoßen. 12 | Das Gesetz heißt „Gesetz über Ordnungs·widrigkeiten“. 13 | Warum haben Sie den frechen Pulli angezogen? 14 | Das können Sie jetzt sagen. 15 | Aber nur wenn Sie wollen. 16 | Vielleicht ist Ihr Name in diesem Brief falsch geschrieben. 17 | Dann müssen Sie das jetzt sagen. 18 | Sonst müssen Sie noch mehr Geld zahlen. 19 | Vielleicht sagen Sie nichts zu dem frechen Pulli. 20 | Dann kriegen Sie von mir eine Rechnung. 21 | Vielleicht sagen Sie was zu dem frechen Pulli. 22 | Dann überlege ich mir das noch mal. 23 | Vielleicht kriegen Sie dann trotzdem eine Rechnung. 24 | Liebe Grüße Frau X 25 | -------------------------------------------------------------------------------- /results/hand_aligned/1270222740731371270056425202196282573193760097957.simple: -------------------------------------------------------------------------------- 1 | Ein Mann mit Drogen im Rucksack ist in Penig in einen Fluss gesprungen. 2 | Die Stadt Penig ist in dem Bundes-Land Sachsen. 3 | Der Mann und der Polizist mussten beide ins Krankenhaus. 4 | Dort gab es am Sonntag-Morgen einen Einsatz von der Polizei. 5 | Als die Polizei da war: Sind 3 Menschen weg-gelaufen. 6 | Aber die Polizei konnte 1 Mann festhalten. 7 | Der Mann hatte einen Rucksack dabei. 8 | Darin hat die Polizei verschiedene Sachen gefunden: 9 | • Viel Geld, • Drogen , • eine Schreck-Schuss-Waffe • und Aufkleber von dem Impf-Stoff : Moderna. 10 | Der Impf-Stoff schützt die Menschen gegen das Corona-Virus . 11 | Deshalb hatte der Mann vielleicht die Aufkleber: 12 | Der Mann wollte dann weg-laufen Als die Polizei den Rucksack von dem Mann durchsucht hat: 13 | Hat der Mann sich los-gerissen. 14 | Er wollte weg-laufen. 15 | Dann ist er in den Fluss Mulde gesprungen. 16 | Ein Polizist ist in den Fluss gefallen: 17 | Als er den Mann festhalten wollte. 18 | Die Polizei hat den Mann danach fest-genommen . 19 | -------------------------------------------------------------------------------- /results/evaluated/1105758366609588348864781062873640815390053084846.results: -------------------------------------------------------------------------------- 1 | { 2 | "Sprechen Sie uns an.": { 3 | "Sprechen Sie uns an, wir freuen uns auf Sie!": true 4 | }, 5 | "Unsere Angebote richten sich an: Wir beraten und unterstützen Sie gerne.": { 6 | "Unsere Fachkräfte beraten, informieren, fördern, begleiten und unterstützen Sie gerne.": true 7 | }, 8 | "Wir freuen uns auf Sie!": { 9 | "Sprechen Sie uns an, wir freuen uns auf Sie!": true 10 | }, 11 | "Zum Beispiel: Die Lebenshilfe steht den Menschen mit Behinderung und ihren Familien gerne mit Rat und Tat zur Seite.": { 12 | "Die Lebenshilfe Main-Taunus steht den Menschen mit Behinderung und ihren Familien in allen Lebensphasen mit Rat und Tat zur Seite.": true 13 | }, 14 | "finished": true, 15 | "Wir beraten und unterstützen Sie gerne.": { 16 | "Unsere Fachkräfte beraten, informieren, fördern, begleiten und unterstützen Sie gerne.": true 17 | }, 18 | "Rund um das Thema Behinderung haben viele Menschen Fragen.": { 19 | "Wer ein Kind mit Behinderung erwartet, hat oft viele Fragen.": true 20 | } 21 | } -------------------------------------------------------------------------------- /results/hand_aligned/556622047894677483796976141035228009426410592913.simple: -------------------------------------------------------------------------------- 1 | Roland Wöller ist der Innen-Minister von dem Bundes-Land Sachsen. 2 | Er hat jetzt gesagt: 3 | Bei Demos gegen die Corona-Regeln sind viele rechts-extreme Menschen dabei. 4 | Sie sind schuld daran: 5 | Dass es bei den Demos immer mehr Hass und Gewalt gibt. 6 | Die rechts-extremen Menschen schreiben viele Nachrichten in den sozialen Medien . 7 | Zum Beispiel: 8 | Bei Telegram • oder bei Facebook . 9 | Die Nachrichten können von sehr vielen Menschen gelesen werden. 10 | Die rechts-extremen Menschen schreiben viel über Hass und Gewalt. 11 | Und dass viele Menschen bei Gewalt-Taten mit-machen sollen. 12 | Roland Wöller will jetzt mehr gegen Hass und Gewalt in den sozialen Medien machen. 13 | Dafür soll es extra Arbeits-Plätze geben. 14 | Zum Beispiel: 15 | Zum Beispiel: 16 | • Bei der SoKo gegen Rechts-Extremismus • und beim Verfassungs-Schutz. 17 | Die Mitarbeiter sollen dann viele Nachrichten in den sozialen Medien lesen. 18 | Und sie sollen dabei schauen: 19 | Ob die Menschen strafbare Sachen in den Nachrichten geschrieben haben. 20 | -------------------------------------------------------------------------------- /results/hand_aligned/695936865907567377181902080342840861628252196646.simple: -------------------------------------------------------------------------------- 1 | Im Zoo Leipzig gibt es ein neues Tapir-Baby. 2 | Im Zoo Leipzig gibt es viele verschiedene Tiere. 3 | Zum Beispiel: Tapire . 4 | Neue Regeln für die Besucher 5 | Wenn die Besucher sich die Tapire im Zoo anschauen wollen: 6 | Dann müssen sie sich an die 2-G-Regel halten. 7 | Das bedeutet: Die Besucher müssen gegen das Corona-Virus ge-impft sein. 8 | Oder sie müssen schon das Corona-Virus gehabt haben. 9 | Ein Tapir- Weibchen hat jetzt ein Tapir-Baby bekommen. 10 | Das Tapir-Baby ist ein Männchen . 11 | Und sein Fell hat: Weiße Streifen und weiße Punkte. 12 | Das Tapir-Weibchen kümmert sich jetzt sehr viel um das Tapir-Baby. 13 | Es läuft schon viel herum. 14 | Es gibt aber einige Ausnahmen : 15 | Jugendliche und Kinder unter 16 Jahren müssen sich nicht an die 2-G-Regel halten. 16 | Und manche Menschen können nicht ge-impft werden: 17 | Weil sie zum Beispiel eine schlimme Krankheit haben. 18 | Diese Menschen müssen sich dann nicht an die 2-G-Regel halten. 19 | Sie müssen aber ein ärztliches Attest zeigen: 20 | Wenn sie in den Zoo gehen wollen. 21 | -------------------------------------------------------------------------------- /results/hand_aligned/1371948258132837485495969978403309797359383984705.simple: -------------------------------------------------------------------------------- 1 | Sachsen sucht mit einer Internet-Seite nach Helfern für die Kranken-Häuser. 2 | In vielen Kranken-Häusern in Deutschland gibt es zu viel Arbeit. 3 | Und die Mitarbeiter können die viele Arbeit kaum noch schaffen. 4 | In schwerer Sprache heißt das: 5 | Die Kranken-Häuser in Deutschland sind überlastet. 6 | Weil jetzt viele Menschen wegen dem Corona-Virus in den Kranken-Häusern sind. 7 | Im Bundes-Land Sachsen gibt es deshalb einen besonderen Plan: 8 | Sachsen sucht mit einer Internet-Seite nach Pflege-Kräften und Ärzten. 9 | Petra Köpping ist die Sozial-Ministerin in Sachsen. 10 | Sie hat gesagt: 11 | Mit der Internet-Seite sucht Sachsen nach diesen Menschen: 12 | Wenn Pflege-Kräfte in den Kranken-Häusern mit-helfen können: 13 | Dann sollen sie auf der Internet-Seite Bescheid sagen. 14 | • Kranken-Pflegerinnen und Kranken-Pflegern , • Ärztinnen und Ärzten, auch wenn sie eigentlich schon im Ruhestand sind, • und Medizin-Studentinnen und Medizin-Studenten . 15 | Sie sollen dann in den Kranken-Häusern mit-helfen: Um die viele Arbeit zu schaffen. 16 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Vanessa Toborek 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /results/hand_aligned/422816068473478794180512408164030269794434115383.simple: -------------------------------------------------------------------------------- 1 | Hallo Herr X, Sie waren nicht zufrieden mit uns. 2 | Danke, dass Sie uns das gesagt haben. 3 | Es tut uns leid, dass wir Sie enttäuscht haben. 4 | Wir finden: – Sie haben recht. 5 | – Wir haben Sie nicht gut beraten. 6 | – Wir haben Sie nicht schnell beraten. 7 | Früher konnte der Kunde bei der Firma Allianz anrufen. 8 | Es gab einen Mitarbeiter, der immer für den Kunden da war. 9 | Heute gibt es diesen Mitarbeiter nicht mehr. 10 | Heute sind viele Mitarbeiter für den Kunden da, wenn er anruft. 11 | Die Firma Allianz sagt: – Das ist besser. 12 | – Jetzt können mehr Kunden gleichzeitig anrufen. 13 | – Jetzt müssen die Kunden am Telefon kürzer warten. 14 | Jetzt können Sie anrufen, wann Sie wollen. 15 | Zwischen 8 Uhr morgens und 20 Uhr abends. 16 | Von Montag bis Freitag. 17 | Aber Ihren Wunsch können wir nicht am Telefon besprechen. 18 | Ihren Wunsch müssen wir persönlich besprechen. 19 | Dafür haben wir viele Büros in Deutschland. 20 | Da können Sie uns besuchen. 21 | Sie können Ihren Wunsch auch mit der Post schicken. 22 | Schreiben Sie Ihre Daten in einen Brief. 23 | Und schicken Sie diesen Brief zu uns. 24 | Wir hoffen: – Sie verstehen uns jetzt besser. 25 | – Sie haben jetzt keine Fragen mehr. 26 | -------------------------------------------------------------------------------- /evaluation/README.md: -------------------------------------------------------------------------------- 1 | # Evaluation folder 2 | Here you can find all files for generating the statistics and evaluating the findings of the automatic matching algorithms. 3 | 4 | - `align_by_hand.py`: GUI for aligning articles manually 5 | - `alignment_statistics.py`: Prints the number of automatically aligned sentences produced by `main_alignment.py` 6 | - `eval_matches_auto.py`: Generates latex tables for statistics on all automatic alignment strategy and similarity measure combinations (Avg. number of matches / similarity) 7 | - `eval_on_gt.py`: Compares hand aligned articles (i.e. from `align_by_hand.py`) with the automatic alignment methods, generated by `main_matching.py`. 8 | - `eval_properties.py`: Generates generall statistics of all articles 9 | - `evaluate_matches_manual.py`: Evaluates results of automatic alignment methods (by `main_matching.py`) with the results of `evaluate.py`. Not needed. 10 | - `evaluate_progress.py`: Basically the same as `evaluate_evaluations.py`. Both files are not needed 11 | - `evaluate.py`: Provides basic utilities to evaluate the automatic alignments by hand. It shows two aligned sentences and asks the users to determine if it is correctly/incorrectly aligned or unclear. This does not provide context and is hence not recommended for general usage. -------------------------------------------------------------------------------- /results/hand_aligned/222013552412122271966848158000235471670213982017.normal: -------------------------------------------------------------------------------- 1 | Stadt Stendal verhängt Bußgeld gegen Straßenmusiker. 2 | Stadt Stendal verhängt Bußgeld gegen Straßenmusiker. 3 | Das Bußgeld beträgt laut Stadtverwaltung 53,50 Euro. 4 | Das Bußgeld beträgt laut Stadtverwaltung 53,50 Euro. 5 | Bei dem jetzt geahndeten Fall gegen den Straßenmusiker handelt es sich nach MDR-Informationen um einen Vorgang vom 8. September 2021. 6 | An diesem Tag soll der Musiker von 9:35 Uhr bis 12:15 Uhr und dann noch einmal von 13 bis 15 Uhr in der Breiten Straße musiziert haben. 7 | An diesem Tag soll der Musiker von 9:35 Uhr bis 12:15 Uhr und dann noch einmal von 13 bis 15 Uhr in der Breiten Straße musiziert haben. 8 | Die Ordnungsamtsmitarbeiter stellten dabei "andauerndes und sehr lautes Spielen auf der Gitarre sowie Singen/Schreien" fest. 9 | Die Ordnungsamtsmitarbeiter stellten dabei "andauerndes und sehr lautes Spielen auf der Gitarre sowie Singen/Schreien" fest. 10 | Im Bußgeldbescheid dazu heißt es, der Lärm sei geeignet, die Nachbarschaft "erheblich" zu stören. 11 | Der dreifache Familienvater hat einen Anwalt eingeschaltet. 12 | Der dreifache Familienvater hat einen Anwalt eingeschaltet. 13 | Er will sich nicht verdrängen lassen, zumal die Nutzungssatzung für die Fußgängerzone ihm dies gewähre: "Ich werde in Zukunft weiterspielen. 14 | -------------------------------------------------------------------------------- /results/hand_aligned/817005608057485567196160589064121879505288931152.normal: -------------------------------------------------------------------------------- 1 | Bei der Lebenshilfe Main-Taunus haben bisher über 150 Menschen mit Behinderung ein Zuhause gefunden. 2 | Um auf die Wünsche und Bedürfnisse jedes einzelnen Menschen eingehen zu können, bieten wir ganz unterschiedliche Wohnformen an. 3 | Um auf die Wünsche und Bedürfnisse jedes einzelnen Menschen eingehen zu können, bieten wir ganz unterschiedliche Wohnformen an. 4 | Zum Wohnverbund der Lebenshilfe gehören fünf Wohnhäuser und das Betreute Wohnen. 5 | Zum Wohnverbund der Lebenshilfe gehören fünf Wohnhäuser und das Betreute Wohnen. 6 | Zum Wohnverbund der Lebenshilfe gehören fünf Wohnhäuser und das Betreute Wohnen. 7 | Bei der Beratungsstelle Wohnen können sich Menschen mit Behinderung und deren Angehörige über alle Wohnangebote im Main-Taunus-Kreis informieren. 8 | Bei der Beratungsstelle Wohnen können sich Menschen mit Behinderung und deren Angehörige über alle Wohnangebote im Main-Taunus-Kreis informieren. 9 | Bei der Beratungsstelle Wohnen können sich Menschen mit Behinderung und deren Angehörige über alle Wohnangebote im Main-Taunus-Kreis informieren. 10 | In den Wohneinrichtungen der Lebenshilfe erhalten 48 Menschen mit Behinderung ein Angebot der Tagesgestaltung. 11 | Dieses Angebot richtet sich an Menschen, die (noch) nicht oder nicht mehr in einer Werkstatt tätig sind. 12 | -------------------------------------------------------------------------------- /results/hand_aligned/1131070689213453098943088140935721327681302384544.normal: -------------------------------------------------------------------------------- 1 | Wieder Proteste gegen Corona-Maßnahmen in Sachsen-Anhalt. 2 | Am Wochenende haben in Sachsen-Anhalt erneut Proteste gegen die Corona-Maßnahmen stattgefunden. 3 | Wie die Polizei mitteilte, haben am Samstag in Halle, Magdeburg, Salzwedel, Stendal und Quedlinburg Versammlungen stattgefunden. 4 | Wie die Polizei mitteilte, haben am Samstag in Halle, Magdeburg, Salzwedel, Stendal und Quedlinburg Versammlungen stattgefunden. 5 | Wie die Polizei mitteilte, haben am Samstag in Halle, Magdeburg, Salzwedel, Stendal und Quedlinburg Versammlungen stattgefunden. 6 | Wie die Polizei mitteilte, haben am Samstag in Halle, Magdeburg, Salzwedel, Stendal und Quedlinburg Versammlungen stattgefunden. 7 | In Stendal nahmen bei einem angemeldeten Aufzug unter dem Motto "Gegen die Spaltung der Gesellschaft anlässlich des Tages der Menschenrechte" am Samstag über 500 Menschen teil. 8 | Später am Abend kamen in Burg rund 340 Menschen zusammen, in Köthen 65. 9 | Später am Abend kamen in Burg rund 340 Menschen zusammen, in Köthen 65. 10 | Später am Abend kamen in Burg rund 340 Menschen zusammen, in Köthen 65. 11 | Beide Proteste waren nicht angemeldet. 12 | Beide Proteste waren nicht angemeldet. 13 | Beide Proteste waren nicht angemeldet. 14 | Laut Polizei lief aber alles friedlich. 15 | Laut Polizei lief aber alles friedlich. 16 | -------------------------------------------------------------------------------- /results/hand_aligned/94916848099090499068002145340937881035607319270.simple: -------------------------------------------------------------------------------- 1 | Im Theater in Erfurt gibt es ab dem Monat Oktober die 2-G-Regel. 2 | In vielen Bundes-Ländern gibt es bald wieder strengere Corona-Regeln . 3 | Denn im Herbst bekommen vielleicht wieder viele Menschen das Corona-Virus . 4 | Der Chef vom Theater in Erfurt heißt: Guy Montavon. 5 | Im Theater von der Stadt Erfurt gibt es ab dem Monat Oktober strengere Corona-Regeln. 6 | Eine strenge Regel heißt: 2-G-Regel . 7 | Das ist die Abkürzung für: 8 | • Ge-impft • oder genesen . 9 | Das bedeutet: Wenn die Menschen ins Theater gehen wollen, dann müssen sie: 10 | Gegen das Corona-Virus ge-impft sein • oder sie müssen wieder gesund sein, wenn sie das Corona-Virus hatten. 11 | Für Kinder bis 12 Jahre gilt die 2 G-Regel nicht. 12 | Sie müssen nicht ge-impft oder genesen sein: 13 | Durch diese strengen Corona-Regeln sind die Menschen gut ge-schützt 14 | Deshalb müssen sie ihre Schutz-Masken nicht an-ziehen: 15 | Wenn sie auf ihrem Platz sitzen. 16 | Und zwischen den Plätzen muss nicht mehr so viel Abstand sein. 17 | Eine lange Zeit war es im Theater so: 18 | Dass die Menschen nicht zu nahe neben-einander sitzen durften. 19 | Deshalb musste immer ein Platz zwischen den Menschen frei bleiben. 20 | Deshalb können auch wieder mehr Menschen in die Theater-Vorstellungen kommen. 21 | Die Menschen müssen am Eingang vom Theater zeigen: 22 | Dass sie ge-impft oder genesen sind. 23 | Dafür können sie zum Beispiel: 24 | • Ihren Impf-Ausweis • oder ein Papier vom Arzt zeigen. 25 | -------------------------------------------------------------------------------- /results/hand_aligned/955111909204001243127896444379060470511627735758.normal: -------------------------------------------------------------------------------- 1 | In unserer Frühförderstelle unterstützen und stärken wir Kinder in ihrer gesamten Persönlichkeit, von der Geburt bis zur Einschulung. 2 | In unserer Frühförderstelle unterstützen und stärken wir Kinder in ihrer gesamten Persönlichkeit, von der Geburt bis zur Einschulung. 3 | Wir fördern die Kinder einzeln und in Gruppen mit altersgemäßen Angeboten. 4 | Wir fördern die Kinder einzeln und in Gruppen mit altersgemäßen Angeboten. 5 | Wir fördern die Kinder einzeln und in Gruppen mit altersgemäßen Angeboten. 6 | Eltern beraten wir vertraulich zu allen Fragen rund um die kindliche Entwicklung, Entwicklungsverzögerung und Behinderung. 7 | Eltern beraten wir vertraulich zu allen Fragen rund um die kindliche Entwicklung, Entwicklungsverzögerung und Behinderung. 8 | Eltern beraten wir vertraulich zu allen Fragen rund um die kindliche Entwicklung, Entwicklungsverzögerung und Behinderung. 9 | Eltern beraten wir vertraulich zu allen Fragen rund um die kindliche Entwicklung, Entwicklungsverzögerung und Behinderung. 10 | Außerdem bieten wir Eltern Gesprächsrunden, Informationsabende und einiges mehr an. 11 | Bei Kindern mit auffälligem Entwicklungsverhalten bieten wir allen Vorschuleinrichtungen Beratung und Unterstützung an. 12 | Bei Kindern mit auffälligem Entwicklungsverhalten bieten wir allen Vorschuleinrichtungen Beratung und Unterstützung an. 13 | Bei Kindern mit auffälligem Entwicklungsverhalten bieten wir allen Vorschuleinrichtungen Beratung und Unterstützung an. 14 | -------------------------------------------------------------------------------- /results/hand_aligned/118159672055894079454753104495975547276602114478.simple: -------------------------------------------------------------------------------- 1 | In den Krankenhäusern in Sachsen sind sehr viele Menschen mit dem Corona-Virus. 2 | In den letzten Wochen haben sich sehr viele Menschen in Deutschland mit dem Corona-Virus angesteckt . 3 | Davon müssen viele Menschen in einem Krankenhaus behandelt werden: 4 | Das wird gemacht: 5 | Wenn die Hospitalisierungs-Inzidenz bei 7 ist. 6 | Dann müssen auch die Corona-Regeln strenger gemacht werden. 7 | Michael Albrecht ist der Chef vom Universitäts-Klinikum in Dresden. 8 | Er hat gesagt: Wenn weiter so viele Corona-Patienten in die Krankenhäuser kommen: 9 | Dann gibt es bald wieder strengere Corona-Regeln. 10 | Zum Beispiel: Kontakt-Beschränkungen . 11 | Dann dürfen sich die Menschen wieder nur mit sehr wenigen anderen Menschen treffen. 12 | Das bedeutet aber: 13 | Bald können vielleicht nicht mehr alle Corona-Patienten behandelt werden. 14 | Weil die Krankenhäuser dann zu voll sind. 15 | Davon sind die meisten Menschen zwischen 30 Jahre und 60 Jahre alt. 16 | Im Bundes-Land Sachsen gibt es auch viele Corona-Patienten in den Krankenhäusern. 17 | Das Sozial-Ministerium in Sachsen hat gesagt: 515 Corona-Patienten sind jetzt in den Krankenhäusern. 18 | 124 Menschen müssen auf der Intensiv-Station behandelt werden. 19 | Und 59 Menschen brauchen ein Beatmungs-Gerät . 20 | In Sachsen ist die Hospitalisierungs-Inzidenz jetzt bei 3,99. 21 | An dieser Zahl können die Menschen sehen: Wie viele Menschen in ihrer Stadt oder in ihrem Bundes-Land wegen dem Corona-Virus im Krankenhaus sind. 22 | -------------------------------------------------------------------------------- /results/hand_aligned/413825979286632745251796317887199470271860144079.simple: -------------------------------------------------------------------------------- 1 | Eine Person brennt? 2 | Dann löschen Sie zuerst den Brand. 3 | Werfen Sie zum Beispiel eine Branddecke über die brennende Person. 4 | Oder löschen Sie den Brand mit Wasser. 5 | Entfernen Sie dann die Kleidung und den Schmuck von der Person. 6 | Die Kleidung und der Schmuck sind nämlich noch lange heiß. 7 | Achtung: Sie können die Kleidung nicht entfernen? 8 | Dann reißen Sie die Kleidung auf keinen Fall von der Haut ab. 9 | Es ist nur eine kleine Fläche verbrannt? 10 | Dann kühlen Sie die betroffene Stelle vorsichtig mit lauwarmem Leitungswasser. 11 | Kühlen Sie die betroffene Stelle nicht länger als fünf Minuten. 12 | Sie kühlen die Verbrennung länger als fünf Minuten? 13 | Dann kann die verletzte Person eine Unterkühlung bekommen. 14 | Sie möchten eine Verbrennung vermeiden? 15 | Dann achten Sie auf folgende Dinge: 16 | Benutzen Sie beim Grillen keine Brandbeschleuniger. 17 | Gehen Sie vorsichtig mit Feuer um. 18 | Dann sollten Sie zusätzlich auf diese Dinge achten: Lassen Sie Ihr Kind an einem Feuer nicht unbeaufsichtigt. 19 | Füllen Sie kein kochendes Wasser in Wärmflaschen. 20 | Heißes Wasser reicht aus. 21 | Stellen Sie den Wasserkocher weit entfernt von Kindern auf. 22 | Kinder dürfen auch das Kabel des Wasserkochers nicht erreichen. 23 | Sie heiße Getränke nicht in die Nähe von Kindern. 24 | Vermeiden Sie Tischdecken. 25 | Die Kinder können nämlich daran ziehen. 26 | Sie Bügeleisen nicht in die Nähe von Kindern. 27 | Kinder dürfen auch das Kabel des Bügeleisens nicht erreichen. 28 | -------------------------------------------------------------------------------- /results/hand_aligned/32573154660404008914225576908016688423475046475.normal: -------------------------------------------------------------------------------- 1 | An einem Parkhaus am Helios-Klinikum in Erfurt ist Dienstagabend eine Rampe eingestürzt, die verschiedene Parkdecks miteinander verbindet. 2 | An einem Parkhaus am Helios-Klinikum in Erfurt ist Dienstagabend eine Rampe eingestürzt, die verschiedene Parkdecks miteinander verbindet. 3 | An einem Parkhaus am Helios-Klinikum in Erfurt ist Dienstagabend eine Rampe eingestürzt, die verschiedene Parkdecks miteinander verbindet. 4 | An einem Parkhaus am Helios-Klinikum in Erfurt ist Dienstagabend eine Rampe eingestürzt, die verschiedene Parkdecks miteinander verbindet. 5 | An einem Parkhaus am Helios-Klinikum in Erfurt ist Dienstagabend eine Rampe eingestürzt, die verschiedene Parkdecks miteinander verbindet. 6 | Durch den Aufprall gab auch die darunterliegende Rampe nach. 7 | Durch den Aufprall gab auch die darunterliegende Rampe nach. 8 | Mit Spezialkameras, Sonden und Hunden wurde zunächst nach Menschen gesucht. 9 | Mit Spezialkameras, Sonden und Hunden wurde zunächst nach Menschen gesucht. 10 | Es wurde niemand verletzt. 11 | Es wurde niemand verletzt. 12 | Auch abgestellte Fahrzeuge wurden augenscheinlich nicht beschädigt, hieß es. 13 | Statiker prüfen nun die Einsturzursache. 14 | Warum die Rampe einstürzte, ist noch völlig unklar. 15 | Warum die Rampe einstürzte, ist noch völlig unklar. 16 | THÜRINGEN bleiben Zu- und Ausfahrt zum Parkhaus vorerst gesperrt. 17 | THÜRINGEN bleiben Zu- und Ausfahrt zum Parkhaus vorerst gesperrt. 18 | THÜRINGEN bleiben Zu- und Ausfahrt zum Parkhaus vorerst gesperrt. 19 | -------------------------------------------------------------------------------- /results/hand_aligned/860880496533165490512184436177778852124827535197.simple: -------------------------------------------------------------------------------- 1 | Manche Computer können komplizierte Probleme lösen. 2 | Ein bisschen wie Menschen. 3 | Das nennt man: Künstliche Intelligenz. 4 | Die Abkürzung für Künstliche Intelligenz ist: KI. 5 | Die Regierung von Deutschland findet KI gut. 6 | Die Regierung von Deutschland will mehr KI in Deutschland. 7 | Denn KI ist gut für die Wirtschaft. 8 | Das heißt: Den Leuten geht es besser. 9 | Manche Computer bringen sich selber Sachen bei. 10 | Das nennt man: Maschinelles Lernen. 11 | Die Abkürzung für Maschinelles Lernen ist: ML. 12 | ML funktioniert weil die Computer besser werden. 13 | Die Computer können viel mehr Informationen verarbeiten. 14 | Die Regierung von Deutschland findet das gut. 15 | Die Regierung von Deutschland will mehr ML. 16 | Deswegen gibt die Regierung von Deutschland Geld aus. 17 | Mit diesem Geld sollen die Computer neue Sachen lernen. 18 | Damit die Computer noch mehr können. 19 | Die Computer können viele neue Informationen verarbeiten. 20 | Das bringen sich die Computer selber bei. 21 | Aber lernen die Computer auch ordentlich? 22 | Oder kommt dabei nur Unsinn raus? 23 | Das muss man überprüfen. 24 | Diese Überprüfung ist sehr wichtig. 25 | Denn die Computer können auch Unsinn lernen. 26 | Dann bringt die ganze Arbeit nichts. 27 | Die Überprüfung muss richtig gut sein. 28 | Mit einer guten Überprüfung ist ML viel wert. 29 | Ohne eine gute Überprüfung ist ML nichts wert. 30 | Die Regierung von Deutschland glaubt: 31 | Die Leute müssen verstehen wie die Computer arbeiten. 32 | Erst dann hat ML großen Erfolg. 33 | -------------------------------------------------------------------------------- /results/hand_aligned/1359773669381119263676518983779389354056387678664.normal: -------------------------------------------------------------------------------- 1 | Mehr als 200 Menschen bei Demonstrationen gegen Südlink-Pläne im Wartburgkreis. 2 | Mehr als 200 Menschen bei Demonstrationen gegen Südlink-Pläne im Wartburgkreis. 3 | Mehr als 200 Menschen bei Demonstrationen gegen Südlink-Pläne im Wartburgkreis. 4 | Bei Oberellen im Wartburgkreis haben am Sonntagnachmittag mehr als 200 Menschen gegen die geplante Stromtrasse Südlink protestiert. 5 | Bei Oberellen im Wartburgkreis haben am Sonntagnachmittag mehr als 200 Menschen gegen die geplante Stromtrasse Südlink protestiert. 6 | Bei Oberellen im Wartburgkreis haben am Sonntagnachmittag mehr als 200 Menschen gegen die geplante Stromtrasse Südlink protestiert. 7 | Bei Oberellen im Wartburgkreis haben am Sonntagnachmittag mehr als 200 Menschen gegen die geplante Stromtrasse Südlink protestiert. 8 | Auch der Landrat des Wartburgkreises, Reinhard Krebs (CDU) und die Gerstunger Bürgermeisterin, Sylvia Hartung unterstützten die Forderungen der Demonstranten. 9 | Auch der Landrat des Wartburgkreises, Reinhard Krebs (CDU) und die Gerstunger Bürgermeisterin, Sylvia Hartung unterstützten die Forderungen der Demonstranten. 10 | Auch der Landrat des Wartburgkreises, Reinhard Krebs (CDU) und die Gerstunger Bürgermeisterin, Sylvia Hartung unterstützten die Forderungen der Demonstranten. 11 | Zum einen liege das Gelände mitten in intakter Natur im Naturparks Thüringer Wald, zum anderen werde das Bündelungsverbot verletzt. 12 | Zum einen liege das Gelände mitten in intakter Natur im Naturparks Thüringer Wald, zum anderen werde das Bündelungsverbot verletzt. 13 | -------------------------------------------------------------------------------- /results/hand_aligned/694897703651441117120531916393726470322389557179.simple: -------------------------------------------------------------------------------- 1 | Der Behinderten-Beauftragte von der Bundes-Regierung ist Jürgen Dusel. 2 | Er ist Behinderten-Beauftragter seit Mai 2018. 3 | Herr Dusel ist Jurist. 4 | Das bedeutet: er hat Jura studiert. 5 | Herr Dusel hat ein Motto. 6 | „Demokratie braucht Inklusion“. 7 | Herr Dusel ist am 14.2.1965 in Würzburg geboren. 8 | Er ist verheiratet und hat zwei erwachsene Kinder. 9 | Herr Dusel ist auch ein Mensch mit Behinderung. 10 | Sein Grad der Behinderung ( GdB ) ist 100. Herr Dusel ist von Geburt an stark seh-behindert. 11 | Ausbildung und Beruf 1985: Abitur 1992: 12 | 1. juristisches Staats-Examen an der Universität Heidelberg 1995: 2. juristisches Staats-Examen an dem Oberlandes-Gericht Stuttgart 1996: 13 | Jurist bei der Haupt-Fürsorgestelle von dem Bundes-Land Mecklenburg-Vorpommern 1998: 14 | Leiter von dem Dezernat Heimaufsicht/überörtliche Betreuungs-Behörde beim Landesamt für Soziales und Versorgung von dem Bundes-Land Brandenburg (LASV) 2002: 15 | Leiter von dem Integrations-Amt im Landes-Amt für Soziales und Versorgung von dem Bundes-Land Brandenburg 2007: Stellvertretender Leiter der Abteilung 3 (Aufsicht, Soziales und Forensische Psychiatrie, Integrationsamt) im Landes-Amt für Soziales und Versorgung von dem Bundes-Land Brandenburg. 16 | Leiter von dem Dezernat Aufsicht und Unterbringung nach dem Brandenburgischen Psychisch-Kranken-Gesetz (BbgPsychKG) 17 | Brandenburg ist ein Bundes-Land in Deutschland. 18 | Beauftragter der Landes-Regierung für die Belange behinderter Menschen in Brandenburg 2018: 19 | Beauftragter der Bundes-Regierung für die Belange von Menschen mit Behinderungen 20 | -------------------------------------------------------------------------------- /results/hand_aligned/471187369662542149564618652643449828081056943749.normal: -------------------------------------------------------------------------------- 1 | Erfurt: Kinder- und Jugendtheater "Schotte" wird 30 Jahre alt. 2 | Das Kinder- und Jugendtheater "Schotte" in Erfurt feiert sein 30-jähriges Jubiläum. 3 | Das Kinder- und Jugendtheater "Schotte" in Erfurt feiert sein 30-jähriges Jubiläum. 4 | Das Kinder- und Jugendtheater "Schotte" in Erfurt feiert sein 30-jähriges Jubiläum. 5 | Das Kinder- und Jugendtheater "Schotte" in Erfurt feiert sein 30-jähriges Jubiläum. 6 | Das Kinder- und Jugendtheater "Schotte" in Erfurt feiert sein 30-jähriges Jubiläum. 7 | Außerdem wird die "Schotte" nun mit dem Kulturpreis der Stadt Erfurt geehrt: 8 | Außerdem wird die "Schotte" nun mit dem Kulturpreis der Stadt Erfurt geehrt: 9 | Außerdem wird die "Schotte" nun mit dem Kulturpreis der Stadt Erfurt geehrt: 10 | Außerdem wird die "Schotte" nun mit dem Kulturpreis der Stadt Erfurt geehrt: 11 | Das Theater sorgt dafür, dass sich Kinder und Jugendliche entfalten können und sich als selbstbewusste Menschen in die Gesellschaft einbringen. 12 | Das Theater sorgt dafür, dass sich Kinder und Jugendliche entfalten können und sich als selbstbewusste Menschen in die Gesellschaft einbringen. 13 | Das Theater sorgt dafür, dass sich Kinder und Jugendliche entfalten können und sich als selbstbewusste Menschen in die Gesellschaft einbringen. 14 | Das Theater sorgt dafür, dass sich Kinder und Jugendliche entfalten können und sich als selbstbewusste Menschen in die Gesellschaft einbringen. 15 | Und was in einer Turnhalle begann, ist heute ein quirliges, etabliertes Haus mit einem großen jungen Team. 16 | Und was in einer Turnhalle begann, ist heute ein quirliges, etabliertes Haus mit einem großen jungen Team. 17 | -------------------------------------------------------------------------------- /evaluation/alignment_statistics.py: -------------------------------------------------------------------------------- 1 | import os 2 | import re 3 | import spacy 4 | import matching.utilities as utl 5 | from defaultvalues import * 6 | import json 7 | 8 | nlp = spacy.load("de_core_news_lg") 9 | 10 | def get_tokens(text): 11 | text = "".join(text).replace('\n', ' ') 12 | text = re.sub('\s+', ' ', text) 13 | # all_tokens = [] 14 | # for s in nlp(text).sents: 15 | # all_tokens += [token.text for token in s if not token.is_punct] 16 | 17 | all_tokens = [str(w) for w in nlp(text) if not w.is_punct] 18 | return all_tokens 19 | 20 | 21 | """ Prints the number of aligned sentences 22 | """ 23 | 24 | website_hashes = utl.get_website_hashes() 25 | counter = {} 26 | counter_tokens = {} 27 | total_tokens = 0 28 | sentences = 0 29 | for website in website_hashes: 30 | counter[website] = 0 31 | counter_tokens[website] = 0 32 | for hash in website_hashes[website]: 33 | path = f"{results_location}/alignment/{hash}.normal" 34 | if os.path.exists(path): 35 | with open(path) as fp: 36 | lines = fp.readlines() 37 | # counter[website] += len(lines) 38 | counter[website] += len(set(lines)) 39 | # tokens = len(get_tokens(lines)) 40 | tokens = len(get_tokens(set(lines))) 41 | counter_tokens[website] += tokens 42 | # sentences += len(lines) 43 | sentences += len(set(lines)) 44 | total_tokens += tokens 45 | # else: 46 | # print(f"Not found {hash}") 47 | print(f"{website} = {counter[website]} sentences and {counter_tokens[website]} tokens") 48 | 49 | print(f"Overall sentences: {sentences}\nOverall tokens: {total_tokens}") -------------------------------------------------------------------------------- /results/hand_aligned/739712520421388416834217126357141221588347012078.normal: -------------------------------------------------------------------------------- 1 | Opel-Chef sichert Erhalt aller Werke zu. 2 | Der neue Chef des Autobauers Opel, Uwe Hochgeschurtz, hat den Erhalt der Standorte des Unternehmens in Deutschland zugesichert. 3 | Der neue Chef des Autobauers Opel, Uwe Hochgeschurtz, hat den Erhalt der Standorte des Unternehmens in Deutschland zugesichert. 4 | Der neue Chef des Autobauers Opel, Uwe Hochgeschurtz, hat den Erhalt der Standorte des Unternehmens in Deutschland zugesichert. 5 | Rüsselsheim, Eisenach und Kaiserslautern sind und bleiben unsere Fabriken", sagte Hochgeschurtz der Frankfurter Allgemeinen Zeitung . 6 | Rüsselsheim, Eisenach und Kaiserslautern sind und bleiben unsere Fabriken", sagte Hochgeschurtz der Frankfurter Allgemeinen Zeitung . 7 | Rüsselsheim, Eisenach und Kaiserslautern sind und bleiben unsere Fabriken", sagte Hochgeschurtz der Frankfurter Allgemeinen Zeitung . 8 | Der Manager machte zugleich klar, dass sich Opel weiter verändern müsse. 9 | "Wir werden weniger Jobs mit mechanischen Fähigkeiten benötigen, dafür mehr, die mit Chemie oder Software zu tun haben", sagte er. 10 | "Wir werden weniger Jobs mit mechanischen Fähigkeiten benötigen, dafür mehr, die mit Chemie oder Software zu tun haben", sagte er. 11 | "Wir werden weniger Jobs mit mechanischen Fähigkeiten benötigen, dafür mehr, die mit Chemie oder Software zu tun haben", sagte er. 12 | Die Sorge, die Produktion im Werk Eisenach werde womöglich nicht wieder angefahren, wies Hochgeschurtz zurück. 13 | Die Sorge, die Produktion im Werk Eisenach werde womöglich nicht wieder angefahren, wies Hochgeschurtz zurück. 14 | In Eisenach liegt die Produktion derzeit still , weil es nach Opel-Angaben an Halbleitern mangelt. 15 | In Eisenach liegt die Produktion derzeit still , weil es nach Opel-Angaben an Halbleitern mangelt. 16 | -------------------------------------------------------------------------------- /results/hand_aligned/85135735885556278793348498906842418305339675077.normal: -------------------------------------------------------------------------------- 1 | Schwieriger Widerspruch: Gegenderte und barrierefreie Sprache sind derzeit nur bedingt kompatibel Foto: 2 | Schwieriger Widerspruch: Gegenderte und barrierefreie Sprache sind derzeit nur bedingt kompatibel Foto: 3 | Kein *, kein Binnen-I, kein _: Die Linkspartei will auf ihren Webseiten künftig darauf verzichten, trans, inter und queere Menschen explizit einzuschließen. 4 | Kein *, kein Binnen-I, kein _: Die Linkspartei will auf ihren Webseiten künftig darauf verzichten, trans, inter und queere Menschen explizit einzuschließen. 5 | In dem Konzept zur Teilhabe, welches der Parteivorstand am Sonntag verabschiedete, heißt es: „Im Interesse des flüssigen Lesens und der Maschinenlesbarkeit ist auf eine ‚gegenderte‘ Schreibweise zu verzichten. 6 | In dem Konzept zur Teilhabe, welches der Parteivorstand am Sonntag verabschiedete, heißt es: „Im Interesse des flüssigen Lesens und der Maschinenlesbarkeit ist auf eine ‚gegenderte‘ Schreibweise zu verzichten. 7 | In dem Konzept zur Teilhabe, welches der Parteivorstand am Sonntag verabschiedete, heißt es: „Im Interesse des flüssigen Lesens und der Maschinenlesbarkeit ist auf eine ‚gegenderte‘ Schreibweise zu verzichten. 8 | So kann etwa die Software von Vorlesegeräten, die blinde Menschen nutzen, um Dokumente im Internet zu erschließen, Sonderzeichen nur sperrig übersetzen. 9 | So kann etwa die Software von Vorlesegeräten, die blinde Menschen nutzen, um Dokumente im Internet zu erschließen, Sonderzeichen nur sperrig übersetzen. 10 | So kann etwa die Software von Vorlesegeräten, die blinde Menschen nutzen, um Dokumente im Internet zu erschließen, Sonderzeichen nur sperrig übersetzen. 11 | So kann etwa die Software von Vorlesegeräten, die blinde Menschen nutzen, um Dokumente im Internet zu erschließen, Sonderzeichen nur sperrig übersetzen. 12 | -------------------------------------------------------------------------------- /results/hand_aligned/788432340304059824066028068235195410919011094752.simple: -------------------------------------------------------------------------------- 1 | Wenn Sie heiraten, können Sie sich aussuchen: 2 | Ob Sie beide Ihre eigenen Nachnamen behalten wollen. 3 | Oder ob Sie denselben Nachnamen haben wollen. 4 | Also einer von Ihnen den Nachnamen vom anderen Ehe-Partner annimmt. 5 | Das können Sie auch später noch tun. 6 | Was brauche ich, um meinen Ehe-Namen zu bestimmen? 7 | Sie brauchen dazu: Ihren Personal-Ausweis oder Reise-Pass eine beglaubigte Kopie von Ihrem Ehe-Register Beglaubigt heißt: 8 | Ein Amt bestätigt: 9 | Die Urkunde oder ein anderes Papier ist richtig und echt. 10 | Wenn Sie oder Ihre Ehe-Partnerin oder Ihr Ehe-Partner nicht Deutsche oder Deutscher sind, kommen Sie zu uns. 11 | Wir sagen Ihnen dann, wie Sie eine Kopie aus dem Ehe-Register bekommen. 12 | Und auch, was Sie tun müssen, um Ihren Ehe-Namen zu bestimmen. 13 | Wenn Sie in Deutschland geheiratet haben, bekommen Sie die Kopie aus dem Ehe-Register in der Stadt, wo Sie geheiratet haben. 14 | Haben Sie im Ausland geheiratet und haben wir vor dem 24. Februar 2007 ein Familien-Buch für Sie angelegt? 15 | Dann bekommen Sie die Kopie aus dem Ehe-Register beim Standes-Amt der Stadt, wo Sie früher mit Ihrem Ehe-Partner wohnten. 16 | Haben wir das Familien-Buch nach dem 24. Februar 2007 für Sie angelegt, dann bekommen Sie die Kopie aus dem Ehe-Register bei uns. 17 | Sie und Ihre Ehe-Partnerin oder Ihr Ehe-Partner kommen dafür zu uns ins Standes-Amt . 18 | Was kostet das Bestimmen von meinem Ehe-Namen? 19 | 21 Euro kostet die Erklärung zum Ehe-Namen. 20 | 9 Euro kostet eine Bescheinigung darüber. 21 | Sie können dies mit Bargeld bezahlen. 22 | Das heißt: Sie können mit Geld-Scheinen und Münzen bezahlen. 23 | Oder: Sie können auch mit Ihrer EC -Karte bezahlen. 24 | Eine EC -Karte ist eine Karte aus Plastik. 25 | Diese Karte haben Sie bei der Bank für Ihr Konto bekommen. 26 | -------------------------------------------------------------------------------- /results/hand_aligned/1371948258132837485495969978403309797359383984705.normal: -------------------------------------------------------------------------------- 1 | Hilferufe aus Kliniken - Sachsen schaltet Onlineportal für Pflegepool frei. 2 | Die Kliniken in Sachsen sind fast überall am Limit. 3 | Wegen der dramatisch hohen Infektionszahlen in der Corona-Pandemie reicht das Pflegepersonal oft nicht mehr aus. 4 | Wegen der dramatisch hohen Infektionszahlen in der Corona-Pandemie reicht das Pflegepersonal oft nicht mehr aus. 5 | Wegen der dramatisch hohen Infektionszahlen in der Corona-Pandemie reicht das Pflegepersonal oft nicht mehr aus. 6 | Wegen der dramatisch hohen Infektionszahlen in der Corona-Pandemie reicht das Pflegepersonal oft nicht mehr aus. 7 | Die Landesregierung unterstützt die Suche mit einem Online-Portal. 8 | Die Landesregierung unterstützt die Suche mit einem Online-Portal. 9 | Dort können sich Freiwillige melden, die Kliniken in der Pandemie unterstützen möchten, sagte Gesundheitsministerin Petra Köpping auf einer Online-Konferenz in Dresden. 10 | Dort können sich Freiwillige melden, die Kliniken in der Pandemie unterstützen möchten, sagte Gesundheitsministerin Petra Köpping auf einer Online-Konferenz in Dresden. 11 | Dort können sich Freiwillige melden, die Kliniken in der Pandemie unterstützen möchten, sagte Gesundheitsministerin Petra Köpping auf einer Online-Konferenz in Dresden. 12 | Dort können sich Freiwillige melden, die Kliniken in der Pandemie unterstützen möchten, sagte Gesundheitsministerin Petra Köpping auf einer Online-Konferenz in Dresden. 13 | Dort können sich Freiwillige melden, die Kliniken in der Pandemie unterstützen möchten, sagte Gesundheitsministerin Petra Köpping auf einer Online-Konferenz in Dresden. 14 | Das Portal richtet sich vor allem an Pflegepersonal sowie Ärzte - beide Gruppen auch im Ruhestand - und an Medizinstudierende. 15 | Gesucht werden auch Helferinnen und Helfer, die etwa Transporte übernehmen oder Kranken Mahlzeiten reichen. 16 | -------------------------------------------------------------------------------- /main_crawler.py: -------------------------------------------------------------------------------- 1 | import crawler 2 | import json 3 | import urllib 4 | import os 5 | import time 6 | from tqdm import tqdm 7 | import crawler.utilities as utl 8 | 9 | 10 | def main(from_archive: bool = False): 11 | """ Downloads, saves and parses websites 12 | Either archived websites specified by archive_header.json will be downloaded and parsed 13 | or 14 | 15 | Args: 16 | from_archive (bool, optional): use archive_header.json or actually call the crawlers. Defaults to False. 17 | """ 18 | 19 | utl = crawler.utilities 20 | utl.from_archive = from_archive 21 | 22 | # Crawling 23 | if from_archive: 24 | for name in crawler.__all__: 25 | website_module = getattr(crawler, name) 26 | # if name != "taz": 27 | # continue 28 | print(f"Crawling {website_module.base_url}") 29 | header = utl.load_header(website_module.base_url) 30 | for key in tqdm(header): 31 | url = header[key]["url"] 32 | filepath = utl.get_crawled_path_from_url(url) 33 | if not os.path.exists(filepath): 34 | soup = utl.get_soup_from_url(url) 35 | utl.save_soup(soup, filepath) 36 | else: 37 | # TODO Implement crawling directly from the website 38 | print("Unaccounted case.") 39 | 40 | # Parsing 41 | for name in crawler.__all__: 42 | # load the module in crawler/"name".py 43 | website_module = getattr(crawler, name) 44 | print(f"Parsing {website_module.base_url}") 45 | if name == "brandeins": 46 | # brandeins.de needs special treatment 47 | website_module.parse_soups() 48 | else: 49 | # continue 50 | utl.parse_soups(website_module.base_url, website_module.parser) 51 | 52 | 53 | if __name__ == "__main__": 54 | main(True) 55 | -------------------------------------------------------------------------------- /results/hand_aligned/1198604918992406683172831677269385315831614358005.simple: -------------------------------------------------------------------------------- 1 | In der Oberlausitz machen die Menschen einige Sachen gegen die Demonstrationen. 2 | Einige Menschen finden die Corona-Regeln nicht gut. 3 | Und sie wollen sich nicht daran halten. 4 | Deshalb demonstrieren die Menschen dagegen. 5 | Bei den Demonstrationen machen auch viele rechts-extreme Menschen mit. 6 | Und immer mehr Menschen machen dabei Straftaten . 7 | In der Stadt Ebersbach-Neugersdorf gibt es jetzt ein Schild am Rathaus Auch in der Stadt Ebersbach-Neugersdorf machen sich die Menschen gegen die Demonstrationen stark. 8 | Zum Beispiel: Die Bürger-Meisterin hat ein Schild an das Rathaus gehängt. 9 | Auf dem Schild steht: 10 | Viele Menschen sind schon wegen dem Corona-Virus gestorben. 11 | Und die Mitarbeiter in den Krankenhäusern haben sehr viel Arbeit. 12 | Deshalb ist es wichtig: 13 | Dass die Menschen auf-einander achten. 14 | Und dass sie viel Wertschätzung für andere Menschen haben. 15 | Zum Beispiel: Für die Mitarbeiter in den Krankenhäusern. 16 | In der Stadt Bautzen gibt es jetzt eine Bürger-Initiative . 17 | Das ist eine Gruppe von Menschen. 18 | Die Menschen aus Bautzen machen sich gemeinsam gegen die Demonstrationen stark. 19 | Und sie finden es wichtig: 20 | Dass die Menschen die Corona-Regeln be-achten. 21 | Sie heißt: Bautzen gemeinsam. 22 | Viele Menschen haben die Petition schon unterschrieben. 23 | Zum Beispiel die Band Silbermond. 24 | Menschen aus Zittau haben einen offenen Brief geschrieben 25 | In der Stadt Zittau haben die Menschen einen offenen Brief gegen die Demonstrationen geschrieben. 26 | Darin haben sie auch Forderungen auf-geschrieben. 27 | Zum Beispiel: Die Polizei soll mehr gegen die Demonstrationen machen. 28 | Die Menschen können den offenen Brief unterschreiben. 29 | Das haben auch schon mehr als 1 tausend Menschen gemacht. 30 | Dann sehen die Politiker : 31 | Viele Menschen finden es wichtig, was in dem Brief steht. 32 | -------------------------------------------------------------------------------- /results/hand_aligned/12145784068410340450964079224044857090477598333.simple: -------------------------------------------------------------------------------- 1 | Diese Corona-Regeln gelten jetzt in Sachsen-Anhalt. 2 | Ab dem 24. November gibt es im Bundes-Land Sachsen-Anhalt neue Corona-Regeln . 3 | An diesen Orten müssen sich die Menschen an die 2-G-Regel halten 4 | Die Menschen müssen sich drinnen an die 2-G-Regel halten. 5 | Das bedeutet: Für bestimmte Sachen müssen die Menschen: 6 | • Ge-impft • oder genesen sein. 7 | Zum Beispiel: 8 | Im Schwimmbad, • im Museum, • in Gaststätten , • im Hotel • und in Ferien-Wohnungen . 9 | Die 2-G-Regel gilt auch bei Veranstaltungen drinnen: 10 | Wo mehr als 50 Menschen mit-machen. 11 | Dort müssen die Menschen auch diese Regeln be-achten: 12 | • Die Masken-Pflicht • und die Abstands-Regeln . 13 | In Diskos • und in Clubs müssen die Menschen die 2-G-Plus-Regel be-achten. 14 | Dort müssen die Menschen dann diese Corona-Regeln nicht mehr be-achten: 15 | Die Masken-Pflicht und die Abstands-Regeln. 16 | Die Weihnachts-Märkte in Sachsen-Anhalt können gemacht werden. 17 | Aber dort müssen sich die Menschen an die 3-G-Regel halten. 18 | Und auch bei anderen Sachen ist das so. 19 | Zum Beispiel: 20 | Beim Friseur, • im Kosmetik-Studio , • im Tattoo-Studio , • bei der Kranken-Gymnastik • oder in Bussen und Bahnen. 21 | Aber wenn es geht: 22 | Dann sollen die Menschen zu Hause arbeiten. 23 | Am Arbeits-Platz sollen sich die Menschen auch an die 3-G-Regel halten. 24 | Diese Regeln gibt es an den Schulen 25 | Die Schulen in Sachsen-Anhalt bleiben noch auf. 26 | Die Eltern können dafür einen Antrag schreiben. 27 | Ab dem 25. November gibt es die Präsenz-Pflicht an den Schulen nicht mehr. 28 | Das bedeutet: Die Schüler und Schülerinnen müssen zum Lernen nicht mehr in die Schule kommen. 29 | Dann bekommen die Schüler und Schülerinnen Schul-Aufgaben für zu Hause. 30 | Aber die Weihnachts-Ferien fangen schon 5 Tage früher an. 31 | Sie fangen am 17. Dezember an. 32 | Ab dem 29. November müssen die Schüler und Schülerinnen jeden Tag einen Corona-Test machen. 33 | -------------------------------------------------------------------------------- /crawler/crawler_template.py: -------------------------------------------------------------------------------- 1 | import crawler.utilities as utl 2 | 3 | # base_url is used for creating the main folder and as a start point for crawling 4 | base_url = "homepage" 5 | 6 | def crawl_site(easy_url: str, base_url: str): 7 | """ Saves the parallel articles 8 | 9 | Args: 10 | easy_url (str): the easy article to find the normal article in 11 | base_url (str): the base hostname of the website 12 | """ 13 | easy_soup = utl.read_soup(easy_url) 14 | 15 | # Find the corresponding normal url in the easy soup 16 | 17 | if normals_url: 18 | # save the parallel articles 19 | utl.save_parallel_soup(normal_soup, normal_url, easy_soup, easy_url) 20 | else: 21 | utl.log_missing_url(easy_url) 22 | 23 | 24 | def crawling(base_url: str): 25 | """ Starts the crawling process 26 | 27 | Args: 28 | base_url (str): the base hostname of the website 29 | """ 30 | home_url_easy = "" 31 | 32 | easy_soup = utl.read_soup(home_url_easy) 33 | 34 | # Suggested steps: 35 | # get urls from easy main page 36 | # use crawl_site to traverse the found urls and make recursive calls 37 | 38 | # read the corresponding articles 39 | for i, easy_url in enumerate(easy_urls): 40 | print(f"[{i+1}/{len(easy_urls)}] Crawling {easy_url}") 41 | crawl_site(easy_url, base_url) 42 | 43 | 44 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 45 | """ Parse the texts from the previously downloaded articles 46 | Given a soup, parse the contents into a result soup. 47 | Most of the time 48 | 49 | Args: 50 | soup (BeautifulSoup): BeautifulSoup object of the webpage to be parsed 51 | 52 | Returns: 53 | BeautifulSoup: BeautifulSoup object containing the the text to be extracted (See utl.parse_soups() for context) 54 | """ 55 | 56 | content = soup 57 | 58 | # add functionality to parse draw useable content from the soup 59 | results = BeautifulSoup(content, "html.parser") 60 | return result 61 | -------------------------------------------------------------------------------- /results/hand_aligned/1278914756180535753230376465572972684231217454506.simple: -------------------------------------------------------------------------------- 1 | Die Grippe ist eine ansteckende Krankheit. 2 | Das Fachwort für Grippe ist: Influenza. 3 | Eine Grippe entsteht durch Viren. 4 | Eine Grippe ist kein grippaler Infekt. 5 | Manche Personen bekommen schneller eine Grippe als andere. 6 | Deshalb können sie schneller an Grippe erkranken: 7 | Schwangere 8 | Babys Personen mit Diabetes oder anderen Stoffwechselkrankheiten. 9 | Zu Diabetes sagt man auch Zuckerkrankheit. 10 | Personen mit Tumor-Erkrankung 11 | Diese Personen haben nämlich häufig ein schwächeres Immunsystem. 12 | Personen mit Lungen-Erkrankung 13 | Personen mit HIV-Erkrankung 14 | Personen mit Herz-Erkrankung 15 | Personen mit Unterernährung. 16 | Personen über 65 Jahren 17 | Die Anzeichen einer Grippe sind sehr plötzlich . 18 | Gliederschmerzen hohes Fieber 19 | Eine Grippe dauert etwa eine Woche. 20 | Danach geht es Ihnen langsam wieder besser. 21 | Aber eine Grippe schwächt den Körper. 22 | Deshalb können weitere Erkrankungen hinzukommen wie zum Beispiel: Lungen-Entzündung und schwerer Husten Ohren-Entzündung und Ohrenschmerzen Herzmuskel-Entzündung mit Atemnot Diese Folge-Erkrankungen können die Grippe gefährlich machen. 23 | Sie haben starke Schmerzen? 24 | Dann können Medikamente helfen. 25 | Bei Grippe helfen vor allem: viel Ruhe viel trinken Achtung: 26 | Manche Menschen mit Herzkrankheiten oder Nierenkrankheiten dürfen nur eine bestimmte Menge trinken. 27 | Vielleicht verschreibt er Ihnen spezielle Medikamente gegen die Grippe. 28 | Gegen Grippe gibt es auch eine Impfung. 29 | Das Influenza-Virus verändert sich dauernd. 30 | Deshalb muss eine Impfung gegen Grippe jedes Jahr erfolgen. 31 | Manche Menschen sollten sich auf jeden Fall gegen Grippe impfen lassen: 32 | Menschen ab 60 Jahre Diabetiker. 33 | Das sind Menschen mit der Zuckerkrankheit. 34 | Personen mit Immunschwäche 35 | Personen mit chronischer Lebererkrankung 36 | Personen mit chronischer Nierenerkrankung 37 | Personen mit Herzkrankheiten 38 | Personen mit Atemwegserkrankungen wie zum Beispiel Asthma 39 | -------------------------------------------------------------------------------- /results/hand_aligned/454352912481968314094435810070359540723529320752.normal: -------------------------------------------------------------------------------- 1 | „Salon im Kleisthaus“ ist das neue digitale Talkformat von „Kultur im Kleisthaus“, der Kulturmarke und dem Auftrag des Beauftragten der Bundesregierung für die Belange von Menschen mit Behinderungen. 2 | In dem Video-Podcast geht es um Kunst, Kultur, Demokratie und Inklusion. 3 | Das Jahr 2020 ist eine Zeitenwende für die gesamte Gesellschaft aber insbesondere für die Kulturbranche. 4 | Das Jahr 2020 ist eine Zeitenwende für die gesamte Gesellschaft aber insbesondere für die Kulturbranche. 5 | Viele Monate konnten - und können teilweise immer noch - keine Kulturveranstaltungen in der gewohnten Weise stattfinden und ein Ausweichen auf digitale Formate war erforderlich. 6 | Die „Kultur im Kleisthaus“ hat diese Herausforderung als Chance genutzt und das digitale Format „Salon im Kleisthaus“ entwickelt. 7 | Die „Kultur im Kleisthaus“ hat diese Herausforderung als Chance genutzt und das digitale Format „Salon im Kleisthaus“ entwickelt. 8 | Einerseits wird hier Teilhabe an einem barrierefreien digitalen Format für Menschen mit Behinderungen „vor dem heimischen Endgerät“ ermöglicht. 9 | Andererseits geht es inhaltlich um die Teilhabe-Situation von Menschen mit Behinderungen an Kunst und Kultur, dem übergeordneten Anliegen des Beauftragten der Bundesregierung von Menschen mit Behinderungen. 10 | In der Reihe spricht der Beauftragte regelmäßig mit Persönlichkeiten des öffentlichen Lebens, mit Künstler*innen mit und ohne Behinderungen, Politiker*innen und Expert*innen in eigener Sache über Kunst, Kultur, Demokratie und Teilhabe. 11 | In der Reihe spricht der Beauftragte regelmäßig mit Persönlichkeiten des öffentlichen Lebens, mit Künstler*innen mit und ohne Behinderungen, Politiker*innen und Expert*innen in eigener Sache über Kunst, Kultur, Demokratie und Teilhabe. 12 | In der Reihe spricht der Beauftragte regelmäßig mit Persönlichkeiten des öffentlichen Lebens, mit Künstler*innen mit und ohne Behinderungen, Politiker*innen und Expert*innen in eigener Sache über Kunst, Kultur, Demokratie und Teilhabe. 13 | -------------------------------------------------------------------------------- /CONTRIBUTE.md: -------------------------------------------------------------------------------- 1 | # How to contribute to the Simple German Dataset 2 | Our work constitutes only a first step towards an extensive and valuable text corpus for simple German language. There are different ways to contribute. 3 | 4 | ## Bugs and issues 5 | While using our dataset, please report any bugs or problems you might encounter by creating an issue. 6 | ## Website Suggestions 7 | Finding suitable websites is a prerequisite for extensions of our corpus. If you know any websites that offer their content in German as well as some simplified version of it, you can suggest them. 8 | Requirements: 9 | - the website's content must be in German 10 | - for each article in German there must be corresponding article in simple language 11 | - the simplification should be according to [Einfache Sprache](https://de.wikipedia.org/wiki/Einfache_Sprache#H%C3%A4ufige_Empfehlungen_f%C3%BCr_Einfache_Sprache) or [Leichte Sprache](https://leichte-sprache.de/download/1988/); see also [this comparison](https://www.bpb.de/shop/zeitschriften/apuz/179341/leichte-und-einfache-sprache-versuch-einer-definition/) (these links lead to websites in German) 12 | - all German and simple German articles should be linked more or less uniformly 13 | - good to know: is the website continuously publishing new parallel articles? 14 | 15 | Take a look at the Dataset folder in order to see which websites we've already covered. 16 | 17 | ## Additional Crawlers 18 | If you have not only found a new online source, but would also like to contribute the corresponding crawler, you can find a template under crawler/crawler_template.py. The final crawler should create a new {source-url} folder containing a crawled folder with all html files. The script crawler/archive.py can be used to archive all urls with the WaybackMachine. 19 | 20 | ## Sentence Alignment 21 | For our sentence alignment, we tested a variety of similarity measures and matching algorithms. We report the results and make a suggestion for the best possible alignment based on them. Still, the results are by no means perfect and we would love to extent the list of tested algorithems. -------------------------------------------------------------------------------- /results/evaluated/615906618567343416389533095226002286331304254697.results: -------------------------------------------------------------------------------- 1 | { 2 | "Ausgabe 43 / Mai 2021 Ausgabe 42 / November 2020 Ausgabe 41 / November 2019 Ausgabe 40 / Oktober 2018 Ausgabe 39 /Juli": { 3 | "Organigramm Ausgabe November 2021 Ausgabe 43 / Mai 2021 Ausgabe 42 / November 2020 Ausgabe 41 / November 2019 Ausgabe 40 / Oktober 2018 Ausgabe 39 / Juli 2017 Ausgabe 38 / Juli 2016 Ausgabe 37 / Dezember 2015": true 4 | }, 5 | "Antrag in Leichter Sprache": { 6 | "Beitrittsantrag /": true 7 | }, 8 | "Hinweise zur Mitgliedschaft": { 9 | "Beitrittsantrag /": false 10 | }, 11 | "Möchten Sie Mitglied bei der Lebenshilfe werden?": { 12 | "Mitmachen bei der Lebenshilfe Flyer \"Wir leben Vielfalt\" Faktenblatt \"Der Verein und seine Angebote\"": true, 13 | "Gemeinsam mit 527 Lebenshilfe-Vereinigungen sind wir mit mehr als 130.000 Mitgliedern vernetzt.": true, 14 | "Die Lebenshilfe Main-Taunus ist Mitglied im Landesverband der Lebenshilfe Hessen und in der Bundesvereinigung Lebenshilfe.": false 15 | }, 16 | "Hier finden Sie unsere Falt-Blätter, die Zeitung und Programme.": { 17 | "Wir danken allen Firmen, Privatpersonen, Stiftungen und Vereinen für ihr Engagement und die großzügigen Spenden.": false 18 | }, 19 | "Dann füllen Sie bitte den Antrag aus:": { 20 | "Beitrittsantrag /": true 21 | }, 22 | "2017 Ausgabe 38 / Juli 2016 Ausgabe 37 / Dezember 2015": { 23 | "Organigramm Ausgabe November 2021 Ausgabe 43 / Mai 2021 Ausgabe 42 / November 2020 Ausgabe 41 / November 2019 Ausgabe 40 / Oktober 2018 Ausgabe 39 / Juli 2017 Ausgabe 38 / Juli 2016 Ausgabe 37 / Dezember 2015": true 24 | }, 25 | "finished": true, 26 | "Ausgabe 43 / Mai 2021 Ausgabe 42 / November 2020 Ausgabe 41 / November 2019 Ausgabe 40 / Oktober 2018 Ausgabe 39 /Juli 2017 Ausgabe 38 / Juli 2016 Ausgabe 37 / Dezember 2015": { 27 | "Mitmachen bei der Lebenshilfe Flyer \"Wir leben Vielfalt\" Faktenblatt \"Der Verein und seine Angebote\" Organigramm Ausgabe November 2021 Ausgabe 43 / Mai 2021 Ausgabe 42 / November 2020 Ausgabe 41 / November 2019 Ausgabe 40 / Oktober 2018 Ausgabe 39 / Juli 2017 Ausgabe 38 / Juli 2016 Ausgabe 37 / Dezember 2015": true 28 | } 29 | } -------------------------------------------------------------------------------- /matching/README.md: -------------------------------------------------------------------------------- 1 | # Matching folder 2 | This folder contains all files for the calculation of sentence similarity and matching sentences. 3 | As it stands, various preprocessing options, six similarity measures and two alignment strategies have been implemented: 4 | 5 | #### Preprocessing options in `utility.py` 6 | - remove_hyphens: removes hyphens of the form '-[A-Z]' (often found in Simple German) from the text. E.g., Bürger-Meister becomes Bürgermeister 7 | - lowercase: lowercases the text 8 | - remove_gender: removes German gendering endings like \*in, \*innen (with \*, _, : and "Binnen-I" (BäckerInnen)) 9 | - lemmatization: lemmatizes the text 10 | - spacy_sentences: should be the standard behavior: Lets spacy determine sentence borders 11 | - remove_stopwords: removes stopwords (very common words) for German as defined internally by spacy 12 | - remove_punctuation: Removes punctuation marks 13 | 14 | #### Similarity measures in `SimilarityMeasures.py` 15 | - bag of words similarity with TF*IDF weighting 16 | - character n-gram similarity with TF*IDF weighting 17 | - cosine similarity with averaged word embedding vectors 18 | - average similarity with averaged similarities between all pairs of words 19 | - maximal similarity with max matching in both directions and average of the two obtained values 20 | - maximum matching similarity, calculating a maximum matching between the sentences and averaging its similarity 21 | - CWASA similarity, that calculates maximum matchings for each word, does not allow i-j and j-i matchings, and averages the obtained similarity values (see paper for details) 22 | 23 | #### Alignment strategies in `DocumentsMatching.py` 24 | - Maximal alignment, that matches each sentence of the Simple sentences to its maximal match in the standard sentences 25 | - Maximal increasing alignment, that works like Maximal alignment, but forces the alignment to keep the order of information 26 | 27 | Both alignment strategies allow to introduce a minimum matching threshold, i.e., the minimal similarity value for which we allow matching between sentences. This can be set either as an absolute value or as dependent on mean and standard deviation of the data (i.e., mean + factor*std, where factor can be set by the user) 28 | -------------------------------------------------------------------------------- /results/hand_aligned/849270025345024940844417200774983103971021795957.simple: -------------------------------------------------------------------------------- 1 | Das heißt: Wer mit Lebensmitteln arbeitet und die Lebensmittel bei der Arbeit berührt, der muss eine Belehrung beim Gesundheits-Amt machen. 2 | Belehrung ist ein schweres Wort für einen Kurs oder Unterricht. 3 | Bei der Belehrung lernen Sie: 4 | • Was Sie über Lebensmittel wissen müssen. 5 | • Wie Sie mit Lebensmitteln arbeiten müssen. 6 | Dann bekommen Sie einen Nachweis vom Gesundheits-Amt. 7 | Damit zeigen Sie: Ich habe die Belehrung beim Gesundheits-Amt gemacht. 8 | Wichtig: Am Nachmittag haben wir nicht geöffnet . 9 | Ausnahme: Am Nachmittag gibt es Belehrungen für Gruppen und Firmen . 10 | Das heißt: Ab 10 Personen. 11 | Kommen Sie ins Anmelde-Büro vom Gesundheits-Amt. 12 | Aber Sie müssen oft warten. 13 | Planen Sie bitte eine Warte-Zeit ein. 14 | Die Belehrung dauert etwa 40 Minuten. 15 | Dann bekommen Sie den Nachweis. 16 | Wie viel kostet der Nachweis? 17 | Dafür müssen Sie 25 Euro bezahlen. 18 | Belehrung für Schüler und Schülerinnen 19 | Die Schüler-Belehrung ist für Kölner Schulen. 20 | Oder für Schüler oder Schülerinnen, • die ein Schul-Praktikum machen • und in Köln gemeldet sind. 21 | Die Schulen müssen vorher einen Termin machen. 22 | Das ist die Fax-Nummer: 02 21 / 22 12 86 35. Achtung: 23 | Eine Schüler-Belehrung ohne Termin ist nicht möglich. 24 | Wenn Sie mit Lebensmitteln arbeiten, brauchen Sie dafür eine Erlaubnis vom Gesundheits-Amt . 25 | Die Erlaubnis heißt: 26 | Nachweis für die Arbeit mit Lebensmitteln. 27 | Sie brauchen auch einen Nachweis: 28 | 1. Wenn Sie regelmäßig in Küchen sind. 29 | Zum Beispiel: 30 | In Gaststätten und anderen Einrichtungen. 31 | 2. Wenn Sie zum Reinigungs-Personal gehören. 32 | Zum Beispiel: Wenn Sie Teller und Töpfe spülen. 33 | Oder wenn Sie die Küche putzen. 34 | Der Nachweis ist ein Leben lang gültig : 35 | Wenn Sie in den 3 Monaten nach der Belehrung mit Ihrer Arbeit angefangen haben. 36 | Ein Nachweis kostet 25 Euro . 37 | Eine Kopie kostet 15 Euro . 38 | Sie können mit Bar-Geld bezahlen. 39 | Das heißt: Sie können mit Geld-Scheinen und Münzen bezahlen. 40 | Oder Sie können auch mit Ihrer EC-Karte bezahlen. 41 | Eine EC-Karte ist eine Karte aus Plastik. 42 | Die Karte haben Sie bei der Bank für Ihr Konto bekommen. 43 | -------------------------------------------------------------------------------- /results/hand_aligned/465744468303322396867281363215833281038418475539.simple: -------------------------------------------------------------------------------- 1 | Für Beschäftigte und Arbeitgeber gibt es Regeln. 2 | Was sind die Regeln bei Bewerbungen? 3 | Stellen-Anzeigen müssen so geschrieben sein, dass niemand benachteiligt wird. 4 | Zum Beispiel darf der Arbeitgeber nicht nur Frauen oder nur Männer suchen. 5 | Der Arbeitgeber darf die Bewerber und Bewerberinnen bestimmte Sachen nicht fragen. 6 | Zum Beispiel: ob eine Bewerberin bald schwanger werden möchte wie viel Geld der Bewerber oder die Bewerberin hat 7 | Der Arbeitgeber muss den Bewerbern und Bewerberinnen sagen, wenn die Arbeit schwer oder gefährlich ist. 8 | Was sind die Regeln zum Arbeits-Vertrag? 9 | Ein schriftlicher Arbeits-Vertrag ist am besten. 10 | Aber es muss keinen schriftlichen Arbeits-Vertrag geben. 11 | Wenn es keinen schriftlichen Arbeits-Vertrag gibt, muss es 1 Monat nach Arbeits-Beginn ein Schreiben vom Arbeitgeber und dem Beschäftigten geben. 12 | In dem Schreiben muss zum Beispiel stehen: wann die Arbeit los geht. 13 | wo der Beschäftigte oder die Beschäftigte arbeitet. 14 | was die Aufgaben bei der Arbeit sind. 15 | wie viel Geld und Urlaub der Beschäftigte oder die Beschäftigte bekommt. 16 | Wann darf die Arbeit befristet sein? 17 | Befristet heißt: Die Arbeit endet an einem bestimmten Tag. 18 | Bei Neu-Einstellungen darf die Befristung 2 Jahre dauern. 19 | Neue Firmen dürfen am Anfang Arbeits-Verträge befristen. 20 | Nach einer Ausbildung darf die Arbeit befristet sein. 21 | Wenn der neue Beschäftigte einen anderen Beschäftigten vertritt . 22 | Zum Beispiel bei der Eltern-Zeit. 23 | Wann darf ein Unternehmen Beschäftigten kündigen? 24 | Der Arbeitgeber muss gute Gründe für eine Kündigung haben. 25 | Er darf Beschäftigten kündigen, wenn: das Unternehmen keine Aufträge mehr hat und es keine andere Aufgabe für die Beschäftigten mehr gibt. 26 | der Beschäftigte oder die Beschäftigte etwas Schlimmes getan hat. 27 | Zum Beispiel gewalt-tätig war oder die Arbeit verweigert hat. 28 | Die Regeln für eine Kündigung sind bei folgenden Personen besonders streng: 29 | Auszubildende Schwangere 30 | Menschen mit einer Schwer-Behinderung 31 | Beschäftigte in Eltern-Zeit oder Pflege-Zeit 32 | Dann hilft dir der Telefon-Dienst vom Ministerium für Arbeit und Soziales. 33 | Das ist die Telefon-Nummer: 030 221 911 004 34 | -------------------------------------------------------------------------------- /crawler/sozialpolitik.py: -------------------------------------------------------------------------------- 1 | import crawler.utilities as utl 2 | import re 3 | from bs4 import BeautifulSoup 4 | 5 | def crawl_site(easy_url, base_url): 6 | easy_soup = utl.read_soup(easy_url) 7 | 8 | normal_url = utl.parse_url( 9 | easy_soup.find(name="a", hreflang="de-DE", class_="underline easy", 10 | string=re.compile("Standardsprache", flags=re.I))["href"], 11 | base_url 12 | ) 13 | if normal_url: 14 | normal_soup = utl.read_soup(normal_url) 15 | utl.save_parallel_soup(normal_soup, normal_url, easy_soup, easy_url) 16 | else: 17 | utl.log_missing_url(easy_url) 18 | 19 | 20 | def crawling(base_url): 21 | easy_url = "https://www.sozialpolitik.com/es/" 22 | 23 | soup = utl.read_soup(easy_url) 24 | easy_urls = utl.get_urls_from_soup( 25 | soup, 26 | base_url, 27 | filter_args={"name": "section", 28 | "class_": "element-col bg-weiss" 29 | } 30 | ) 31 | 32 | for i, easy_url in enumerate(easy_urls): 33 | print(f"{i+1:0>2}/{len(easy_urls)} Crawling {easy_url}") 34 | crawl_site(easy_url, base_url) 35 | 36 | 37 | def filter_block(tag) -> bool: 38 | if tag.name == "main": 39 | return True 40 | return False 41 | 42 | 43 | def filter_tags(tag) -> bool: 44 | if tag.name == "p": 45 | return True 46 | elif tag.name == "ul": 47 | return True 48 | elif tag.name == "h3": 49 | return True 50 | return False 51 | 52 | 53 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 54 | article_tag = soup.find_all(filter_block) 55 | if len(article_tag) > 1: 56 | print("Unaccounted case occured. More than one article found.") 57 | return 58 | elif len(article_tag) == 0: 59 | print("Unaccounted case occured. No article found.") 60 | return 61 | article_tag = article_tag[0] 62 | 63 | content = article_tag.find_all(filter_tags) 64 | result = BeautifulSoup("", "html.parser") 65 | for tag in content: 66 | result.append(tag) 67 | return result 68 | 69 | 70 | base_url = "https://www.sozialpolitik.com/" 71 | def main(): 72 | crawling(base_url) 73 | utl.parse_soups(base_url, parser) 74 | 75 | 76 | if __name__ == '__main__': 77 | main() 78 | -------------------------------------------------------------------------------- /results/hand_aligned/118159672055894079454753104495975547276602114478.normal: -------------------------------------------------------------------------------- 1 | In Sachsens Krankenhäusern werden wieder mehr Menschen mit einer Corona-Infektion behandelt. 2 | In Sachsens Krankenhäusern werden wieder mehr Menschen mit einer Corona-Infektion behandelt. 3 | In Sachsens Krankenhäusern werden wieder mehr Menschen mit einer Corona-Infektion behandelt. 4 | Michael Albrecht, medizinischer Vorstand im Uniklinikum Dresden und Krankenhauskoordinator, warnt, dass die Vorwarnstufe bereits in wenigen Tagen erreicht werden könnte. 5 | Michael Albrecht, medizinischer Vorstand im Uniklinikum Dresden und Krankenhauskoordinator, warnt, dass die Vorwarnstufe bereits in wenigen Tagen erreicht werden könnte. 6 | Dann drohen wieder Corona-Beschränkungen. 7 | Man bewege sich mit zunehmender Geschwindigkeit auf die Vorwarnstufe zu, sagte Michael Albrecht, medizinischer Vorstand im Uniklinikum Dresden und Krankenhauskoordinator MDR SACHSEN. 8 | Man bewege sich mit zunehmender Geschwindigkeit auf die Vorwarnstufe zu, sagte Michael Albrecht, medizinischer Vorstand im Uniklinikum Dresden und Krankenhauskoordinator MDR SACHSEN. 9 | Dann gelten laut aktueller Corona-Verordnung wieder Kontaktbeschränkungen . 10 | Dann gelten laut aktueller Corona-Verordnung wieder Kontaktbeschränkungen . 11 | Dann gelten laut aktueller Corona-Verordnung wieder Kontaktbeschränkungen . 12 | Nach seinen Angaben müssen planbare Operationen bald wieder verschoben werden, wenn die Patientenzahlen in den Kliniken weiter steigen. 13 | Nach seinen Angaben müssen planbare Operationen bald wieder verschoben werden, wenn die Patientenzahlen in den Kliniken weiter steigen. 14 | Nach seinen Angaben müssen planbare Operationen bald wieder verschoben werden, wenn die Patientenzahlen in den Kliniken weiter steigen. 15 | Eingewiesen würden derzeit vor allem Patienten im Alter zwischen 30 und 60 Jahren. 16 | Das sächsische Sozialministerium informiert, dass 515 Menschen mit Covid-19 in Krankenhäusern liegen (Stand 24.10.2021, 12:00 Uhr). 17 | Das sächsische Sozialministerium informiert, dass 515 Menschen mit Covid-19 in Krankenhäusern liegen (Stand 24.10.2021, 12:00 Uhr). 18 | 124 von ihnen müssen intensivmedizinisch behandelt werden. 19 | Laut RKI-Intensivregister werden 59 Erkrankte invasiv beatmet (Stand 25.10.2021, 5:15 Uhr). 20 | Die Sieben-Tage-Inzidenz Hospitalisierung beträgt 21 | Die Sieben-Tage-Inzidenz Hospitalisierung beträgt 22 | -------------------------------------------------------------------------------- /results/hand_aligned/94916848099090499068002145340937881035607319270.normal: -------------------------------------------------------------------------------- 1 | Erfurt spielt ab Oktober nur noch für Geimpfte und Genesene. 2 | Erfurt spielt ab Oktober nur noch für Geimpfte und Genesene. 3 | Erfurt spielt ab Oktober nur noch für Geimpfte und Genesene. 4 | Als eine Annäherung an die Normalität bezeichnet Generalintendant Guy Montavon diesen Schritt, denn viele Einschränkungen für die Gäste könnten dann aufgehoben werden. 5 | Das Theater Erfurt führt ab Oktober das sogenannte 2G-Modell ein. 6 | Das Theater Erfurt führt ab Oktober das sogenannte 2G-Modell ein. 7 | Das Theater Erfurt führt ab Oktober das sogenannte 2G-Modell ein. 8 | Das Theater Erfurt führt ab Oktober das sogenannte 2G-Modell ein. 9 | Wie das Theater am Montag mitteilte, haben dann nur noch Geimpfte und Genesene Zutritt, außerdem Kinder bis zwölf Jahre. 10 | Wie das Theater am Montag mitteilte, haben dann nur noch Geimpfte und Genesene Zutritt, außerdem Kinder bis zwölf Jahre. 11 | Wie das Theater am Montag mitteilte, haben dann nur noch Geimpfte und Genesene Zutritt, außerdem Kinder bis zwölf Jahre. 12 | Wie das Theater am Montag mitteilte, haben dann nur noch Geimpfte und Genesene Zutritt, außerdem Kinder bis zwölf Jahre. 13 | Sie können zum Beispiel am Platz auf Schutzmasken verzichten. 14 | Sie können zum Beispiel am Platz auf Schutzmasken verzichten. 15 | Sie können zum Beispiel am Platz auf Schutzmasken verzichten. 16 | Außerdem sei es so möglich, alle Plätze anbieten zu können, eine Bestuhlung im Schachbrettmuster sei dann nicht mehr vorgesehen, heißt es. 17 | Außerdem sei es so möglich, alle Plätze anbieten zu können, eine Bestuhlung im Schachbrettmuster sei dann nicht mehr vorgesehen, heißt es. 18 | Außerdem sei es so möglich, alle Plätze anbieten zu können, eine Bestuhlung im Schachbrettmuster sei dann nicht mehr vorgesehen, heißt es. 19 | Außerdem sei es so möglich, alle Plätze anbieten zu können, eine Bestuhlung im Schachbrettmuster sei dann nicht mehr vorgesehen, heißt es. 20 | Außerdem sei es so möglich, alle Plätze anbieten zu können, eine Bestuhlung im Schachbrettmuster sei dann nicht mehr vorgesehen, heißt es. 21 | Kontrolliert wird der Status der Gäste während des Einlasses. 22 | Kontrolliert wird der Status der Gäste während des Einlasses. 23 | Als Nachweise gelten der gängige QR-Code bzw. ein Impf- oder Genesenenzertifikat . 24 | Als Nachweise gelten der gängige QR-Code bzw. ein Impf- oder Genesenenzertifikat . 25 | -------------------------------------------------------------------------------- /results/hand_aligned/1249213639719982452627198945759712103801957507145.simple: -------------------------------------------------------------------------------- 1 | In Deutschland ist ein normaler Insektenstich meist nicht gefährlich. 2 | Der Stachel der Biene steckt noch in der Haut? 3 | Dann entfernen Sie den Stachel vorsichtig. 4 | Berühren Sie nicht die Giftblase. 5 | Die Giftblase ist oben am Stachel. 6 | In der Giftblaseist das Insektengift. 7 | Sie berühren die Giftblase? 8 | Dann kann mehrInsektengift in die Wunde kommen. 9 | Am besten schieben Sie den Stachel seitlich heraus. 10 | Benutzen Sie dafür eine stumpfe Kante, zum Beispiel einer Kreditkarte. 11 | Streichen Sie mit der Karte über den Stich. 12 | Hinweis: Sie möchten den Stachel mit einer Pinzette herausziehen? 13 | Dann müssen Sie sehr vorsichtig sein. 14 | Kühlen Sie den Insektenstich. 15 | Wickeln Sie ein Kältepack oder Eiswürfel in ein Tuch. 16 | Legen Sie das Tuch auf den Stich. 17 | Achtung: Legen Sie Kältepacks oder Eiswürfel nicht direkt auf die Haut. 18 | Die Kälte kann der Haut schaden. 19 | Cremen Sie den Stich mit einem speziellen Gel oder einer speziellen Salbe ein. 20 | Die Gele und Salben lindern den Juckreiz. 21 | Sie bekommen ein passendes Mittel gegen Insektenstiche in der Apotheke. 22 | Auch Hitze kann bei einem Insektenstich helfen. 23 | Sie können zum Beispiel einen Hitze-Stift kaufen. 24 | Die Hitze hilft gegen den Juckreiz. 25 | Eine Person wurde sehr häufig von einer Wespe, einer Biene oder einer Hornisse gestochen? 26 | Dann rufen Sie sofort den Rettungsdienst. 27 | Die Nummer ist 112 . 28 | Die Person kann auf die große Menge Insektengift allergisch reagieren. 29 | Anzeichen für eine allergische Reaktion sind zum Beispiel: 30 | Atemnot Schwindel 31 | Herzklopfen starke Schwellungen Quaddeln auf der Haut. 32 | Quaddeln sind rote geschwollene Flecken auf der Haut. 33 | Eine Person reagiert allergisch auf Insektengift? 34 | Und die Person weiß von der Allergie. 35 | Dann hat die Person vielleicht ein Notfall-Set für Allergiker bei sich. 36 | So versorgen Sie Allergiker mit dem Notfall-Set: 37 | Entfernen Sie zuerst den Stachel aus der Haut. 38 | Geben Sie der betroffenen Person das Medikament mit Kortison und das Antihistaminikum. 39 | Das Notfall-Set besteht aus: 40 | Einem Medikament mit Kortison . 41 | Kortison hilft gegen Entzündungen. 42 | Einem Antihistaminikum . 43 | Antihistamin hilft gegen allergische Reaktionen. 44 | Einer Adrenalin-Fertigspritze . 45 | Die Adrenalin-Fertigspritze stabilisiert den Kreislauf. 46 | Entsichern 47 | Sie die Adrenalin-Fertigspritze. 48 | Setzen Sie die Spritze seitlich auf den Oberschenkel. 49 | Lösen Sie die Spritze aus. 50 | -------------------------------------------------------------------------------- /results/hand_aligned/695936865907567377181902080342840861628252196646.normal: -------------------------------------------------------------------------------- 1 | Im Zoo Leipzig gibt es Nachwuchs bei den Schabrackentapiren. 2 | Im Zoo Leipzig gibt es Nachwuchs bei den Schabrackentapiren. 3 | Im Zoo Leipzig gibt es Nachwuchs bei den Schabrackentapiren. 4 | Wer das Tierbaby allerdings live sehen möchte, braucht ab Montag einen Impf- oder Genesenen-Nachweis für den Zoo-Eintritt - oder muss eine Ausnahmebescheinigung vorlegen. 5 | Wer das Tierbaby allerdings live sehen möchte, braucht ab Montag einen Impf- oder Genesenen-Nachweis für den Zoo-Eintritt - oder muss eine Ausnahmebescheinigung vorlegen. 6 | Wer das Tierbaby allerdings live sehen möchte, braucht ab Montag einen Impf- oder Genesenen-Nachweis für den Zoo-Eintritt - oder muss eine Ausnahmebescheinigung vorlegen. 7 | Wer das Tierbaby allerdings live sehen möchte, braucht ab Montag einen Impf- oder Genesenen-Nachweis für den Zoo-Eintritt - oder muss eine Ausnahmebescheinigung vorlegen. 8 | Wer das Tierbaby allerdings live sehen möchte, braucht ab Montag einen Impf- oder Genesenen-Nachweis für den Zoo-Eintritt - oder muss eine Ausnahmebescheinigung vorlegen. 9 | Der Zoo Leipzig freut sich über Nachwuchs bei den Schabrackentapiren. 10 | Sie kümmere sich derzeit fürsorglich und routiniert um den kleinen Bullen, dessen Fell noch weiße Streifen und Punkte aufweise, hieß es. 11 | Sie kümmere sich derzeit fürsorglich und routiniert um den kleinen Bullen, dessen Fell noch weiße Streifen und Punkte aufweise, hieß es. 12 | Sie kümmere sich derzeit fürsorglich und routiniert um den kleinen Bullen, dessen Fell noch weiße Streifen und Punkte aufweise, hieß es. 13 | Er mache einen agilen Eindruck und sei auch schon beim Trinken beobachtet worden. 14 | Ausnahmen gibt es weiterhin für Kinder und Jugendliche unter 16 Jahren beziehungsweise Menschen, die sich aufgrund medizinischer Gründe nicht impfen lassen können, teilt der Zoo mit. 15 | Ausnahmen gibt es weiterhin für Kinder und Jugendliche unter 16 Jahren beziehungsweise Menschen, die sich aufgrund medizinischer Gründe nicht impfen lassen können, teilt der Zoo mit. 16 | Ausnahmen gibt es weiterhin für Kinder und Jugendliche unter 16 Jahren beziehungsweise Menschen, die sich aufgrund medizinischer Gründe nicht impfen lassen können, teilt der Zoo mit. 17 | Ausnahmen gibt es weiterhin für Kinder und Jugendliche unter 16 Jahren beziehungsweise Menschen, die sich aufgrund medizinischer Gründe nicht impfen lassen können, teilt der Zoo mit. 18 | Ausnahmen gibt es weiterhin für Kinder und Jugendliche unter 16 Jahren beziehungsweise Menschen, die sich aufgrund medizinischer Gründe nicht impfen lassen können, teilt der Zoo mit. 19 | Diese dürfen den Zoo mit Vorlage einer Ausnahmebescheinigung trotzdem besuchen. 20 | Diese dürfen den Zoo mit Vorlage einer Ausnahmebescheinigung trotzdem besuchen. 21 | -------------------------------------------------------------------------------- /results/hand_aligned/788432340304059824066028068235195410919011094752.normal: -------------------------------------------------------------------------------- 1 | Wenn Sie bei Ihrer Eheschließung noch keinen gemeinsamen Familiennamen bestimmt haben, können Sie dies jederzeit nachholen. 2 | Wenn Sie bei Ihrer Eheschließung noch keinen gemeinsamen Familiennamen bestimmt haben, können Sie dies jederzeit nachholen. 3 | Wenn Sie bei Ihrer Eheschließung noch keinen gemeinsamen Familiennamen bestimmt haben, können Sie dies jederzeit nachholen. 4 | Wenn Sie bei Ihrer Eheschließung noch keinen gemeinsamen Familiennamen bestimmt haben, können Sie dies jederzeit nachholen. 5 | Wenn Sie bei Ihrer Eheschließung noch keinen gemeinsamen Familiennamen bestimmt haben, können Sie dies jederzeit nachholen. 6 | Benötigt werden Personalausweis oder Reisepass 7 | Benötigt werden Personalausweis oder Reisepass 8 | Beglaubigte Ablichtung des Eheregisters 9 | Beglaubigte Ablichtung des Eheregisters 10 | Ist Ihre Ehe im Ausland geschlossen worden oder einer von Ihnen nicht im Besitz der deutschen Staatsangehörigkeit, dann setzen Sie sich bitte zwecks weiterer Beratung mit uns in Verbindung. 11 | Ist Ihre Ehe im Ausland geschlossen worden oder einer von Ihnen nicht im Besitz der deutschen Staatsangehörigkeit, dann setzen Sie sich bitte zwecks weiterer Beratung mit uns in Verbindung. 12 | Ist Ihre Ehe im Ausland geschlossen worden oder einer von Ihnen nicht im Besitz der deutschen Staatsangehörigkeit, dann setzen Sie sich bitte zwecks weiterer Beratung mit uns in Verbindung. 13 | Wenn Sie in Deutschland geheiratet haben, wird das Eheregister bei dem Standesamt geführt und aufbewahrt, wo Sie geheiratet haben. 14 | Haben Sie für Ihre im Ausland geschlossene Ehe vor dem 24. Februar 2007 ein Familienbuch auf Antrag anlegen lassen, erhalten Sie die Ablichtung aus dem Eheregister bei dem Standesamt, wo Sie zu diesem Zeitpunkt gemeinsam gewohnt haben. 15 | Haben Sie für Ihre im Ausland geschlossene Ehe vor dem 24. Februar 2007 ein Familienbuch auf Antrag anlegen lassen, erhalten Sie die Ablichtung aus dem Eheregister bei dem Standesamt, wo Sie zu diesem Zeitpunkt gemeinsam gewohnt haben. 16 | Ist die Nachbeurkundung Ihrer Eheschließung nach dem 24. Februar 2007 erfolgt, wird das Eheregister bei dem Standesamt geführt, das die Nachbeurkundung vorgenommen hat. 17 | Eine gemeinsame persönliche Vorsprache ist erforderlich. 18 | Gebühren 19 | Für die Namenserklärung wird eine Gebühr von 21 Euro erhoben. 20 | Eine Bescheinigung über die neue Namensführung kostet 9 Euro. 21 | Die Gebühren können bar oder mit der EC -Karte und PIN -Nummer bezahlt werden. 22 | Die Gebühren können bar oder mit der EC -Karte und PIN -Nummer bezahlt werden. 23 | Die Gebühren können bar oder mit der EC -Karte und PIN -Nummer bezahlt werden. 24 | Die Gebühren können bar oder mit der EC -Karte und PIN -Nummer bezahlt werden. 25 | Die Gebühren können bar oder mit der EC -Karte und PIN -Nummer bezahlt werden. 26 | -------------------------------------------------------------------------------- /results/hand_aligned/71891703955675877144306554676915455546666766785.normal: -------------------------------------------------------------------------------- 1 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 2 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 3 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 4 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 5 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 6 | Als vor zehn Jahren die UN-Behindertenrechtskonvention (UNBRK) in Deutschland in Kraft trat, war Inklusion ein kaum bekannter Fachbegriff und die Behindertenpolitik wurde traditionell dominiert vom Fürsorge- statt vom Selbstbestimmungsprinzip. 7 | Als „hochkritisch“ bewertet Valentin Aichele, Leiter der Monitoring-Stelle UNBRK des Deutschen Instituts für Menschenrechte, diese Entwicklung. 8 | Als „hochkritisch“ bewertet Valentin Aichele, Leiter der Monitoring-Stelle UNBRK des Deutschen Instituts für Menschenrechte, diese Entwicklung. 9 | Als „hochkritisch“ bewertet Valentin Aichele, Leiter der Monitoring-Stelle UNBRK des Deutschen Instituts für Menschenrechte, diese Entwicklung. 10 | Kein anderer völkerrechtlicher Vertrag wurde je so schnell von so vielen Staaten unterzeichnet wie die UNBRK: 177 Staaten und die EU haben sie seit 2008 ratifiziert, Deutschland gehörte zu den Erstunterzeichnern. 11 | Kein anderer völkerrechtlicher Vertrag wurde je so schnell von so vielen Staaten unterzeichnet wie die UNBRK: 177 Staaten und die EU haben sie seit 2008 ratifiziert, Deutschland gehörte zu den Erstunterzeichnern. 12 | Zwar ist auch die Zahl der Unternehmen, die Menschen mit Behinderung beschäftigen, gestiegen. 13 | Zwar ist auch die Zahl der Unternehmen, die Menschen mit Behinderung beschäftigen, gestiegen. 14 | Auch in Werkstätten bräuchte es Mindestlohn Aber noch immer zahlen in Deutschland 37.000 Unternehmen lieber eine Strafabgabe, als auch nur einen einzigen Menschen mit Behinderung einzustellen. 15 | Bislang verdienen die dort Beschäftigten im Schnitt weniger als 200 Euro monatlich. 16 | -------------------------------------------------------------------------------- /results/hand_aligned/413825979286632745251796317887199470271860144079.normal: -------------------------------------------------------------------------------- 1 | Bei brennenden Personen: Wenn möglich Brand mit Wasser oder Feuerlöscher löschen, alternativ kann eine Branddecke über die Person geworfen werden. 2 | Bei brennenden Personen: Wenn möglich Brand mit Wasser oder Feuerlöscher löschen, alternativ kann eine Branddecke über die Person geworfen werden. 3 | Bei brennenden Personen: Wenn möglich Brand mit Wasser oder Feuerlöscher löschen, alternativ kann eine Branddecke über die Person geworfen werden. 4 | Bei brennenden Personen: Wenn möglich Brand mit Wasser oder Feuerlöscher löschen, alternativ kann eine Branddecke über die Person geworfen werden. 5 | Entfernung von Kleidung und Schmuck in der betroffenen Region (Hitzespeicher entfernen). 6 | Entfernung von Kleidung und Schmuck in der betroffenen Region (Hitzespeicher entfernen). 7 | Ist Kleidung mit der Haut verbacken, wird sie dort belassen und der Bereich umschnitten. 8 | Auf keinen Fall Kleidung abreißen! 9 | Bei kleinflächigen Verbrennungen: Klagt der Patient über Schmerzen, betroffene Region vorsichtig mit Leitungswasser (circa 20 Grad Celsius) für maximal fünf Minuten kühlen. 10 | Bei kleinflächigen Verbrennungen: Klagt der Patient über Schmerzen, betroffene Region vorsichtig mit Leitungswasser (circa 20 Grad Celsius) für maximal fünf Minuten kühlen. 11 | Bei kleinflächigen Verbrennungen: Klagt der Patient über Schmerzen, betroffene Region vorsichtig mit Leitungswasser (circa 20 Grad Celsius) für maximal fünf Minuten kühlen. 12 | Bei kleinflächigen Verbrennungen: Klagt der Patient über Schmerzen, betroffene Region vorsichtig mit Leitungswasser (circa 20 Grad Celsius) für maximal fünf Minuten kühlen. 13 | Bei kleinflächigen Verbrennungen: Klagt der Patient über Schmerzen, betroffene Region vorsichtig mit Leitungswasser (circa 20 Grad Celsius) für maximal fünf Minuten kühlen. 14 | Vorbeugen: 15 | Vorbeugen: 16 | Beim Grillen keine Brandbeschleuniger verwenden! 17 | Besonnen mit Feuer umgehen! 18 | Kinder an offenem Feuer immer beaufsichtigen. 19 | Kein kochendes Wasser in Wärmflaschen füllen! 20 | Kein kochendes Wasser in Wärmflaschen füllen! 21 | Wasserkocher und deren Kabel immer außer Reichweite von Kindern stellen. 22 | Wasserkocher und deren Kabel immer außer Reichweite von Kindern stellen. 23 | Heiße Getränke außer Reichweite von Kindern abstellen, Tischdecken vermeiden, sie verleiten dazu, daran zu ziehen. 24 | Heiße Getränke außer Reichweite von Kindern abstellen, Tischdecken vermeiden, sie verleiten dazu, daran zu ziehen. 25 | Heiße Getränke außer Reichweite von Kindern abstellen, Tischdecken vermeiden, sie verleiten dazu, daran zu ziehen. 26 | Bügeleisen und dessen Kabel außer Reichweite von Kindern halten beziehungsweise nicht ohne Beaufsichtigung von Erwachsenen stehen lassen. 27 | Bügeleisen und dessen Kabel außer Reichweite von Kindern halten beziehungsweise nicht ohne Beaufsichtigung von Erwachsenen stehen lassen. 28 | -------------------------------------------------------------------------------- /results/hand_aligned/556622047894677483796976141035228009426410592913.normal: -------------------------------------------------------------------------------- 1 | Sachsens Innenminister Roland Wöller (CDU) hat Rechtsextreme für die zunehmende Aggressivität bei Corona-Demonstrationen verantwortlich gemacht. 2 | Sachsens Innenminister Roland Wöller (CDU) hat Rechtsextreme für die zunehmende Aggressivität bei Corona-Demonstrationen verantwortlich gemacht. 3 | Sachsens Innenminister Roland Wöller (CDU) hat Rechtsextreme für die zunehmende Aggressivität bei Corona-Demonstrationen verantwortlich gemacht. 4 | Sachsens Innenminister Roland Wöller (CDU) hat Rechtsextreme für die zunehmende Aggressivität bei Corona-Demonstrationen verantwortlich gemacht. 5 | Sachsens Innenminister Roland Wöller (CDU) hat Rechtsextreme für die zunehmende Aggressivität bei Corona-Demonstrationen verantwortlich gemacht. 6 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 7 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 8 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 9 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 10 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 11 | Sie bedienten sich ausgiebig sozialer Medien, um Propaganda zu betreiben und Massen zu mobilisieren, sagte der CDU-Politiker in einer aktuellen Debatte im Landtag. 12 | Wöller kündigte an, stärker gegen Hass und Hetze im Internet vorgehen zu wollen. 13 | Bei der Landespolizei würden Stellen für eine entsprechende Taskforce geschaffen. 14 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 15 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 16 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 17 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 18 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 19 | Das betreffe die Sonderkommission Rechtsextremismus (Soko Rex) sowie entsprechende Abteilungen beim Landesamt für Verfassungsschutz und innerhalb der Justiz. 20 | -------------------------------------------------------------------------------- /results/hand_aligned/906215697728623771097621478944206317877609356239.simple: -------------------------------------------------------------------------------- 1 | Ein Blutgerinnsel gelangt in ein Blutgefäß? 2 | Dann kann das Blutgefäß verstopfen. 3 | Das nennt man: Embolie. 4 | Ein Blutgerinnsel ist ein feiner Klumpen aus Blut. 5 | Bei einer Lungenembolie verschließt ein Blutgerinnsel ein Lungengefäß. 6 | Bei einer Lungenembolie können auch mehrere Blutgerinnsel mehrere Lungengefäße verstopfen. 7 | Eine Lungenembolie entsteht durch Blutgerinnsel. 8 | Diese Blutgerinnsel verstopfen ein oder mehrere Lungengefäße. 9 | Die Blutgerinnsel fließen dann mit dem Blutstrom zum Herzen. 10 | Das Herz pumpt die Blutgerinnsel in die Lunge. 11 | Dort kann das Blutgerinnsel steckenbleiben und ein Gefäß verschließen. 12 | Die Blutgerinnsel können zum Beispiel aus den Beinvenen kommen. 13 | Die Blutgerinnsel können auch aus den Beckenvenen kommen. 14 | Der Arzt sagt dazu: Thrombose der Beinvenen. 15 | Der Arzt sagt dazu: Thrombose der Beckenvenen. 16 | Auch andere Dinge können das Gefäß verstopfen. 17 | Zum Beispiel: Luft Fruchtwasser Fett 18 | Fremdkörper 19 | Diese Ursachen sind aber eher selten. 20 | Das ist sehr gefährlich und kann sogar lebensbedrohlich sein. 21 | Drei Faktoren erhöhen die Wahrscheinlichkeit für eine Embolie: 22 | Ein Patient bewegt sich nur wenig? 23 | Dann fließt auch das Blut langsamer. 24 | Bewegung hilft den Venen dabei, das Blut zum Herzen zu pumpen. 25 | Manche Patienten dürfen sich nach einer Operation nicht viel bewegen. 26 | Das kann zu einem Blutgerinnsel führen. 27 | Auch eine lange Flugreise kann zu einem Blutgerinnsel führen. 28 | Die Innenwand eines Blutgefäßes kann sich verändern: 29 | Zum Beispiel kann das Gefäß verletzt sein. 30 | Oder Gewebe in der Nähe kann entzündet sein. 31 | Manchmal gerinnt das Blut schneller als üblich. 32 | Die Ursachen dafür können unter anderem sein: 33 | Gerinnungsstörungen 34 | Krebserkrankungen bestimmte Medikamente (zum Beispiel: Anti-Baby-Pille). 35 | Weitere Risikofaktoren für ein Blutgerinnsel sind: Schwangerschaft 36 | höheres Alter starkes Übergewicht ein früheres Blutgerinnsel 37 | Es gibt verschiedene Anzeichen für eine Lungenembolie. 38 | Die Anzeichen hängen davon ab, wie groß der betroffene Lungenabschnitt ist. 39 | Mögliche Anzeichen sind: Brustschmerzen plötzliche Luftnot 40 | Schmerzen beim Atmen blutiger Auswurf 41 | Herzrasen plötzliche Bewusstlosigkeit 42 | Bei einem Herz-Kreislauf-Stillstand muss man die Person wiederbeleben. 43 | Sie können das Risiko für eine Lungenembolie verkleinern. 44 | Dafür sollten Sie diese Dinge beachten: 45 | Hat Ihnen der Arzt Medikamente zur Hemmung der Blutgerinnung verschrieben? 46 | Dann nehmen Sie die Medikamente wie besprochen ein. 47 | Achten Sie auf Ihr Gewicht. 48 | Lassen Sie Erkrankungen des Herzens und des Gerinnungssystems frühzeitig behandeln. 49 | So halten Sie die Venen gesund. 50 | Bewegen Sie sich möglichst viel. 51 | Trinken Sie auf Flugreisen ausreichend Wasser. 52 | Stehen Sie ab und zu auf und bewegen Sie die Beine. 53 | -------------------------------------------------------------------------------- /results/hand_aligned/828444433833163063931544380127985534704050297616.simple: -------------------------------------------------------------------------------- 1 | Eine COPD ist eine Erkrankung der Atemwege. 2 | COPD ist die Abkürzung für: C hronic O bstructive P ulmonary D isease. 3 | Eine COPD ist nicht heilbar. 4 | Aber Ärzte können eine COPD behandeln. 5 | Bei der COPD entzünden sich die Bronchien dauerhaft. 6 | Durch die Entzündung verengen sich die Bronchien. 7 | Deshalb können betroffene Personen schlecht atmen. 8 | COPD kann die Lungenbläschen angreifen. 9 | Die Lungenbläschen versorgen das Blut mit Sauerstoff. 10 | Bei einer COPD platzen die Wände der Lungenbläschen. 11 | Deshalb ist immer weniger Sauerstoff im Blut. 12 | Eine COPD entwickelt sich langsam. 13 | Die wichtigsten Anzeichen für eine COPD sind: Husten . 14 | Auswurf . 15 | Betroffene Personen können den Schleim schwer abhusten. 16 | Atemnot . 17 | Betroffene Personen haben besonders bei Belastung Atemnot. 18 | Belastungen können zum Beispiel Gartenarbeit oder Treppensteigen sein. 19 | Atemgeräusche . 20 | Die Lunge betroffener Personen macht beim Ausatmen ein pfeifendes Geräusch. 21 | Betroffene Personen müssen besonders morgens husten. 22 | Aber bestimmte Dinge können das Risiko für eine COPD erhöhen. 23 | Dazu gehören zum Beispiel: Rauchen . 24 | Raucher können eher an einer COPD erkranken. 25 | Auch Passivrauchen erhöht das Risiko für eine COPD. 26 | Passivrauchen bedeutet: 27 | Die Person raucht nicht selbst. 28 | Manchen Menschen fehlt ein bestimmter körpereigener Stoff. 29 | Der Stoff fehlt? 30 | Dann baut der Körper Lungengewebe ab. 31 | Diese Menschen können eher eine COPD bekommen. 32 | Umweltfaktoren . 33 | Bestimmte Umwelteinflüsse erhöhen das Risiko eine COPD zu bekommen. 34 | Umwelteinflüsse sind zum Beispiel Staub und bestimmte Gase. 35 | Asthma . 36 | Sie rauchen und haben Asthma? 37 | Dann können Sie eher eine COPD bekommen. 38 | Es gibt Medikamente gegen COPD. 39 | Die Medikamente verbessern die Beschwerden der COPD. 40 | Und die Medikamente können die COPD bremsen. 41 | Betroffene Personen inhalieren die Medikamente. 42 | Durch das Inhalieren weiten sich die Atemwege. 43 | Betroffene Personen können dann wieder besser atmen. 44 | Sie können die COPD zum Beispiel mit diesen Maßnahmen bremsen: 45 | Medikamente . 46 | Bewegung . 47 | Gehen Sie zur Physiotherapie. 48 | Dort zeigt Ihnen der Physiotherapeut bestimmte Übungen. 49 | Mit den Übungen behalten Sie Ihre Kondition. 50 | Impfungen . 51 | Lassen Sie sich gegen Pneumokokken impfen. 52 | Pneumokokken sind Bakterien. 53 | Pneumokokken verursachen eine Lungenentzündung. 54 | Und lassen Sie sich auch gegen Grippe impfen. 55 | Einige Personen nehmen während einer COPD ab. 56 | Die Personen haben dann weniger Muskeln. 57 | Eine ausgewogene Ernährung stärkt den Körper. 58 | Fragen Sie ihren Arzt nach einer Ernährungsberatung. 59 | Reha und Schulungen . 60 | Sie können eine Reha bei Ihrer Krankenkasse beantragen. 61 | Dort lernen Sie: 62 | So gehe ich mit meiner COPD um. 63 | Fragen Sie Ihren Arzt nach einer Reha. 64 | -------------------------------------------------------------------------------- /results/hand_aligned/117340419407836242067093581502664462169881271737.normal: -------------------------------------------------------------------------------- 1 | Sachsen gibt Fördermittel für NSU-Dokumentationszentrum in Zwickau. 2 | Das rechtsextreme NSU-Trio, das für zehn Morde verantwortlich ist, hat viele Jahre in Zwickau unerkannt gelebt. 3 | Das rechtsextreme NSU-Trio, das für zehn Morde verantwortlich ist, hat viele Jahre in Zwickau unerkannt gelebt. 4 | Das rechtsextreme NSU-Trio, das für zehn Morde verantwortlich ist, hat viele Jahre in Zwickau unerkannt gelebt. 5 | Das rechtsextreme NSU-Trio, das für zehn Morde verantwortlich ist, hat viele Jahre in Zwickau unerkannt gelebt. 6 | Nun soll in der Muldestadt ein Dokumentationszentrum entstehen, das die Verbrechen des NSU aufarbeitet und zugleich dem demokatischen Diskurs dienen soll. 7 | Nun soll in der Muldestadt ein Dokumentationszentrum entstehen, das die Verbrechen des NSU aufarbeitet und zugleich dem demokatischen Diskurs dienen soll. 8 | Nun soll in der Muldestadt ein Dokumentationszentrum entstehen, das die Verbrechen des NSU aufarbeitet und zugleich dem demokatischen Diskurs dienen soll. 9 | In der Muldestadt, wo das Trio mehrere Jahre lang unentdeckt lebte, fand am Donnerstag ein Gedenk- und Bildungstag statt unter dem Titel "Reicht es?! 10 | In der Muldestadt, wo das Trio mehrere Jahre lang unentdeckt lebte, fand am Donnerstag ein Gedenk- und Bildungstag statt unter dem Titel "Reicht es?! 11 | Dabei übergab Sachsens Justizministerin Katja Meier (Grüne) einen Fördermittelbescheid in Höhe von 95.000 Euro an den Verein Regionale Arbeitsstellen für Bildung, Integration und Demokratie (RAA Sachsen). 12 | Dabei übergab Sachsens Justizministerin Katja Meier (Grüne) einen Fördermittelbescheid in Höhe von 95.000 Euro an den Verein Regionale Arbeitsstellen für Bildung, Integration und Demokratie (RAA Sachsen). 13 | Dabei übergab Sachsens Justizministerin Katja Meier (Grüne) einen Fördermittelbescheid in Höhe von 95.000 Euro an den Verein Regionale Arbeitsstellen für Bildung, Integration und Demokratie (RAA Sachsen). 14 | Dabei übergab Sachsens Justizministerin Katja Meier (Grüne) einen Fördermittelbescheid in Höhe von 95.000 Euro an den Verein Regionale Arbeitsstellen für Bildung, Integration und Demokratie (RAA Sachsen). 15 | Die Ministerin sagte, das Dokumentationszentrum soll "ein lebendiger Ort werden, an dem Bildungsarbeit stattfindet, an dem Menschen zusammenkommen und ein Ort des demokratischen Austauschs, an dem Standpunkte diskutiert, Ideen entwickelt und umgesetzt werden". 16 | Die Ministerin sagte, das Dokumentationszentrum soll "ein lebendiger Ort werden, an dem Bildungsarbeit stattfindet, an dem Menschen zusammenkommen und ein Ort des demokratischen Austauschs, an dem Standpunkte diskutiert, Ideen entwickelt und umgesetzt werden". 17 | Die Ministerin sagte, das Dokumentationszentrum soll "ein lebendiger Ort werden, an dem Bildungsarbeit stattfindet, an dem Menschen zusammenkommen und ein Ort des demokratischen Austauschs, an dem Standpunkte diskutiert, Ideen entwickelt und umgesetzt werden". 18 | -------------------------------------------------------------------------------- /crawler/behindertenbeauftragter.py: -------------------------------------------------------------------------------- 1 | import crawler.utilities as utl 2 | import re 3 | from bs4 import BeautifulSoup 4 | 5 | 6 | def crawl_site(easy_url, base_url): 7 | easy_soup = utl.read_soup(easy_url) 8 | 9 | easy_soup_tag = easy_soup.find(name="a", 10 | title=re.compile( 11 | "Lesen Sie den Artikel .* in Alltagssprache", flags=re.I), 12 | class_="c-language-switch__l c-language-switch__l--as", 13 | string="Alltagssprache" 14 | ) 15 | 16 | if easy_soup_tag: 17 | normal_url = utl.parse_url( 18 | easy_soup_tag["href"], 19 | base_url 20 | ) 21 | normal_soup = utl.read_soup(normal_url) 22 | utl.save_parallel_soup(normal_soup, normal_url, easy_soup, easy_url) 23 | else: 24 | utl.log_missing_url(easy_url) 25 | 26 | 27 | def crawling(base_url): 28 | easy_url = "https://www.behindertenbeauftragter.de/DE/LS/startseite/startseite-node.html" 29 | 30 | soup = utl.read_soup(easy_url) 31 | soup_tags = soup.find_all(name="div", class_="menu fl-1") 32 | easy_urls = [link["href"] 33 | for tag in soup_tags for link in tag.find_all(name="a", href=True)] 34 | 35 | easy_urls = [utl.parse_url(url[:url.find(";")], base_url) 36 | for url in easy_urls] 37 | 38 | for i, easy_url in enumerate(easy_urls): 39 | print(f"{i+1:0>2}/{len(easy_urls)} Crawling {easy_url}") 40 | crawl_site(easy_url, base_url) 41 | 42 | 43 | def filter_block(tag) -> bool: 44 | if tag.name == "div": 45 | if tag.has_attr("id"): 46 | if "content" in tag["id"]: 47 | if tag.has_attr("class"): 48 | if "content" in tag["class"]: 49 | return True 50 | return False 51 | 52 | 53 | def filter_tags(tag) -> bool: 54 | if tag.name == "p": 55 | return True 56 | elif tag.name == "h2": 57 | return True 58 | elif tag.name == "ul": 59 | return True 60 | if tag.name == "div": 61 | if tag.has_attr("class"): 62 | if "abstract" in tag["class"]: 63 | return True 64 | return False 65 | 66 | 67 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 68 | article_tag = soup.find_all(filter_block) 69 | if len(article_tag) > 1: 70 | print("Unaccounted case occured. More than one article found.") 71 | return 72 | article_tag = article_tag[0] 73 | 74 | content = article_tag.find_all(filter_tags, recursive=False) 75 | result = BeautifulSoup("", "html.parser") 76 | for tag in content: 77 | result.append(tag) 78 | return result 79 | 80 | 81 | base_url = "https://www.behindertenbeauftragter.de/" 82 | def main(): 83 | crawling(base_url) 84 | utl.parse_soups(base_url, parser) 85 | 86 | 87 | if __name__ == '__main__': 88 | main() 89 | -------------------------------------------------------------------------------- /results/hand_aligned/70512434927461411620569612737373280743611648829.normal: -------------------------------------------------------------------------------- 1 | Guten Tag 2 | Liebste, Ich heiße Zita Blanc, bin ein einziges Mädchen, französischer Staatsbürger, Ich möchte Ihre Dienste als Partner / 3 | Liebste, Ich heiße Zita Blanc, bin ein einziges Mädchen, französischer Staatsbürger, Ich möchte Ihre Dienste als Partner / 4 | Liebste, Ich heiße Zita Blanc, bin ein einziges Mädchen, französischer Staatsbürger, Ich möchte Ihre Dienste als Partner / 5 | Investor anfragen und mich dabei unterstützen, mein Geld zu transferieren und zu verwalten, indem ich in gewinnbringende Projekte wie den Kauf von Unternehmensanteilen oder den Real Estate Investment Trust-Fonds investiere. 6 | Investor anfragen und mich dabei unterstützen, mein Geld zu transferieren und zu verwalten, indem ich in gewinnbringende Projekte wie den Kauf von Unternehmensanteilen oder den Real Estate Investment Trust-Fonds investiere. 7 | Investor anfragen und mich dabei unterstützen, mein Geld zu transferieren und zu verwalten, indem ich in gewinnbringende Projekte wie den Kauf von Unternehmensanteilen oder den Real Estate Investment Trust-Fonds investiere. 8 | Investor anfragen und mich dabei unterstützen, mein Geld zu transferieren und zu verwalten, indem ich in gewinnbringende Projekte wie den Kauf von Unternehmensanteilen oder den Real Estate Investment Trust-Fonds investiere. 9 | Ich bin jetzt nicht in Frankreich. 10 | Ich habe eine vernünftige Summe, die ich von meinem Stiefvater Mr. Desmond Blanc geerbt habe. 11 | Ich habe eine vernünftige Summe, die ich von meinem Stiefvater Mr. Desmond Blanc geerbt habe. 12 | Ich habe eine vernünftige Summe, die ich von meinem Stiefvater Mr. Desmond Blanc geerbt habe. 13 | Bitte nehmen Sie mich wie Ihre Tochter oder Ihre Schwester. 14 | Im Anhang sind meine persönlichen Fotos, der Nachweis der Hinterlegung des Fonds, mein internationaler Reisepass und die Sterbeurkunde meines verstorbenen Vaters in Frankreich sowie der rechtliche Wille. 15 | Im Anhang sind meine persönlichen Fotos, der Nachweis der Hinterlegung des Fonds, mein internationaler Reisepass und die Sterbeurkunde meines verstorbenen Vaters in Frankreich sowie der rechtliche Wille. 16 | Im Anhang sind meine persönlichen Fotos, der Nachweis der Hinterlegung des Fonds, mein internationaler Reisepass und die Sterbeurkunde meines verstorbenen Vaters in Frankreich sowie der rechtliche Wille. 17 | Ich sende all dies, damit Sie darauf vertrauen können, dass Sie mit einer echten Person zu tun haben. 18 | Ich sende all dies, damit Sie darauf vertrauen können, dass Sie mit einer echten Person zu tun haben. 19 | Ich sende all dies, damit Sie darauf vertrauen können, dass Sie mit einer echten Person zu tun haben. 20 | Bitte antworten Sie mir, sobald Sie diese Nachricht und die Dokumente gelesen haben, damit ich wissen kann, wie ich vorgehen soll. 21 | Bitte antworten Sie mir, sobald Sie diese Nachricht und die Dokumente gelesen haben, damit ich wissen kann, wie ich vorgehen soll. 22 | Freundliche Grüße Fräulein Zita Blanc. 23 | Freundliche Grüße Fräulein Zita Blanc. 24 | -------------------------------------------------------------------------------- /main_alignment.py: -------------------------------------------------------------------------------- 1 | from pathlib import Path 2 | import os 3 | import json 4 | from tqdm import tqdm 5 | import matching.utilities as utl 6 | 7 | from defaultvalues import * 8 | 9 | def main(): 10 | """ This function generates all alignments according to sepcific parameters 11 | """ 12 | 13 | # Parameters for generation 14 | sim_measure = "maximum" 15 | sd_threshold = 1.5 16 | doc_matching = "max_increasing_subsequence" 17 | 18 | # setup 19 | pairs = utl.get_article_pairs() 20 | if not os.path.isdir(f"{results_location}/alignment"): 21 | os.makedirs(f"{results_location}/alignment") 22 | 23 | alignment = {} 24 | for matching_simple, matching_normal in tqdm(pairs): 25 | # get filenames and get the path to the matching calculated by old_main_matching.py 26 | simple_file = matching_simple.split("/")[-1] 27 | normal_file = matching_normal.split("/")[-1] 28 | name = utl.make_matching_path( 29 | simple_file, normal_file, sim_measure, doc_matching, sd_threshold) 30 | 31 | easy_lines = [] 32 | normal_lines = [] 33 | with open(name, encoding="utf-8") as fp: 34 | matches = json.load(fp) 35 | for match in matches: 36 | # read information of the matches 37 | i_normal = match[0][1] # index of the normal sentence 38 | sentence_pair = match[1] 39 | distance = match[2] 40 | 41 | easy_lines.append(sentence_pair[0]) 42 | normal_lines.append(sentence_pair[1]) 43 | # add the alignment to logging 44 | if not normal_file in alignment: 45 | # first alignment of the normal filee 46 | alignment[normal_file] = { 47 | i_normal: [{"sent": sentence_pair, "dist": distance}] 48 | } 49 | elif not i_normal in alignment[normal_file]: 50 | # first time the specific index was used 51 | alignment[normal_file][i_normal] = [ 52 | {"sent": sentence_pair, "dist": distance}] 53 | else: 54 | # both the normal file and the index were logged before 55 | alignment[normal_file][i_normal].append( 56 | {"sent": sentence_pair, "dist": distance}) 57 | align_simple, align_normal = utl.make_alignment_path( 58 | simple_file, normal_file) 59 | with open(align_simple, "w", encoding="utf-8") as fp_simple, open(align_normal, "w", encoding="utf-8") as fp_normal: 60 | fp_simple.write("\n".join(easy_lines)) 61 | fp_normal.write("\n".join(normal_lines)) 62 | 63 | # save all logged alignments for comprehensibility reasons 64 | with open(f"{results_location}/alignments_with_distance.json", "w", encoding="utf-8") as fp: 65 | json.dump(alignment, fp, indent=4, ensure_ascii=False) 66 | 67 | 68 | if __name__ == "__main__": 69 | main() 70 | -------------------------------------------------------------------------------- /crawler/taz.py: -------------------------------------------------------------------------------- 1 | import crawler.utilities as utl 2 | import re 3 | from bs4 import BeautifulSoup 4 | 5 | 6 | def crawl_site(easy_url, base_url): 7 | easy_soup = utl.read_soup(easy_url) 8 | 9 | easy_soup_tags = easy_soup.find_all(name="p", xmlns="", class_=True) 10 | easy_soup_tags = [tag for tag in easy_soup_tags if tag.find(name="em")] 11 | easy_soup_tags = [ 12 | tag for tag in easy_soup_tags if tag.find(name="a", href=True)] 13 | 14 | if easy_soup_tags: 15 | a_tags = [href_tag for easy_soup_tag in easy_soup_tags for href_tag in easy_soup_tag.find_all( 16 | name="a", href=True)] 17 | 18 | for a_tag in a_tags: 19 | normal_url = utl.parse_url( 20 | a_tag["href"], 21 | base_url 22 | ) 23 | 24 | normal_soup = utl.read_soup(normal_url) 25 | utl.save_parallel_soup( 26 | normal_soup, normal_url, easy_soup, easy_url) 27 | else: 28 | utl.log_missing_url(easy_url) 29 | 30 | 31 | def crawling(base_url): 32 | easy_url = "https://taz.de/Politik/Deutschland/Leichte-Sprache/!p5097/" 33 | 34 | soup = utl.read_soup(easy_url) 35 | soup_tags = soup.find_all(name="ul", 36 | role="directory", 37 | debug="x1", 38 | class_="news directory") 39 | 40 | easy_urls = [utl.parse_url(link["href"], base_url) 41 | for tag in soup_tags for link in tag.find_all(name="a", href=True)] 42 | 43 | easy_urls = [utl.parse_url(url[:url.find(";")], base_url) 44 | for url in easy_urls] 45 | 46 | for i, easy_url in enumerate(easy_urls): 47 | print(f"{i+1:0>2}/{len(easy_urls)} Crawling {easy_url}") 48 | crawl_site(easy_url, base_url) 49 | 50 | 51 | def filter_block(tag) -> bool: 52 | if tag.name == "article": 53 | if tag.has_attr("class") and tag.has_attr("itemprop"): 54 | if "sectbody" in tag["class"] and "articleBody" in tag["itemprop"]: 55 | return True 56 | return False 57 | 58 | 59 | def filter_tags(tag) -> bool: 60 | if tag.name in ["p", "h2", "h3", "h6", "ul"]: 61 | return True 62 | return False 63 | 64 | 65 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 66 | article_tag = soup.find_all(filter_block) 67 | if len(article_tag) > 1: 68 | print("Unaccounted case occured. More than one article found.") 69 | return 70 | elif len(article_tag) == 0: 71 | print("Unaccounted case occured. No article found.") 72 | return 73 | article_tag = article_tag[0] 74 | 75 | content = article_tag.find_all(filter_tags) 76 | result = BeautifulSoup("", "html.parser") 77 | for tag in content: 78 | if "──────────────────" in tag.get_text(): 79 | continue 80 | result.append(tag) 81 | return result 82 | 83 | 84 | base_url = "https://taz.de/" 85 | def main(): 86 | crawling(base_url) 87 | utl.parse_soups(base_url, parser) 88 | 89 | 90 | if __name__ == '__main__': 91 | main() 92 | -------------------------------------------------------------------------------- /results/hand_aligned/694897703651441117120531916393726470322389557179.normal: -------------------------------------------------------------------------------- 1 | Für die 19. Legislaturperiode ist Jürgen Dusel von der Bundesregierung als Beauftragter der Bundesregierung für die Belange von Menschen mit Behinderungen bestellt worden. 2 | Für die 19. Legislaturperiode ist Jürgen Dusel von der Bundesregierung als Beauftragter der Bundesregierung für die Belange von Menschen mit Behinderungen bestellt worden. 3 | Der Jurist war zuvor Beauftragter der Landesregierung für die Belange der Menschen mit Behinderungen in Brandenburg. 4 | Der Jurist war zuvor Beauftragter der Landesregierung für die Belange der Menschen mit Behinderungen in Brandenburg. 5 | Seine Amtszeit steht unter dem Motto „Demokratie braucht Inklusion“. 6 | Seine Amtszeit steht unter dem Motto „Demokratie braucht Inklusion“. 7 | geboren am 14.2.1965 in Würzburg, verheiratet, zwei erwachsene Kinder Schwerbehindert mit einem Grad der Behinderung ( GdB ) von 100 (von Geburt an stark sehbehindert) Ausbildung und beruflicher Werdegang 1985 Abitur 1992 8 | geboren am 14.2.1965 in Würzburg, verheiratet, zwei erwachsene Kinder Schwerbehindert mit einem Grad der Behinderung ( GdB ) von 100 (von Geburt an stark sehbehindert) Ausbildung und beruflicher Werdegang 1985 Abitur 1992 9 | geboren am 14.2.1965 in Würzburg, verheiratet, zwei erwachsene Kinder Schwerbehindert mit einem Grad der Behinderung ( GdB ) von 100 (von Geburt an stark sehbehindert) Ausbildung und beruflicher Werdegang 1985 Abitur 1992 10 | geboren am 14.2.1965 in Würzburg, verheiratet, zwei erwachsene Kinder Schwerbehindert mit einem Grad der Behinderung ( GdB ) von 100 (von Geburt an stark sehbehindert) Ausbildung und beruflicher Werdegang 1985 Abitur 1992 11 | geboren am 14.2.1965 in Würzburg, verheiratet, zwei erwachsene Kinder Schwerbehindert mit einem Grad der Behinderung ( GdB ) von 100 (von Geburt an stark sehbehindert) Ausbildung und beruflicher Werdegang 1985 Abitur 1992 12 | Erstes juristisches Staatsexamen an der Universität Heidelberg 1995 Zweites juristisches Staatsexamen beim Oberlandesgericht Stuttgart 1996 13 | Jurist bei der Hauptfürsorgestelle des Landes Mecklenburg-Vorpommern 1998 14 | Dezernatsleiter Heimaufsicht / überörtliche Betreuungsbehörde beim Landesamt für Soziales und Versorgung des Landes Brandenburg ( LASV ) 2002 15 | Leiter des Integrationsamtes im Landesamt für Soziales und Versorgung des Landes Brandenburg 2007 stellvertretender Leiter der Abteilung 3 (Aufsicht, Soziales und Forensische Psychiatrie, Integrationsamt) im Landesamt für Soziales und Versorgung des Landes Brandenburg, weiterhin Leiter des Integrationsamtes des Landes Brandenburg 16 | Leiter des Dezernates Aufsicht und Unterbringung nach dem Brandenburgischen Psychisch-Kranken-Gesetz ( BbgPsychKG ) 17 | Beauftragter der Landesregierung für die Belange behinderter Menschen in Brandenburg 2015 erneute Berufung zum Beauftragten der Landesregierung Brandenburg für die Belange der Menschen mit Behinderungen 18 | Beauftragter der Landesregierung für die Belange behinderter Menschen in Brandenburg 2015 erneute Berufung zum Beauftragten der Landesregierung Brandenburg für die Belange der Menschen mit Behinderungen 19 | 2018 Berufung zum Beauftragten der Bundesregierung für die Belange von Menschen mit Behinderungen 20 | -------------------------------------------------------------------------------- /example.py: -------------------------------------------------------------------------------- 1 | # %% 2 | import re 3 | import spacy 4 | import matching.utilities as util 5 | nlp = spacy.load("de_core_news_lg") 6 | 7 | 8 | def prep_text(text): 9 | text = text.replace('\n', ' ') 10 | text = re.sub('\s+', ' ', text) 11 | sents = [str(sent) for sent in nlp(text).sents] 12 | return sents 13 | 14 | 15 | def read_articles(article_list: list[tuple[str, str]], sentence_split: bool = True) -> list[list[list[str], list[str]]]: 16 | """ 17 | Takes a list of tuples with (path_to_simple_article, path_to_everyday_language_article) reads the articles' 18 | contents, performs some additional sentence splitting and returns the texts. 19 | 20 | Args: 21 | article_list (list[tuple[str,str]]): list of tuples in the form of (easy_article, everyday_article) 22 | 23 | Returns: 24 | list[list[list[str], list[str]]]: list of article pairs, where the entry for each article pair consists either 25 | of a list of sentences (if sentence_split==True) or a string of text. 26 | """ 27 | articles = [] 28 | for simple_path, everyday_path in article_list: 29 | with open(simple_path, "r", encoding="utf-8") as fs, open(everyday_path, "r", encoding="utf-8") as fe: 30 | 31 | if sentence_split: 32 | articles.append([prep_text(fs.read()), prep_text(fe.read())]) 33 | else: 34 | articles.append([fs.read(), fe.read()]) 35 | 36 | return articles 37 | 38 | # STEP 1 - get the paths to the article pairs that we want 39 | # get_article_pairs() always returns a list of tuples in the following form: 40 | # (easy_article, everyday_language_article) 41 | 42 | # only get articles from the source "taz" 43 | taz_articles = util.get_article_pairs(source="taz") 44 | print(f"Loaded {len(taz_articles)} article pairs from the source 'taz'.") 45 | 46 | # only get articles from the sources "brandeins" and "apotheken-umschau" 47 | bra_apo = util.get_article_pairs(source=["brandeins", "apotheken-umschau"]) 48 | print(f"Loaded {len(bra_apo)} article pairs from the sources 'brandeins' and 'apotheken-umschau'.") 49 | 50 | # only get article pairs where the simple form is in "Einfache Sprache" 51 | # (currently that's only articles from the apotheken-umschau) 52 | # could also be "LS" for "Leichte Sprache" 53 | einfache_sprache_articles = util.get_article_pairs(type="ES") 54 | print(f"Loaded {len(einfache_sprache_articles)} article pairs in 'Einfache Sprache'.\n") 55 | 56 | # STEP 2 - use the function read_articles() to get either sentence pairs (if sentence_split==True) 57 | taz_text = read_articles(taz_articles) 58 | print(f"Loaded {sum(len(entry[0]) for entry in taz_text)} sentences in simple language and " 59 | f"{sum(len(entry[1]) for entry in taz_text)} sentences in everyday language for all articles of the 'taz'\n") 60 | 61 | # or the entire article in one string (if sentence_split==False) 62 | einfache_sprache_text = read_articles(einfache_sprache_articles, sentence_split=False) 63 | print(f"Loaded the text for the {len(einfache_sprache_text)} articles in 'Einfache Sprache'") 64 | print(f"See as example in 'Einfache Sprache':\n\n{einfache_sprache_text[0][0][:300]}(...)\n\nand the corresponding " 65 | f"article in everyday language:\n\n{einfache_sprache_text[0][1][:300]}(...)") 66 | -------------------------------------------------------------------------------- /results/hand_aligned/103027005391201069626605686484360780126817618940.normal: -------------------------------------------------------------------------------- 1 | Sehr geehrter Herr X, ich werfe Ihnen vor, am 28.11.2015 um 23:00 Uhr in Frankfurt am Main, Kaiserstraße 76 (Kaisersack) folgende Ordnungswidrigkeit begangen zu haben: 2 | Sehr geehrter Herr X, ich werfe Ihnen vor, am 28.11.2015 um 23:00 Uhr in Frankfurt am Main, Kaiserstraße 76 (Kaisersack) folgende Ordnungswidrigkeit begangen zu haben: 3 | Sehr geehrter Herr X, ich werfe Ihnen vor, am 28.11.2015 um 23:00 Uhr in Frankfurt am Main, Kaiserstraße 76 (Kaisersack) folgende Ordnungswidrigkeit begangen zu haben: 4 | Sie trugen einen schwarzen Kapuzenpullover mit der Aufschrift „ACAB“. 5 | Sie trugen einen schwarzen Kapuzenpullover mit der Aufschrift „ACAB“. 6 | „ACAB“ stellt allgemein bekannt eine Abkürzung für die Parole „All Cops are Bastards“ dar und dient dazu, die Polizei in der Öffentlichkeit zu verunglimpfen. 7 | „ACAB“ stellt allgemein bekannt eine Abkürzung für die Parole „All Cops are Bastards“ dar und dient dazu, die Polizei in der Öffentlichkeit zu verunglimpfen. 8 | Dies stellt eine grob ungehörige Handlung dar, die geeignet ist, die Allgemeinheit zu belästigen oder zu gefährden und die öffentliche Ordnung zu beeinträchtigen. 9 | Dies stellt eine grob ungehörige Handlung dar, die geeignet ist, die Allgemeinheit zu belästigen oder zu gefährden und die öffentliche Ordnung zu beeinträchtigen. 10 | Dies stellt eine grob ungehörige Handlung dar, die geeignet ist, die Allgemeinheit zu belästigen oder zu gefährden und die öffentliche Ordnung zu beeinträchtigen. 11 | Dies stellt eine grob ungehörige Handlung dar, die geeignet ist, die Allgemeinheit zu belästigen oder zu gefährden und die öffentliche Ordnung zu beeinträchtigen. 12 | § 118 OWiG. (…) 13 | Nach § 55 des Gesetzes über Ordnungswidrigkeiten (OWiG) haben Sie Gelegenheit, zu dem Vorwurf Stellung zu nehmen. 14 | Nach § 55 des Gesetzes über Ordnungswidrigkeiten (OWiG) haben Sie Gelegenheit, zu dem Vorwurf Stellung zu nehmen. 15 | Es steht Ihnen frei, zur Sache auszusagen. 16 | Sie sind aber in jedem Fall – auch wenn Sie die Ordnungswidrigkeit nicht begangen haben – verpflichtet, unrichtige oder unvollständige Angaben zu Ihrer Person im Anhörungsbogen (…) zu berichtigen oder zu vervollständigen. 17 | Sie sind aber in jedem Fall – auch wenn Sie die Ordnungswidrigkeit nicht begangen haben – verpflichtet, unrichtige oder unvollständige Angaben zu Ihrer Person im Anhörungsbogen (…) zu berichtigen oder zu vervollständigen. 18 | Die Verletzung dieser Pflicht ist nach § 111 OWiG mit einer Geldbuße bedroht. 19 | (…) Sofern Sie sich nicht zu dem Vorwurf äußern, kann ohne weitere Anhörung ein Bußgeldbescheid gegen Sie erlassen werden. 20 | (…) Sofern Sie sich nicht zu dem Vorwurf äußern, kann ohne weitere Anhörung ein Bußgeldbescheid gegen Sie erlassen werden. 21 | Falls Sie sich äußern, werde ich aufgrund Ihrer Angaben entscheiden, ob das Verfahren eingestellt oder ohne weitere Antwort ein Bußgeldbescheid erlassen wird. 22 | Falls Sie sich äußern, werde ich aufgrund Ihrer Angaben entscheiden, ob das Verfahren eingestellt oder ohne weitere Antwort ein Bußgeldbescheid erlassen wird. 23 | Falls Sie sich äußern, werde ich aufgrund Ihrer Angaben entscheiden, ob das Verfahren eingestellt oder ohne weitere Antwort ein Bußgeldbescheid erlassen wird. 24 | Mit freundlichen Grüßen (…) 25 | -------------------------------------------------------------------------------- /results/hand_aligned/1270222740731371270056425202196282573193760097957.normal: -------------------------------------------------------------------------------- 1 | In Penig ist ein mutmaßlicher Drogendealer auf der Flucht vor der Polizei in die Zwickauer Mulde gesprungen. 2 | In Penig ist ein mutmaßlicher Drogendealer auf der Flucht vor der Polizei in die Zwickauer Mulde gesprungen. 3 | Ein Polizist, der ihn festhalten wollte, landete ebenfalls im Wasser - beide mussten wegen Unterkühlungen ins Krankenhaus gebracht werden, teilte die Polizei mit. 4 | Der Vorfall ereignete am frühen Sonntagmorgen. 5 | Als die Polizisten eintrafen, rannten drei Personen weg. 6 | Ein 19-Jähriger konnte gestellt werden. 7 | In seinem Rucksack fanden sich nicht nur knapp 4.000 Euro Bargeld in szenetypischer Stückelung, sondern auch rund zehn Gramm Kokain, etwa 150 Gramm Cannabis, eine Schreckschusspistole sowie 36 Aufkleber des Corona-Impfstoffes "Moderna", die üblicherweise als Nachweis der erfolgten Impfung in Impfausweise geklebt werden. 8 | In seinem Rucksack fanden sich nicht nur knapp 4.000 Euro Bargeld in szenetypischer Stückelung, sondern auch rund zehn Gramm Kokain, etwa 150 Gramm Cannabis, eine Schreckschusspistole sowie 36 Aufkleber des Corona-Impfstoffes "Moderna", die üblicherweise als Nachweis der erfolgten Impfung in Impfausweise geklebt werden. 9 | In seinem Rucksack fanden sich nicht nur knapp 4.000 Euro Bargeld in szenetypischer Stückelung, sondern auch rund zehn Gramm Kokain, etwa 150 Gramm Cannabis, eine Schreckschusspistole sowie 36 Aufkleber des Corona-Impfstoffes "Moderna", die üblicherweise als Nachweis der erfolgten Impfung in Impfausweise geklebt werden. 10 | In seinem Rucksack fanden sich nicht nur knapp 4.000 Euro Bargeld in szenetypischer Stückelung, sondern auch rund zehn Gramm Kokain, etwa 150 Gramm Cannabis, eine Schreckschusspistole sowie 36 Aufkleber des Corona-Impfstoffes "Moderna", die üblicherweise als Nachweis der erfolgten Impfung in Impfausweise geklebt werden. 11 | In seinem Rucksack fanden sich nicht nur knapp 4.000 Euro Bargeld in szenetypischer Stückelung, sondern auch rund zehn Gramm Kokain, etwa 150 Gramm Cannabis, eine Schreckschusspistole sowie 36 Aufkleber des Corona-Impfstoffes "Moderna", die üblicherweise als Nachweis der erfolgten Impfung in Impfausweise geklebt werden. 12 | Noch während die polizeilichen Maßnahmen andauerten, riss sich der Tatverdächtige plötzlich los und versuchte - zum Zwecke der Flucht - in die Zwickauer Mulde zu springen. 13 | Noch während die polizeilichen Maßnahmen andauerten, riss sich der Tatverdächtige plötzlich los und versuchte - zum Zwecke der Flucht - in die Zwickauer Mulde zu springen. 14 | Noch während die polizeilichen Maßnahmen andauerten, riss sich der Tatverdächtige plötzlich los und versuchte - zum Zwecke der Flucht - in die Zwickauer Mulde zu springen. 15 | Noch während die polizeilichen Maßnahmen andauerten, riss sich der Tatverdächtige plötzlich los und versuchte - zum Zwecke der Flucht - in die Zwickauer Mulde zu springen. 16 | Ein 38 Jahre alter Polizeiobermeister fasste den jungen Mann trotz heftiger Gegenwehr und hielt ihn im Wasser fest, sodass er ein Abtreiben des Tatverdächtigen in der Strömung verhindern konnte, hieß es. 17 | Ein 38 Jahre alter Polizeiobermeister fasste den jungen Mann trotz heftiger Gegenwehr und hielt ihn im Wasser fest, sodass er ein Abtreiben des Tatverdächtigen in der Strömung verhindern konnte, hieß es. 18 | Der Tatverdächtige wurde vorläufig festgenommen. 19 | -------------------------------------------------------------------------------- /results/hand_aligned/422816068473478794180512408164030269794434115383.normal: -------------------------------------------------------------------------------- 1 | Sehr geehrter Herr X, wir danken Ihnen für Ihre Kritik an unserem Kundenservice. 2 | Sehr geehrter Herr X, wir danken Ihnen für Ihre Kritik an unserem Kundenservice. 3 | Umso mehr bedauern wir es, dass es uns in Ihrem Fall nicht gelungen ist, den Service zu bieten, den Sie zu Recht von uns erwarten. 4 | Umso mehr bedauern wir es, dass es uns in Ihrem Fall nicht gelungen ist, den Service zu bieten, den Sie zu Recht von uns erwarten. 5 | Wir möchten uns dafür entschuldigen, dass wir in Ihrem Fall unserem Anspruch nach kompetenter Beratung und zügiger Bearbeitung ­Ihres Kundenwunsches nicht gerecht geworden sind. 6 | Wir möchten uns dafür entschuldigen, dass wir in Ihrem Fall unserem Anspruch nach kompetenter Beratung und zügiger Bearbeitung ­Ihres Kundenwunsches nicht gerecht geworden sind. 7 | Auf der einen Seite ist es richtig, dass die Aufstellung der Allianz in Deutschland keine persönlichen Telefonansprechpartner mehr vorsieht. 8 | Auf der einen Seite ist es richtig, dass die Aufstellung der Allianz in Deutschland keine persönlichen Telefonansprechpartner mehr vorsieht. 9 | Auf der einen Seite ist es richtig, dass die Aufstellung der Allianz in Deutschland keine persönlichen Telefonansprechpartner mehr vorsieht. 10 | Auf der anderen Seite sind aber mehrere Mitarbeiter einer Gruppe unabhängig voneinander in der Lage, bestimmte Vorgänge zu bearbeiten. 11 | Das hat den Vorteil, dass zu Zeiten, in denen außergewöhnlich viele Kunden anrufen, das Anrufvolumen besser ausgeglichen und standortunabhängig bearbeitet werden kann. 12 | Das hat den Vorteil, dass zu Zeiten, in denen außergewöhnlich viele Kunden anrufen, das Anrufvolumen besser ausgeglichen und standortunabhängig bearbeitet werden kann. 13 | Das hat den Vorteil, dass zu Zeiten, in denen außergewöhnlich viele Kunden anrufen, das Anrufvolumen besser ausgeglichen und standortunabhängig bearbeitet werden kann. 14 | Zudem steht Ihnen der Telefonservice Montag bis Freitag in der Zeit von 8 bis 20 Uhr zur Verfügung. 15 | Zudem steht Ihnen der Telefonservice Montag bis Freitag in der Zeit von 8 bis 20 Uhr zur Verfügung. 16 | Zudem steht Ihnen der Telefonservice Montag bis Freitag in der Zeit von 8 bis 20 Uhr zur Verfügung. 17 | Eine Beratung bezüglich der Neuanlage Ihrer Versicherungsleistung ist für den Innendienst der Allianz nicht vorgesehen. 18 | Eine Beratung bezüglich der Neuanlage Ihrer Versicherungsleistung ist für den Innendienst der Allianz nicht vorgesehen. 19 | Dafür steht Ihnen unser umfangreiches Netzwerk unserer Allianz-Agenturen und -Vertretungen vor Ort zur Verfügung. 20 | Dafür steht Ihnen unser umfangreiches Netzwerk unserer Allianz-Agenturen und -Vertretungen vor Ort zur Verfügung. 21 | Sie können Ihre Fragen zu bestehenden Verträgen und Auskünfte unter Angabe der Vertragsnummer gern an unsere Zentralanschrift senden. 22 | Sie können Ihre Fragen zu bestehenden Verträgen und Auskünfte unter Angabe der Vertragsnummer gern an unsere Zentralanschrift senden. 23 | Sie können Ihre Fragen zu bestehenden Verträgen und Auskünfte unter Angabe der Vertragsnummer gern an unsere Zentralanschrift senden. 24 | (…) Es würde uns freuen, wenn unsere Erläuterungen Ihre Unklarheiten beseitigt und zu einem besseren Verständnis der Sachlage beigetragen haben. 25 | (…) Es würde uns freuen, wenn unsere Erläuterungen Ihre Unklarheiten beseitigt und zu einem besseren Verständnis der Sachlage beigetragen haben. 26 | -------------------------------------------------------------------------------- /results/hand_aligned/12145784068410340450964079224044857090477598333.normal: -------------------------------------------------------------------------------- 1 | Diese Corona-Regeln gelten ab 24. November in Sachsen-Anhalt. 2 | In Sachsen-Anhalt gelten seit dem 24. November erneut neue Corona-Regeln. 3 | Sachsen-Anhalts Landesverordnung sieht grundsätzlich das 2G-Zugangsmodell für Innenräume vor. 4 | Sachsen-Anhalts Landesverordnung sieht grundsätzlich das 2G-Zugangsmodell für Innenräume vor. 5 | Sachsen-Anhalts Landesverordnung sieht grundsätzlich das 2G-Zugangsmodell für Innenräume vor. 6 | Sachsen-Anhalts Landesverordnung sieht grundsätzlich das 2G-Zugangsmodell für Innenräume vor. 7 | Das deckt nahezu alle Freizeit-, Dienstleistungs- und Kultureinrichtungen ab, von B wie Busrundfahrt bis V wie Veranstaltungen. 8 | Das deckt nahezu alle Freizeit-, Dienstleistungs- und Kultureinrichtungen ab, von B wie Busrundfahrt bis V wie Veranstaltungen. 9 | Für Veranstaltungen ab 50 Personen gilt die Regel ebenfalls. 10 | Für Veranstaltungen ab 50 Personen gilt die Regel ebenfalls. 11 | Trotz 2G gelten aber Maskenpflicht und Abstandsgebot. 12 | Trotz 2G gelten aber Maskenpflicht und Abstandsgebot. 13 | In Diskotheken, Clubs und bei Tanzveranstaltungen wird verpflichtend 2G+ eingeführt. 14 | In Diskotheken, Clubs und bei Tanzveranstaltungen wird verpflichtend 2G+ eingeführt. 15 | In Diskotheken, Clubs und bei Tanzveranstaltungen wird verpflichtend 2G+ eingeführt. 16 | Die Weihnachtsmärkte sollen weiterhin stattfinden können, müssen aber ein 3G-Konzept umsetzen, wie Gesundheitsministerin Petra Grimm-Benne (SPD) sagte. 17 | Für Hütten mit Innenbereich gelten die Vorgaben für die Gastronomie und Freizeit. 18 | Die Regelung gilt auch für Nagelstudios, Massage- und Fußpflegepraxen, Piercing- und Tattoo-Studios sowie für medizinisch notwendige Behandlungen durch Physiotherapeuten, Ergotherapeuten, Logopäden oder Medizinische Fußpfleger. 19 | Die Regelung gilt auch für Nagelstudios, Massage- und Fußpflegepraxen, Piercing- und Tattoo-Studios sowie für medizinisch notwendige Behandlungen durch Physiotherapeuten, Ergotherapeuten, Logopäden oder Medizinische Fußpfleger. 20 | Die Regelung gilt auch für Nagelstudios, Massage- und Fußpflegepraxen, Piercing- und Tattoo-Studios sowie für medizinisch notwendige Behandlungen durch Physiotherapeuten, Ergotherapeuten, Logopäden oder Medizinische Fußpfleger. 21 | Wo es möglich ist, sollen Arbeitnehmer von zuhause aus arbeiten. 22 | Wo es möglich ist, sollen Arbeitnehmer von zuhause aus arbeiten. 23 | Für diejenigen, die am klassischen Arbeitsplatz tätig sind, gilt 3G. Sie müssen nachweisen, dass sie geimpft, genesen oder getestet sind. 24 | Trotz der extrem hohen Corona-Infektionszahlen unter Kindern und Jugendlichen bleiben die Schulen in Sachsen-Anhalt geöffnet. 25 | Trotz der extrem hohen Corona-Infektionszahlen unter Kindern und Jugendlichen bleiben die Schulen in Sachsen-Anhalt geöffnet. 26 | Allerdings können Eltern ab dem 25. November ihre Kinder auf Antrag zu Hause lassen, wenn diese beispielsweise eine Vorerkrankung haben oder in einem Haushalt mit vorerkerankten Personen leben. 27 | Das heißt: Die Präsenzpflicht ist an dieser Stelle aufgehoben. 28 | Das heißt: Die Präsenzpflicht ist an dieser Stelle aufgehoben. 29 | Schülerinnen und Schüler erhalten dann Aufgaben für zu Hause. 30 | Die Weihnachtsferien werden fünf Tage früher beginnen, am 17. Dezember. 31 | Die Weihnachtsferien werden fünf Tage früher beginnen, am 17. Dezember. 32 | Ab kommendem Montag, den 29. November, gilt eine tägliche Testpflicht an Schulen. 33 | -------------------------------------------------------------------------------- /results/evaluated/1168954048300446306414406216796101146571520611767.results: -------------------------------------------------------------------------------- 1 | { 2 | "Dass sie uns ihr Geld geben.": { 3 | "\"Falsche Polizisten\" gehen echten Polizisten ins Netz.": false, 4 | "Sie hatten sich bei der Frau Anfang vergangener Woche zunächst telefonisch als Polizeibeamte ausgegeben, die ihr Vermögen \"in Sicherheit bringen\" wollten.": true 5 | }, 6 | "Die Polizei aus der Stadt Saalfeld ermittelt gegen 3 Betrüger.": { 7 | "Drei \"falschen Polizisten\" ist die Polizei in Saalfeld auf die Schliche gekommen.": true, 8 | "\"Falsche Polizisten\" gehen echten Polizisten ins Netz.": false 9 | }, 10 | "Gegen den Chef von den 3 Männern hat das Amts-Gericht von der Stadt Gera einen Haft-Befehl gemacht.": { 11 | "Von angeblichen Polizisten sollte der Dienstausweis gefordert werden.": false, 12 | "Gegen einen 45-Jährigen aus Bayern hat das Amtsgericht Gera nun Haftbefehl erlassen, wie die Polizei am Mittwoch mitteilte.": true 13 | }, 14 | "Sie haben eine ältere Frau aus der Stadt Rudolstadt angerufen.": { 15 | "Sie hatten sich bei der Frau Anfang vergangener Woche zunächst telefonisch als Polizeibeamte ausgegeben, die ihr Vermögen \"in Sicherheit bringen\" wollten.": true, 16 | "Sie sollen unter anderem einer 83 Jahre alten Seniorin aus Rudolstadt Bargeld und Schmuck im Gesamtwert von rund 10.000 Euro abgenommen haben.": true 17 | }, 18 | "• 40 Jahre • und 47 Jahre alt.": { 19 | "Sie sollen unter anderem einer 83 Jahre alten Seniorin aus Rudolstadt Bargeld und Schmuck im Gesamtwert von rund 10.000 Euro abgenommen haben.": false 20 | }, 21 | "Die Polizei aus der Stadt Saalfeld hat gesagt:": { 22 | "Die Polizei warnt immer wieder vor der Betrugsmasche.": true, 23 | "Drei \"falschen Polizisten\" ist die Polizei in Saalfeld auf die Schliche gekommen.": false, 24 | "Gegen einen 45-Jährigen aus Bayern hat das Amtsgericht Gera nun Haftbefehl erlassen, wie die Polizei am Mittwoch mitteilte.": false, 25 | "\"Die Polizei wird Sie niemals um Geldbeträge bitten\", heißt es auf einem Informationsportal der Landespolizei Thüringen .": false 26 | }, 27 | "Die Männer haben am Telefon gesagt: Wir sind von der Polizei.": { 28 | "Sie hatten sich bei der Frau Anfang vergangener Woche zunächst telefonisch als Polizeibeamte ausgegeben, die ihr Vermögen \"in Sicherheit bringen\" wollten.": true, 29 | "\"Die Polizei wird Sie niemals um Geldbeträge bitten\", heißt es auf einem Informationsportal der Landespolizei Thüringen .": false, 30 | "Die Polizei warnt immer wieder vor der Betrugsmasche.": false, 31 | "\"Falsche Polizisten\" gehen echten Polizisten ins Netz.": false 32 | }, 33 | "Jetzt ermittelt die Polizei gegen die 3 Männer.": { 34 | "\"Die Polizei wird Sie niemals um Geldbeträge bitten\", heißt es auf einem Informationsportal der Landespolizei Thüringen .": false, 35 | "Gegen die zwei anderen Verdächtigen werde weiter ermittelt, hieß es.": true, 36 | "Die Polizei warnt immer wieder vor der Betrugsmasche.": false, 37 | "Drei \"falschen Polizisten\" ist die Polizei in Saalfeld auf die Schliche gekommen.": true 38 | }, 39 | "Die Männer sind zwischen:": { 40 | "Drei \"falschen Polizisten\" ist die Polizei in Saalfeld auf die Schliche gekommen.": false 41 | }, 42 | "finished": true, 43 | "Die Polizei aus der Stadt Saalfeld hat gesagt: Die Männer sind zwischen:": { 44 | "Drei \"falschen Polizisten\" ist die Polizei in Saalfeld auf die Schliche gekommen.": false 45 | } 46 | } -------------------------------------------------------------------------------- /results/hand_aligned/1089719717458447841315399443142860678792782139349.simple: -------------------------------------------------------------------------------- 1 | Jedes Fahrzeug in Deutschland muss ein Kenn-Zeichen haben, damit es auf der Straße fahren darf. 2 | Ein Kenn-Zeichen ist ein Schild mit Zahlen und Buchstaben . 3 | Die Zulassungs-Stelle teilt Ihrem Fahrzeug das Kenn-Zeichen zu. 4 | Sie können sich dabei auch Buchstaben und Zahlen wünschen. 5 | Das schwere Wort dafür ist: Wunsch-Kenn-Zeichen . 6 | Bitte beachten Sie: Wir versuchen Ihre Wünsche beim Kenn-Zeichen zu beachten. 7 | Aber wir können nicht alle Wünsche erfüllen. 8 | Sie haben keinen Anspruch auf ein bestimmtes Kenn-Zeichen. 9 | Sie können Ihr Wunsch-Kenn-Zeichen online aussuchen. 10 | Online heißt: Sie können am Computer ein Kenn-Zeichen aussuchen. 11 | Wir reservieren dann Ihr Wunsch-Kenn-Zeichen für 180 Tage . 12 | 3. Wenn Sie Ihr Kenn-Zeichen bei uns reserviert haben, dann können Sie sich ein Schild für Ihr Kenn-Zeichen kaufen. 13 | Das Schild können Sie nicht bei uns kaufen. 14 | Das Schild für das Kenn-Zeichen bekommen Sie nur bei Schilder-Herstellern. 15 | Wichtig: Sie können das Schild nur mit einer Reservierungs-Bestätigung kaufen. 16 | Achtung: Wenn Ihr Kenn-Zeichen noch nicht zugelassen ist, dürfen Sie nur innerhalb vom Zulassungs-Bezirk Köln (K) zu uns fahren. 17 | Oder aus diesen Zulassungs-Bezirken: Erft-Kreis (BM), Rhein-Sieg-Kreis (SU), Rheinisch Bergischer Kreis (GL), Leverkusen (LEV) Kreis Mettmann (ME) und Kreis Neuss (NE). 18 | Sie müssen die Fahrten ohne zugelassenes Kenn-Zeichen anmelden bei Ihrer Kraft-Fahrzeug-Haft-Pflicht-Versicherung. 19 | Von Ihrer Versicherung bekommen Sie eine Bestätigungs-Nummer. 20 | Die Abkürzung dafür ist: eVB-Nummer. 21 | Die eVB-Nummer ist wichtig. 22 | Zum Beispiel: Wenn die Polizei Sie kontrolliert. 23 | Dann müssen Sie der Polizei die eVB-Nummer sagen. 24 | Damit die Polizei prüfen kann: 25 | Ob Sie mit dem Kenn-Zeichen ohne Stempel fahren dürfen. 26 | Für andere Fahrten dürfen Sie Kenn-Zeichen ohne Stempel nicht benutzen! 27 | Für Ihr Kenn-Zeichen können Sie selbst Buchstaben und Zahlen aussuchen. 28 | Wichtig: Kenn-Zeichen für Autos müssen 2 bis 6 Zeichen haben. 29 | Der Buchstabe K für Köln wird dabei nicht mitgezählt. 30 | Kenn-Zeichen für Motor-Räder müssen 2 bis 5 Zeichen haben. 31 | Manche Kenn-Zeichen sind in Deutschland verboten. 32 | Verboten sind Kenn-Zeichen mit den Buchstaben: HJ, KZ, NS, SA, SS, ZZ und der einzelne Buchstabe Z . 33 | Zum Beispiel: K-Z 1. 34 | Die Kenn-Zeichen mit den Buchstaben TX sind nur für Taxis . 35 | Zum Beispiel: K-TX 1. Diese Kenn-Zeichen dürfen Sie nicht benutzen . 36 | Wie viel kostet ein Wunsch-Kenn-Zeichen? 37 | Ein Wunsch-Kenn-Zeichen kostet 10,20 Euro . 38 | Wenn Sie das Kenn-Zeichen im Internet oder am Telefon reservieren, dann müssen Sie zusätzlich 2,60 Euro bezahlen. 39 | Das heißt: Sie müssen dann insgesamt 12,80 Euro bezahlen. 40 | Sie müssen beim Zulassen direkt bezahlen. 41 | Das heißt: Sie bezahlen in der Zulassungs-Stelle oder im Kunden-Zentrum Innenstadt. 42 | Sie können mit Bar-Geld bezahlen. 43 | Das heißt: Sie können mit Geld-Scheinen und Münzen bezahlen. 44 | Oder Sie können auch mit Ihrer EC-Karte bezahlen. 45 | Eine EC-Karte ist eine Karte aus Plastik. 46 | Aber Sie müssen weitere Gebühren für das Kenn-Zeichen bezahlen: 47 | Wenn Sie das Kenn-Zeichen für ein anderes Fahrzeug brauchen. 48 | Wichtig: Sie müssen keine weiteren Gebühren für das Kenn-Zeichen bezahlen: 49 | Wenn Sie das Kenn-Zeichen noch einmal brauchen für das selbe Fahrzeug mit dem selben Halter oder der selben Halterin . 50 | -------------------------------------------------------------------------------- /crawler/stadt-koeln.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3.10 2 | import crawler.utilities as utl 3 | import re 4 | from bs4 import BeautifulSoup 5 | 6 | 7 | def crawl_site(easy_url, base_url): 8 | easy_soup = utl.read_soup(easy_url) 9 | 10 | # find the a tag containing said string 11 | easy_url_tag = easy_soup.find( 12 | name="a", 13 | string=re.compile("Diese Seite in Alltags-Sprache lesen", flags=re.I) 14 | ) 15 | # convert the tag class to BeautifulSoup class 16 | easy_url_soup = BeautifulSoup(str(easy_url_tag), "html.parser") 17 | 18 | # get the url from this 19 | normal_urls = utl.get_urls_from_soup( 20 | easy_url_soup, 21 | base_url 22 | ) 23 | 24 | try: 25 | normal_url = normal_urls[0] 26 | normal_soup = utl.read_soup(normal_url) 27 | 28 | utl.save_parallel_soup(normal_soup, normal_url, 29 | easy_soup, easy_url) 30 | except IndexError as e: 31 | utl.log_missing_url(easy_url) 32 | 33 | 34 | def filter_urls(urls, base_url): 35 | urls = utl.filter_urls(urls, base_url) 36 | # remove download links of docs 37 | urls = [url for url in urls if ( 38 | "index.php?menuid=" not in url) and ("/ls/" in url)] 39 | return urls 40 | 41 | 42 | def crawling(base_url): 43 | home_url_easy = "https://www.stadt-koeln.de/leben-in-koeln/soziales/informationen-leichter-sprache" 44 | 45 | # get urls 46 | easy_soup = utl.read_soup(home_url_easy) 47 | easy_urls = utl.get_urls_from_soup( 48 | easy_soup, 49 | base_url, 50 | {"name": "section", 51 | "attrs": {"class": "trefferliste_flex trefferliste"}} 52 | ) 53 | 54 | for i, easy_url in enumerate(easy_urls): 55 | print(f"[{i+1:0>2}/{len(easy_urls)}] Crawling {easy_url}") 56 | crawl_site(easy_url, base_url) 57 | 58 | 59 | def filter_block(tag) -> bool: 60 | if tag.name == "main": 61 | if tag.has_attr("id") and tag.has_attr("role"): 62 | if "inhalt" in tag["id"] and "main" in tag["role"]: 63 | return True 64 | return False 65 | 66 | 67 | def filter_tags(tag) -> bool: 68 | if tag.parent.name == "div" and tag.parent.has_attr("class"): 69 | if "accordionhead" in tag.parent["class"] or "accordionpanel" in tag.parent["class"] or "tinyblock" in tag.parent["class"]: 70 | if tag.name in ["p", "h2", "h3", "ul"]: 71 | return True 72 | return False 73 | 74 | 75 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 76 | article_tag = soup.find_all(filter_block) 77 | if len(article_tag) > 1: 78 | print("Unaccounted case occured. More than one article found.") 79 | return 80 | elif len(article_tag) == 0: 81 | print("Unaccounted case occured. No article found.") 82 | return 83 | article_tag = article_tag[0] 84 | 85 | if article_tag.find(name="section", id="produktbeschreibung"): 86 | article_tag = article_tag.find(name="section", id="produktbeschreibung") 87 | 88 | content = article_tag.find_all(filter_tags) 89 | result = BeautifulSoup("", "html.parser") 90 | for tag in content: 91 | result.append(tag) 92 | return result 93 | 94 | 95 | base_url = "https://www.stadt-koeln.de/" 96 | def main(): 97 | crawling(base_url) 98 | utl.parse_soups(base_url, parser) 99 | 100 | 101 | if __name__ == '__main__': 102 | main() 103 | -------------------------------------------------------------------------------- /results/evaluated/371628922758169262575096602366511519517113767868.results: -------------------------------------------------------------------------------- 1 | { 2 | "Chemnitz bekommt ein neues Forschungs-Zentrum.": { 3 | "Chemnitz wird ein Standort für das geplante Nationale Wasserstoffzentrum.": true, 4 | "Einer davon ist Chemnitz.": true, 5 | "Chemnitz bekommt Standort für Nationales Wasserstoffzentrum.": true, 6 | "Das Wasserstoffzentrum HIC aus Chemnitz ist ein Bündnis von 25 Partnern aus Wirtschaft, Forschung, Politik und Verbänden.": true 7 | }, 8 | "In jeder Stadt soll zu verschiedenen Sachen mit Wasser-Stoff geforscht werden.": { 9 | "Es soll Unternehmen und Startups bundesweit die Möglichkeit bieten, ihre Innovationen für Straßen- und Schienenfahrzeuge auszuprobieren, zu zertifizieren und für den Weltmarkt in Serienreife zu bringen.": true, 10 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": true 11 | }, 12 | "Wie gute Wasser-Stoff-Autos gebaut werden können.": { 13 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": true 14 | }, 15 | "Solche Forschungs-Zentren soll es in 4 Städten in Deutschland geben.": { 16 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": false, 17 | "Wie das Bundesverkehrsministerium am Donnerstag mitteilte, soll das Forschungszentrum an vier Standorten in Deutschland entstehen.": true, 18 | "Zudem erhielten Pfeffenhausen in Bayern, Duisburg in Nordrhein-Westfalen sowie ein Konsortium in Norddeutschland den Zuschlag.": true 19 | }, 20 | "Chemnitz ist 1 Stadt davon.": { 21 | "Einer davon ist Chemnitz.": true, 22 | "Chemnitz erhält davon laut Bundesverkehrsministerium bis zu 60 Millionen Euro.": false 23 | }, 24 | "Und wie gute Züge gebaut werden können:": { 25 | "Man sieht, dass es nicht nur eine fachliche, sondern eben auch eine politische Entscheidung ist.": false 26 | }, 27 | "Die mit Wasser-Stoff fahren.": { 28 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": false 29 | }, 30 | "In der Stadt Chemnitz soll ein neues Forschungs-Zentrum gebaut werden.": { 31 | "Einer davon ist Chemnitz.": true, 32 | "Das moderne Forschungszentrum soll laut Plänen der Stadt in Nachbarschaft zur Technischen Universität, dem Fraunhofer-Institut und dem Technologie-Campus entstehen.": true, 33 | "Das Wasserstoffzentrum HIC aus Chemnitz ist ein Bündnis von 25 Partnern aus Wirtschaft, Forschung, Politik und Verbänden.": false, 34 | "In Chemnitz soll einer von vier neuen Standorten für das geplante Nationale Wasserstoffzentrum entstehen.": true, 35 | "Chemnitz wird ein Standort für das geplante Nationale Wasserstoffzentrum.": true 36 | }, 37 | "Dort wollen die Menschen zum Beispiel heraus-finden:": { 38 | "Es soll Unternehmen und Startups bundesweit die Möglichkeit bieten, ihre Innovationen für Straßen- und Schienenfahrzeuge auszuprobieren, zu zertifizieren und für den Weltmarkt in Serienreife zu bringen.": false, 39 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": false 40 | }, 41 | "Dort wollen die Menschen mehr über Wasser-Stoff heraus-finden.": { 42 | "Es soll Unternehmen und Startups bundesweit die Möglichkeit bieten, ihre Innovationen für Straßen- und Schienenfahrzeuge auszuprobieren, zu zertifizieren und für den Weltmarkt in Serienreife zu bringen.": false, 43 | "Sie sollen in verschiedenen Bereichen die Nutzung der Wasserstofftechnologie vorantreiben.": false 44 | }, 45 | "Das Bundes-Verkehrs-Ministerium hat gesagt:": { 46 | "Wie das Bundesverkehrsministerium am Donnerstag mitteilte, soll das Forschungszentrum an vier Standorten in Deutschland entstehen.": true 47 | }, 48 | "finished": true 49 | } -------------------------------------------------------------------------------- /results/hand_aligned/1198604918992406683172831677269385315831614358005.normal: -------------------------------------------------------------------------------- 1 | Tausende Oberlausitzer unterzeichnen Petitionen gegen Corona-Proteste. 2 | Die Polizei stellt sich auf eine wachsende Zahl von Kritikern der Corona-Maßnahmen ein, die am Montagabend in der Oberlausitz auf die Straßen gehen. 3 | Die Polizei stellt sich auf eine wachsende Zahl von Kritikern der Corona-Maßnahmen ein, die am Montagabend in der Oberlausitz auf die Straßen gehen. 4 | Die Polizei stellt sich auf eine wachsende Zahl von Kritikern der Corona-Maßnahmen ein, die am Montagabend in der Oberlausitz auf die Straßen gehen. 5 | Er rät den Protestteilnehmern, sich von Extremisten und Gewalt zu distanzieren: "Machen Sie keine gemeinsame Sache mit Personen, die Ihre Versammlung möglicherweise für sich und andere Ziele missbrauchen wollen. 6 | Er rät den Protestteilnehmern, sich von Extremisten und Gewalt zu distanzieren: "Machen Sie keine gemeinsame Sache mit Personen, die Ihre Versammlung möglicherweise für sich und andere Ziele missbrauchen wollen. 7 | Die Bürgermeisterin von Ebersbach-Neugersdorf will solche Protestzeichen nicht länger hinnehmen. 8 | Deshalb hat sie am Freitag ein Schild an der Rathaustür anbringen lassen. 9 | "Hier zünden wir die Kerzen an", steht in großen grünen Buchstaben darauf. 10 | "Hier zünden wir die Kerzen an", steht in großen grünen Buchstaben darauf. 11 | "Hier zünden wir die Kerzen an", steht in großen grünen Buchstaben darauf. 12 | Das Schild wirbt um Wertschätzung für alle, die im Gesundheitswesen arbeiten und erinnert an die Menschen, die im Zusammenhang mit einer Corona-Infektion gestorben sind. 13 | Das Schild wirbt um Wertschätzung für alle, die im Gesundheitswesen arbeiten und erinnert an die Menschen, die im Zusammenhang mit einer Corona-Infektion gestorben sind. 14 | Das Schild wirbt um Wertschätzung für alle, die im Gesundheitswesen arbeiten und erinnert an die Menschen, die im Zusammenhang mit einer Corona-Infektion gestorben sind. 15 | Das Schild wirbt um Wertschätzung für alle, die im Gesundheitswesen arbeiten und erinnert an die Menschen, die im Zusammenhang mit einer Corona-Infektion gestorben sind. 16 | In beiden Städten haben sich in den vergangenen Tagen Bürgerbündnisse gebildet. 17 | In beiden Städten haben sich in den vergangenen Tagen Bürgerbündnisse gebildet. 18 | Darin heißt es: "Wir wollen es nicht weiter hinnehmen, dass die Protestler die Krise durch Egoismus befeuern. 19 | Darin heißt es: "Wir wollen es nicht weiter hinnehmen, dass die Protestler die Krise durch Egoismus befeuern. 20 | Darin heißt es: "Wir wollen es nicht weiter hinnehmen, dass die Protestler die Krise durch Egoismus befeuern. 21 | Das wolle das Bündnis "Bautzen gemeinsam" deutlich machen. 22 | Neben ihm gehören 80 Bautzener Bürgerinnen und Bürger zu den Erstunterzeichnern - darunter Ärzte, Unternehmer, Pfarrer, Vereins- und Verbandsvorsitzende und die Bautzener Band Silbermond. 23 | Neben ihm gehören 80 Bautzener Bürgerinnen und Bürger zu den Erstunterzeichnern - darunter Ärzte, Unternehmer, Pfarrer, Vereins- und Verbandsvorsitzende und die Bautzener Band Silbermond. 24 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 25 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 26 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 27 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 28 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 29 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 30 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 31 | Ein ähnlich lautender Brief aus Zittau hat bereits mehr als 1.300 Unterstützerinnen und Unterstützer. 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # A New Aligned Simple German Corpus 2 | This repository contains the data and code for a Simple German Corpus. 3 | 4 | If you use the corpus in your research, please cite our paper 5 | 6 | ``` 7 | @inproceedings{toborek-etal-2023-new, 8 | title = "A New Aligned Simple {G}erman Corpus", 9 | author = "Toborek, Vanessa and 10 | Busch, Moritz and 11 | Bo{\ss}ert, Malte and 12 | Bauckhage, Christian and 13 | Welke, Pascal", 14 | booktitle = "Proceedings of the 61st Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers)", 15 | month = jul, 16 | year = "2023", 17 | address = "Toronto, Canada", 18 | publisher = "Association for Computational Linguistics", 19 | url = "https://aclanthology.org/2023.acl-long.638", 20 | pages = "11393--11412", 21 | } 22 | 23 | ``` 24 | 25 | ## About 26 | The German language knows two versions of plain language: Einfache Sprache (Simple German) and [Leichte Sprache](https://leichte-sprache.de/), the latter being controlled by the _Netzwerk Leichte Sprache_. 27 | 28 | Currently, there are only few works that build a parallel corpus between Simple German and German and the corresponding data is often not available. Such a (potentially expanded) corpus may be used to implement automatic machine learning translation from German to Simple German. While the data might currently not be sufficient, the goal of this work is to lay the foundations for such a corpus by: 29 | 30 | 1. Scraping websites with parallel versions for German and Simple German 31 | 2. Implementing various algorithms presented in the literature to form a corpus that contains aligned, "translated" sentences. 32 | 33 | 34 | ## Installation 35 | 36 | We recommend creating a virtual python environment, e.g. using anaconda 37 | 38 | ``` 39 | conda create -n simple-german python=3.10 40 | ``` 41 | 42 | and installing the required packages 43 | 44 | ``` 45 | conda activate simple-german 46 | pip install -r requirements 47 | python -m spacy download de_core_news_lg 48 | ``` 49 | 50 | Before using the repo, you **must** edit the file `defaultvalues.py`. 51 | Within it, you need to define the variable `repository_location`, the absolute path to the folder of this repository. E.g. `dataset=/home/bob/Simple-German-Corpus`. 52 | You can also change any of the other variables. 53 | 54 | You may also use the `environment.yml` for a direct conda installation 55 | ``` 56 | conda env create --file environments.yml 57 | ``` 58 | 59 | ## Usage 60 | 61 | Please note, that downloading is throttled by a 5 second delay to reduce network traffic. 62 | You can change this in `crawler/utilities.py` 63 | 64 | 65 | To run the whole code, simply setup the environment and run `python main.py`. 66 | This calls both `main_crawler.py` as well as `main_matching.py`. 67 | The crawler downloads the archived websites and parses all contents. 68 | The matcher calculates all corresponding match distances. 69 | **Beware that the latter might take a lot of time, even though it is parallelized**. 70 | The end result can be found in the `results/` folder. 71 | 72 | 73 | To run other code, i.e. `evaluate.py` in the `evaluation` folder, use `python -m evaluation.evaluate`. 74 | For manual alignment `python -m evaluation.align_by_hand` might come in handy. 75 | *(This tool is by no means fully fleshed out)* 76 | 77 | 78 | ## Tools/Libraries 79 | The code was written using python version 3.10.4.\ 80 | All python packages needed to run the code can be found in the "requirements" file and installed using 81 | `pip install -r requirements`. 82 | We recommend using a virtualenv. 83 | - [spacy.io](https://spacy.io/) python library for natural language processing supporting a plethora of languages, including [German](https://spacy.io/models/de) 84 | - [BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/) python library for html parsing / crawling. 85 | -------------------------------------------------------------------------------- /results/evaluated/1378026920237907604315406650571985024018928497727.results: -------------------------------------------------------------------------------- 1 | { 2 | "Der Kultus-Minister von Sachsen hat das Corona-Virus.": { 3 | "Sachsens Kultusminister Christian Piwarz (CDU) hat sich mit dem Coronavirus infiziert.": true, 4 | "Der Kultusminister befindet sich demnach bereits seit Montag in häuslicher Quarantäne.": false, 5 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": true 6 | }, 7 | "Er hat Symptome wie bei einer Erkältung.": { 8 | "Seine Ehefrau hat Covid-19 mit leichten Symptomen.": false, 9 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": false 10 | }, 11 | "Deshalb hat er einen Corona-Test gemacht.": { 12 | "Seinen Dienstaufgaben gehe er, soweit möglich, von Zuhause aus nach.": false 13 | }, 14 | "Er ist seit Montag in Quarantäne .": { 15 | "Der Kultusminister befindet sich demnach bereits seit Montag in häuslicher Quarantäne.": true, 16 | "Auswärtige Termine würden für die Dauer der Quarantäne abgesagt.": false 17 | }, 18 | "Aber manche Sachen für seine Arbeit kann er auch von zu Hause weiter machen.": { 19 | "Seinen Dienstaufgaben gehe er, soweit möglich, von Zuhause aus nach.": true, 20 | "Auswärtige Termine würden für die Dauer der Quarantäne abgesagt.": true 21 | }, 22 | "Aber er ist trotzdem von den Corona-Virus krank geworden.": { 23 | "Seinen Dienstaufgaben gehe er, soweit möglich, von Zuhause aus nach.": false 24 | }, 25 | "Der Kultus-Minister von Sachsen heißt Christian Piwarz.": { 26 | "Sachsens Kultusminister Christian Piwarz (CDU) hat sich mit dem Coronavirus infiziert.": true, 27 | "Sachsens Kultusminister Piwarz an Corona erkrankt.": false, 28 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": true 29 | }, 30 | "Und der Corona-Test hat gezeigt:": { 31 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": false 32 | }, 33 | "Christian Piwarz ist gegen das Corona-Virus ge-impft .": { 34 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": false, 35 | "Piwarz ist laut Ministerium vollständig geimpft und zeigt Erkältungssymptome.": true, 36 | "Sachsens Kultusminister Christian Piwarz (CDU) hat sich mit dem Coronavirus infiziert.": false 37 | }, 38 | "Christian Piwarz hat das Corona-Virus .": { 39 | "Piwarz ist laut Ministerium vollständig geimpft und zeigt Erkältungssymptome.": false, 40 | "Sachsens Kultusminister Christian Piwarz (CDU) hat sich mit dem Coronavirus infiziert.": true 41 | }, 42 | "Er hat sich krank gefühlt.": { 43 | "Nachdem der Corona-Verdacht bei Sachsens Ministerpräsident Michael Kretschmer noch nicht ausgeräumt ist, gibt es nun ein zweites Mitglied im sächsischen Kabinett, bei dem sich dieser Verdacht schon bestätigt hat: bei Kultusminister Christian Piwarz.": false 44 | }, 45 | "Das bedeutet: Er ist bei sich zu Hause und darf nicht aus dem Haus gehen.": { 46 | "Seinen Dienstaufgaben gehe er, soweit möglich, von Zuhause aus nach.": false 47 | }, 48 | "finished": true 49 | } -------------------------------------------------------------------------------- /crawler/apotheken-umschau.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3.10 2 | import requests 3 | from bs4 import BeautifulSoup 4 | import crawler.utilities as utl 5 | 6 | 7 | def filter_soup(tag): 8 | """ 9 | Filters all tags for the ones containing "hier" in the attribute title, having either the value "au" or 10 | "dira" in "data-portal-ident" and linking to a valid site of the apotheken-umschau.de (disregarding external links 11 | to other sources). 12 | """ 13 | return tag.name == "a" and "hier" in tag.attrs.get("title", "False") \ 14 | and any([tag.attrs.get("data-portal-ident", False) == "au", 15 | tag.attrs.get("data-portal-ident", False) == "dira"]) \ 16 | and utl.session.get(base_url[:-1] + tag.attrs.get("href", "DOESNT_EXIST").split(".")[0], 17 | headers=utl.HEADERS).status_code == 200 18 | 19 | 20 | def crawl_site(easy_url, base_url): 21 | easy_soup = utl.read_soup(easy_url) 22 | 23 | # the final paragraph contains a link titled "hier" to the corresponding article in German 24 | # find the a tag containing said string 25 | if len(easy_soup.find_parents(name="a", attrs={"title": "hier"})) > 1: 26 | print("Error! More than one parent was found for the links.") 27 | return 28 | 29 | easy_url_tags = easy_soup.find_all(filter_soup) 30 | 31 | normals_urls = [utl.parse_url(tag["href"], base_url) 32 | for tag in easy_url_tags if "einfache-sprache" not in tag["href"]] 33 | 34 | if len(normals_urls): 35 | # few simple German articles link to German articles or general websites outside apotheken-umschau.de 36 | if "apotheken-umschau" not in normals_urls[0]: 37 | return 38 | normal_soup = utl.read_soup(normals_urls[0]) 39 | 40 | utl.save_parallel_soup(normal_soup, normals_urls[0], 41 | easy_soup, easy_url) 42 | elif len(normals_urls) > 1: 43 | print(f"Multiple matching URLs {normals_urls}") 44 | else: 45 | utl.log_missing_url(easy_url) 46 | 47 | 48 | def crawling(base_url): 49 | home_url_easy = "https://www.apotheken-umschau.de/einfache-sprache/" 50 | 51 | # get urls 52 | easy_soup = utl.read_soup(home_url_easy) 53 | 54 | easy_url_tags = easy_soup.find_all( 55 | name="a", 56 | href=lambda x: "einfache-sprache" in x 57 | ) 58 | easy_urls = list(set([utl.parse_url(tag["href"], base_url) 59 | for tag in easy_url_tags])) 60 | 61 | for i, easy_url in enumerate(easy_urls): 62 | print(f"[{i + 1:0>3}/{len(easy_urls)}] Crawling {easy_url}") 63 | crawl_site(easy_url, base_url) 64 | 65 | 66 | def filter_tags(tag) -> bool: 67 | if tag.name == "p": 68 | if tag.has_attr("class"): 69 | if "text" in tag["class"]: 70 | return True 71 | if tag.name == "ul": 72 | if tag.parent.name == "div": 73 | if tag.parent.has_attr("class"): 74 | if "copy" in tag.parent["class"]: 75 | return True 76 | return False 77 | 78 | 79 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 80 | article_tag = soup.find_all(name="div", class_="copy") 81 | if len(article_tag) > 1: 82 | print("Unaccounted case occurred. More than one article found.") 83 | return 84 | article_tag = article_tag[0] 85 | 86 | # get unwanted tags and remove them 87 | inverse_result = article_tag.find_all( 88 | lambda x: not filter_tags(x), recursive=False) 89 | for tag in inverse_result: 90 | tag.decompose() 91 | 92 | return article_tag 93 | 94 | 95 | base_url = "https://www.apotheken-umschau.de/" 96 | def main(): 97 | crawling(base_url) 98 | utl.parse_soups(base_url, parser) 99 | 100 | 101 | if __name__ == '__main__': 102 | main() 103 | -------------------------------------------------------------------------------- /crawler/lebenshilfe-main-taunus.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3.10 2 | import crawler.utilities as utl 3 | import re 4 | from bs4 import BeautifulSoup 5 | 6 | """ Lebenshilfe Main Taunus 7 | Ignore /dokument/ 8 | 9 | """ 10 | 11 | 12 | def crawl_site(easy_url, base_url): 13 | print(f"Crawling {easy_url}") 14 | easy_soup = utl.read_soup(easy_url) 15 | 16 | easy_soup_block = easy_soup.find( 17 | name="div", 18 | attrs={"class": "modul", 19 | "id": "mod_menue_top"} 20 | ) 21 | 22 | normal_urls = utl.get_urls_from_soup( 23 | easy_soup_block, 24 | base_url, 25 | filter_args={"name": "li"}, 26 | recursive_filter_args={"title": "Auf Alltags-Sprache umstellen"} 27 | ) 28 | 29 | try: 30 | normal_url = normal_urls[0] 31 | normal_soup = utl.read_soup(normal_url) 32 | utl.save_parallel_soup(normal_soup, normal_url, 33 | easy_soup, easy_url) 34 | except IndexError as e: 35 | utl.log_missing_url(easy_url) 36 | 37 | urls_sidemenu = utl.get_urls_from_soup( 38 | easy_soup, base_url, 39 | filter_args={ 40 | "name": "div", 41 | "attrs": {"id": "sidebar"}} 42 | ) 43 | urls_top_menu = utl.get_urls_from_soup( 44 | easy_soup, base_url, 45 | filter_args={ 46 | "name": "div", 47 | "attrs": {"class": "modul", "id": "mod_menue_top"}} 48 | ) 49 | urls_top_menu_ebene0 = utl.get_urls_from_soup( 50 | easy_soup, base_url, 51 | filter_args={ 52 | "name": "div", 53 | "attrs": {"class": "modul", "id": "mod_menue_ebene0"}} 54 | ) 55 | 56 | urls = urls_sidemenu + urls_top_menu + urls_top_menu_ebene0 57 | urls = filter_urls(urls, base_url) 58 | 59 | for url in urls: 60 | crawl_site(url, base_url) 61 | 62 | 63 | def filter_urls(urls, base_url): 64 | urls = utl.filter_urls(urls, base_url) 65 | # remove download links of docs 66 | urls = [url for url in urls if ( 67 | "index.php?menuid=" not in url) and ("/ls/" in url)] 68 | return urls 69 | 70 | 71 | def crawling(base_url): 72 | home_url_easy = "https://www.lebenshilfe-main-taunus.de/ls/" 73 | 74 | crawl_site(home_url_easy, base_url) 75 | 76 | 77 | def filter_block(tag) -> bool: 78 | if tag.name == "div": 79 | if tag.has_attr("class"): 80 | if "artikel_details" in tag["class"]: 81 | return True 82 | return False 83 | 84 | 85 | def filter_tags(tag) -> bool: 86 | if tag.parent.has_attr("class"): 87 | if "inhalt" in tag.parent["class"]: 88 | if tag.name == "p": 89 | return True 90 | elif tag.name == "ul": 91 | if "paragraph" in tag.parent["class"]: 92 | return True 93 | elif tag.name == "div": 94 | if tag.has_attr("class"): 95 | if "box_big" in tag["class"]: 96 | return True 97 | return False 98 | 99 | 100 | def parser(soup: BeautifulSoup) -> BeautifulSoup: 101 | article_tag = soup.find_all(filter_block) 102 | if len(article_tag) > 1: 103 | print("Unaccounted case occured. More than one article found.") 104 | return 105 | elif len(article_tag) == 0: 106 | print("Unaccounted case occured. No article found.") 107 | return 108 | article_tag = article_tag[0] 109 | 110 | content = article_tag.find_all(filter_tags) 111 | result = BeautifulSoup("", "html.parser") 112 | for tag in content: 113 | result.append(tag) 114 | return result 115 | 116 | 117 | base_url = "https://www.lebenshilfe-main-taunus.de/" 118 | def main(): 119 | crawling(base_url) 120 | utl.parse_soups(base_url, parser) 121 | 122 | 123 | if __name__ == '__main__': 124 | main() 125 | -------------------------------------------------------------------------------- /results/hand_aligned/714241570032886014003472875125051985454644795834.simple: -------------------------------------------------------------------------------- 1 | Wenn Sie einen Hund haben: 2 | Dann müssen Sie Hunde-Steuer bezahlen. 3 | Es ist Ihre Pflicht: Ihren Hund anzumelden. 4 | Wenn Sie sich einen Hund anschaffen: 5 | Dann müssen Sie den Hund innerhalb von 4 Wochen anmelden . 6 | Wenn Ihre Hündin schwanger ist und Babys bekommt : 7 | Dann dürfen die jungen Hunde 6 Monate alt werden. 8 | Nach den 6 Monaten müssen Sie die Hunde innerhalb von 4 Wochen anmelden. 9 | Das gilt zum Beispiel auch: wenn der Hund einem Verein gehört oder wenn es ein Wach-Hund bei einer Firma ist. 10 | Sie füllen das Formular zum Anmelden aus. 11 | Das können Sie im Internet tun. 12 | Das Formular ist in Alltags-Sprache . 13 | Wenn Sie beim Ausfüllen Hilfe brauchen, fragen Sie jemanden danach. 14 | Schicken Sie bitte das Formular mit der Post oder als Fax . 15 | An das Steuer-Amt . 16 | Wenn sich bei Ihnen etwas ändert: Dann müssen Sie uns das schreiben. 17 | Zum Beispiel: wenn Sie umziehen oder wenn Sie noch einen Hund bekommen Wenn Ihr Hund angemeldet ist: Dann schicken wir Ihnen eine Hunde-Marke mit der Post . 18 | Die Hunde-Marke muss der Hund draußen gut sichtbar tragen. 19 | Im Landes-Hunde-Gesetz steht: welche Hunde Sie auch beim Ordnungs-Amt anmelden müssen. 20 | Dazu gehören diese Hunde: die gefährlich sind von bestimmten Rassen zum Beispiel: Rottweiler die eine Schulter-Höhe von 40 Zentimetern haben, wenn sie ausgewachsen sind. 21 | Ausgewachsen heißt: wenn sie erwachsen sind und nicht mehr weiter wachsen. 22 | Was kostet die Hunde-Steuer? 23 | Die Hunde-Steuer kostet für jeden Hund: 156 Euro für ein Jahr. 24 | Zum Beispiel: Wenn Sie 2 Hunde haben: 25 | Dann müssen Sie 2 mal 156 Euro für jedes Jahr bezahlen. 26 | Ermäßigung von der Hunde-Steuer 27 | Wenn Sie laufende Hilfe zum Lebensunterhalt bekommen: 28 | Dann können Sie eine Ermäßigung beantragen. 29 | Das gilt auch: wenn Sie laufend Grund-Sicherung im Alter oder bei Erwerbs-Minderung bekommen. 30 | Das sind Hilfen nach dem 12. Buch aus dem Sozial-Gesetz-Buch. 31 | Wenn Sie das beantragen wollen: 32 | Dann brauchen wir von Ihnen: den Nachweis über Ihre Hilfe zum Lebens-Unterhalt den Nachweis über Ihre Grund-sicherung im Alter und bei Erwerbs-Minderung nach dem 2. Buch vom Sozial-Gesetz-Buch. 33 | Die Nachweise dürfen nicht älter als 2 Monate sein. 34 | Die Steuer wird dann für einen Hund von 156 Euro auf 60 Euro verbilligt. 35 | Zum Beispiel: Wenn Sie 2 Hunde haben: 36 | Dann müssen Sie für die 2 Hunde 216 Euro bezahlen. 37 | Wenn Sie Arbeitslosen-Geld 2 bekommen: Dann bekommen Sie keine Ermäßigung. 38 | Das Gesetz zum Arbeitslosen-Geld 2 steht im 2. Buch vom Sozial-Gesetz-Buch. 39 | Befreiung von der Hunde-Steuer 40 | Wenn Sie eine Schwer-Behinderung haben: 41 | Dann können Sie eine Befreiung beantragen. 42 | Befreiung heißt: Sie müssen keine Hunde-Steuer bezahlen. 43 | Die Befreiung von der Hunde-Steuer können Sie nur für einen Hund bekommen. 44 | Sie müssen nachweisen: 45 | In Ihrem Schwer-Behinderten-Ausweis muss dafür stehen: 100 Prozent Grad der Behinderung 46 | Der Hund darf nur für Sie da sein. 47 | Der Hund muss eine Ausbildung haben. 48 | Ihr Leben mit Behinderung soll durch den Hund besser werden. 49 | Wenn Sie das beantragen wollen: 50 | Dann brauchen wir von Ihnen: eine Kopie von Ihrem Schwer-Behinderten-Ausweis, von Vorder-Seite und von Rück-Seite, oder Eine Kopie vom Bescheid der Abteilung: Feststellungs-Verfahren nach dem Schwer-Behinderten-Recht. 51 | Wir brauchen auch: 52 | Den Nachweis über die Ausbildung und Prüfung vom Hund: als Führ-Hund für Blinde oder Begleit-Hund für Menschen mit anderer Behinderung. 53 | Ein Rettungs-Hund kann ebenfalls befreit sein. 54 | Der Rettungs-Hund muss dafür regelmäßig im Einsatz sein. 55 | Muss ich persönlich ins Amt kommen? 56 | Nein. 57 | Sie müssen nicht zu uns kommen. 58 | Sie können den Antrag: mit der Post schicken. oder im Internet schicken. 59 | Muss ich Gebühren bezahlen? 60 | Ja. 61 | Das Anmelden beim Ordnungs-Amt kostet 25 Euro . 62 | Manchmal müssen Sie mehr bezahlen . 63 | Zum Beispiel: Wenn Sie einen gefährlichen Hund haben. 64 | Oder einen Hund bestimmter Rassen . 65 | Die Rassen stehen im Landes-Hunde-Gesetz . 66 | -------------------------------------------------------------------------------- /results/hand_aligned/465744468303322396867281363215833281038418475539.normal: -------------------------------------------------------------------------------- 1 | Vom ersten Kontakt bis zum letzten Schreiben: Gesetzliche Regeln sorgen für einen fairen Umgang zwischen Arbeitgeber*innen und Arbeitnehmer*innen. 2 | Bewerbung 3 | In einer Stellenanzeige müssen Unternehmen diskriminierungsfrei zum Beispiel geschlechtsneutral suchen – also nicht ausdrücklich nach einer „Sekretärin“ oder einem „Mechatroniker“. 4 | In einer Stellenanzeige müssen Unternehmen diskriminierungsfrei zum Beispiel geschlechtsneutral suchen – also nicht ausdrücklich nach einer „Sekretärin“ oder einem „Mechatroniker“. 5 | Im Auswahlgespräch sind eine Menge Fragen verboten , die zu persönlich oder diskriminierend sein können – je nach den Umständen des Einzelfalls etwa nach einer Schwangerschaft, nach einer Partei- oder Gewerkschaftszugehörigkeit oder nach dem Kontostand. 6 | Im Auswahlgespräch sind eine Menge Fragen verboten , die zu persönlich oder diskriminierend sein können – je nach den Umständen des Einzelfalls etwa nach einer Schwangerschaft, nach einer Partei- oder Gewerkschaftszugehörigkeit oder nach dem Kontostand. 7 | Arbeitgeber*innen müssen grundsätzlich darauf hinweisen, wenn die Arbeit besonders schwer oder gefährlich ist. 8 | Arbeitsvertrag 9 | Ein Arbeits­vertrag muss zwar nicht schriftlich abgeschlossen werden, das wird aber empfohlen. 10 | Ein Arbeits­vertrag muss zwar nicht schriftlich abgeschlossen werden, das wird aber empfohlen. 11 | Gibt es keinen schriftlichen Arbeits­vertrag, müssen spätestens einen Monat nach Arbeits­beginn die wesentlichen Arbeits­bedingungen auf­geschrieben, unter­schrieben und den Arbeit­nehmer*innen ausgehändigt werden. 12 | Wann geht es los, wo arbeiten die Arbeit­nehmer*innen, was sind ihre Tätigkeiten, wie ist ihre Arbeits­zeit geregelt. 13 | Wann geht es los, wo arbeiten die Arbeit­nehmer*innen, was sind ihre Tätigkeiten, wie ist ihre Arbeits­zeit geregelt. 14 | Wann geht es los, wo arbeiten die Arbeit­nehmer*innen, was sind ihre Tätigkeiten, wie ist ihre Arbeits­zeit geregelt. 15 | Und natürlich: Wie hoch ist das Arbeitsentgelt und wie setzt es sich zusammen. 16 | Befristung 17 | Das bedeutet, dass die Stelle nach dem vereinbarten Zeitraum ausläuft. 18 | Bei Neueinstellungen ist das als erleichterte Befristung erlaubt - für maximal zwei Jahre. 19 | Auch junge Firmen, sogenannte Start-ups, dürfen in den ihren ersten vier Jahren die Verträge ihrer Arbeitnehmer*innen befristen. 20 | Zum Beispiel im Anschluss an eine Ausbildung, in einem zeitlich abgegrenzten Projekt oder als Vertretung dürfen Unternehmen zeitlich begrenzt beschäftigen. 21 | Zum Beispiel im Anschluss an eine Ausbildung, in einem zeitlich abgegrenzten Projekt oder als Vertretung dürfen Unternehmen zeitlich begrenzt beschäftigen. 22 | Zum Beispiel im Anschluss an eine Ausbildung, in einem zeitlich abgegrenzten Projekt oder als Vertretung dürfen Unternehmen zeitlich begrenzt beschäftigen. 23 | Kündigungsschutz 24 | Einfach rauswerfen geht nicht: 25 | So kann etwa eine betriebsbedingte Kündigung gerechtfertigt sein, wenn das gesamte Unternehmen oder die Abteilung keine Aufträge mehr hat – und es auch sonst im Betrieb keine passende Beschäftigung mehr gibt. 26 | Eine fristlose Kündigung kann bei groben Verstößen möglich sein: 27 | Dazu zählen etwa üble Beleidigungen, Gewalt, sexuelle Belästigung oder beharrliche Arbeitsverweigerung. 28 | Auszubildende haben einen besonderen Kündigungsschutz – ebenso wie Schwangere, Mütter bis vier Monate nach der Entbindung, Menschen mit einer Schwerbehinderung, freiwillig Wehrdienstleistende und Arbeitnehmer*innen in Eltern- oder Pflegezeit. 29 | Auszubildende haben einen besonderen Kündigungsschutz – ebenso wie Schwangere, Mütter bis vier Monate nach der Entbindung, Menschen mit einer Schwerbehinderung, freiwillig Wehrdienstleistende und Arbeitnehmer*innen in Eltern- oder Pflegezeit. 30 | Auszubildende haben einen besonderen Kündigungsschutz – ebenso wie Schwangere, Mütter bis vier Monate nach der Entbindung, Menschen mit einer Schwerbehinderung, freiwillig Wehrdienstleistende und Arbeitnehmer*innen in Eltern- oder Pflegezeit. 31 | Auszubildende haben einen besonderen Kündigungsschutz – ebenso wie Schwangere, Mütter bis vier Monate nach der Entbindung, Menschen mit einer Schwerbehinderung, freiwillig Wehrdienstleistende und Arbeitnehmer*innen in Eltern- oder Pflegezeit. 32 | Das Bundesministerium für Arbeit und Soziales hat einen Telefonservice. 33 | Montags bis donnerstags helfen Expert*innen von 8:00 bis 20:00 Uhr bei individuellen Problemen weiter: 030 221 911 004 34 | -------------------------------------------------------------------------------- /results/evaluated/1252371162140612720129059302974931870449751310750.results: -------------------------------------------------------------------------------- 1 | { 2 | "Ansprech-Partnerin: Anne Zillich / Leiterin Telefon: 0 61 96 / 7 74 69 – 194 E-Mail: anne.zillich@lhmtk.de Adresse: Villa Luce Hauptstraße 114 65760 Eschborn": { 3 | "Telefon: 0 61 96 / 4 46 60 Telefax: 0 61 96 / 4 46 00 E-Mail zentral: villaluce@lhmtk.de": true, 4 | "anne.zillich@lhmtk.de Adresse: Villa Luce Hauptstraße 114 65760 Eschborn": true, 5 | "Ihr Ansprechpartnerin: Anne Zillich / Leiterin Telefon: 0 61 96 / 7 74 69 – 194 E-Mail:": true 6 | }, 7 | "Das finden auch die Betreuerinnen und Betreuer in der Villa sehr wichtig.": { 8 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false, 9 | "Die denkmalgeschützte „Villa“ mit offenem Kamin, Wintergarten und großer Terrasse liegt stadtnah und ist umgeben von einem weitläufigen Park mit Sinnesgarten.": false 10 | }, 11 | "Viele Bewohnerinnen und Bewohner gehören in Eschborn einfach dazu.": { 12 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": true, 13 | "Wir pflegen Kontakte zu Vereinen, Kirchen und örtlichen Einrichtungen, aber auch zu Montgeron und Póvoa de Varzim, den Partnerstädten von Eschborn.": false, 14 | "Die Villa Luce in Eschborn wurde 1978 als unser erstes Wohnheim eröffnet und bietet 20 Menschen ein Zuhause.": false 15 | }, 16 | "Die Villa liegt am Stadtrand.": { 17 | "Die denkmalgeschützte „Villa“ mit offenem Kamin, Wintergarten und großer Terrasse liegt stadtnah und ist umgeben von einem weitläufigen Park mit Sinnesgarten.": true 18 | }, 19 | "Telefon: 0 61 96 / 44 66 0 Fax: 0 61 96 / 44 60 0 E-Mail für alle im Haus: villaluce@lhmtk.de": { 20 | "Telefon: 0 61 96 / 4 46 60 Telefax: 0 61 96 / 4 46 00 E-Mail zentral: villaluce@lhmtk.de": true 21 | }, 22 | "Sie gehen zum Beispiel in die Vereine oder in die Kirchen von Eschborn.": { 23 | "Wir pflegen Kontakte zu Vereinen, Kirchen und örtlichen Einrichtungen, aber auch zu Montgeron und Póvoa de Varzim, den Partnerstädten von Eschborn.": true, 24 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false 25 | }, 26 | "Oder man kann: Die Villa Luce gibt es seit 1978.": { 27 | "In der Villa Luce gibt es ein vielfältiges Angebot zur Freizeitgestaltung, zum Beispiel künstlerisches Gestalten im Kunstforum": false, 28 | "Die denkmalgeschützte „Villa“ mit offenem Kamin, Wintergarten und großer Terrasse liegt stadtnah und ist umgeben von einem weitläufigen Park mit Sinnesgarten.": false, 29 | "Die Villa Luce in Eschborn wurde 1978 als unser erstes Wohnheim eröffnet und bietet 20 Menschen ein Zuhause.": true 30 | }, 31 | "Das Wohnheim Villa Luce ist in Eschborn.": { 32 | "Die Villa Luce in Eschborn wurde 1978 als unser erstes Wohnheim eröffnet und bietet 20 Menschen ein Zuhause.": true 33 | }, 34 | "Und man kann in der Freizeit vieles unternehmen.": { 35 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": true 36 | }, 37 | "Sie unterstützen die Bewohnerinnen und Bewohner, damit sie viele Sachen auch ohne fremde Hilfe machen können.": { 38 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false 39 | }, 40 | "Viele Menschen leben schon lange Jahre in der Villa.": { 41 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false, 42 | "Die denkmalgeschützte „Villa“ mit offenem Kamin, Wintergarten und großer Terrasse liegt stadtnah und ist umgeben von einem weitläufigen Park mit Sinnesgarten.": false, 43 | "Die Villa Luce in Eschborn wurde 1978 als unser erstes Wohnheim eröffnet und bietet 20 Menschen ein Zuhause.": false 44 | }, 45 | "Andere arbeiten in einer Werkstatt für Menschen mit Behinderung.": { 46 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false 47 | }, 48 | "Hier wohnen 20 Menschen mit Behinderung.": { 49 | "Unsere Bewohnerinnen und Bewohner leben eigenständig, selbstbestimmt und familiär.": false 50 | }, 51 | "finished": true, 52 | "villaluce@lhmtk.de": { 53 | "villaluce@lhmtk.de": true 54 | }, 55 | "Ansprech-Partnerin: Anne Zillich / Leiterin Telefon: 0 61 96 / 7 74 69 – 194 E-Mail: anne.zillich@lhmtk.de Adresse:": { 56 | "Ihr Ansprechpartnerin: Anne Zillich / Leiterin Telefon: 0 61 96 / 7 74 69 – 194 E-Mail:": true 57 | }, 58 | "Villa Luce Hauptstraße 114 65760 Eschborn Telefon: 0 61 96 / 44 66 0 Fax: 0 61 96 / 44 60 0 E-Mail für alle im Haus:": { 59 | "Villa Luce Hauptstraße 114 65760 Eschborn Telefon: 0 61 96 / 4 46 60 Telefax: 0 61 96 / 4 46 00 E-Mail zentral:": true 60 | } 61 | } -------------------------------------------------------------------------------- /results/evaluated/1148667907801841053855270002338470427459368167588.results: -------------------------------------------------------------------------------- 1 | { 2 | "Darüber ärgert sich der Hausärzte-Verband.": { 3 | "Ausreichend": false, 4 | "Beck verlangte, zunächst die Empfehlung der Ständigen Impfkommission abzuwarten.": false, 5 | "Seit Bekanntgabe der Möglichkeit von Covid-19-Auffrischungsimpfungen haben sich bereits rund 1.000 Impfwillige in Thüringen angemeldet.": false, 6 | "Der Hausärzteverband kritisierte das \"Vorpreschen\" der Politik.": true 7 | }, 8 | "Die Politiker haben das aber einfach trotzdem bestimmt.": { 9 | "Vorstandsmitglied Armin Beck nannte es ärgerlich, dass die Politik wiederholt vorgeprescht sei.": true, 10 | "Rund 1000 Menschen hätten bereits über das Internet einen Termin in einer Impfstelle vereinbart, teilte ein Sprecher der Kassenärztlichen Vereinigung am Mittwoch auf Anfrage mit.": false, 11 | "Ausreichend": false 12 | }, 13 | "Aber nach einiger Zeit schützt die Impfung die Menschen nicht mehr so gut.": { 14 | "Ausreichend": false, 15 | "Voraussetzung ist, dass die letzte Impfung mindestens sechs Monate zurückliegt.": false, 16 | "Seit Dienstag sind Auffrischungsimpfungen für jene Menschen möglich, deren Impfschutz sechs Monate nach der zweiten Impfung allmählich nachlässt.": true 17 | }, 18 | "Dass einige Menschen in Thüringen schon die 3. Impfung bekommen können.": { 19 | "Dass in einigen Landkreisen bereits jetzt Drittimpfungen verabreicht würden, sorge für Verunsicherung.": true, 20 | "Ausreichend": false, 21 | "Voraussetzung ist, dass die letzte Impfung mindestens sechs Monate zurückliegt.": false 22 | }, 23 | "Deshalb haben die Politiker vom Bundes-Land Thüringen bestimmt:": { 24 | "Ausreichend": false, 25 | "Seit Bekanntgabe der Möglichkeit von Covid-19-Auffrischungsimpfungen haben sich bereits rund 1.000 Impfwillige in Thüringen angemeldet.": false, 26 | "Trotzdem bieten Thüringen und andere Bundesländer bereits jetzt Drittimpfungen an.": false 27 | }, 28 | "Der Hausärzte-Verband von Deutschland ärgert sich über das Bundes-Land Thüringen.": { 29 | "Der Hausärzteverband kritisierte das \"Vorpreschen\" der Politik.": true, 30 | "Der bundesdeutsche Hausärzteverband hat die bereits begonnenen Corona-Auffrischungsimpfungen kritisiert.": true 31 | }, 32 | "Die Politiker von Thüringen sollten erst ab-warten, ob die STIKO die 3. Impfung empfiehlt .": { 33 | "Ausreichend": false, 34 | "Beck verlangte, zunächst die Empfehlung der Ständigen Impfkommission abzuwarten.": true, 35 | "Voraussetzung ist, dass die letzte Impfung mindestens sechs Monate zurückliegt.": false 36 | }, 37 | "Deshalb ist es nicht in Ordnung:": { 38 | "Ausreichend": false, 39 | "Vorstandsmitglied Armin Beck nannte es ärgerlich, dass die Politik wiederholt vorgeprescht sei.": false 40 | }, 41 | "Viele Menschen in Deutschland wurden schon 2-mal gegen das Corona-Virus ge-impft .": { 42 | "Dass in einigen Landkreisen bereits jetzt Drittimpfungen verabreicht würden, sorge für Verunsicherung.": false, 43 | "Seit Dienstag sind Auffrischungsimpfungen für jene Menschen möglich, deren Impfschutz sechs Monate nach der zweiten Impfung allmählich nachlässt.": false 44 | }, 45 | "Die STIKO hat aber bisher noch nichts dazu gesagt.": { 46 | "Die Stiko selbst nannte noch kein konkretes Datum für ihre Stellungnahme, wann und für wen sie eine dritte Corona-Impfung empfiehlt.": true 47 | }, 48 | "Der Hausärzte-Verband von Deutschland findet das aber nicht gut.": { 49 | "Ausreichend": false, 50 | "Der Hausärzteverband kritisierte das \"Vorpreschen\" der Politik.": true, 51 | "Der bundesdeutsche Hausärzteverband hat die bereits begonnenen Corona-Auffrischungsimpfungen kritisiert.": true 52 | }, 53 | "Er hat gesagt:": { 54 | "Der bundesdeutsche Hausärzteverband hat die bereits begonnenen Corona-Auffrischungsimpfungen kritisiert.": false 55 | }, 56 | "Deshalb sind sie für einige Zeit gut gegen das Corona-Virus geschützt.": { 57 | "Ausreichend": false 58 | }, 59 | "Armin Beck ist 1 Mitglied im Vorstand vom Hausärzte-Verband.": { 60 | "Der Hausärzteverband kritisierte das \"Vorpreschen\" der Politik.": false, 61 | "Vorstandsmitglied Armin Beck nannte es ärgerlich, dass die Politik wiederholt vorgeprescht sei.": true 62 | }, 63 | "In einigen Land-Kreisen können die Menschen sich zum 3. Mal impfen lassen.": { 64 | "Ausreichend": false, 65 | "Zudem können sich Impfwillige auch in den Arztpraxen nochmals spritzen lassen.": true, 66 | "Seit Dienstag sind Auffrischungsimpfungen für jene Menschen möglich, deren Impfschutz sechs Monate nach der zweiten Impfung allmählich nachlässt.": true 67 | }, 68 | "finished": true 69 | } -------------------------------------------------------------------------------- /results/evaluated/530380916999544090154893339813802103204117161359.results: -------------------------------------------------------------------------------- 1 | { 2 | "Die Polizisten dürfen zu manchen Sachen nicht ihre Meinung sagen.": { 3 | "Dabei geht es auch darum, den Ansehensschaden für die Landespolizei insgesamt und insbesondere für das Polizeirevier Saalekreis zu begrenzen und die uneingeschränkte Funktionsfähigkeit des Polizeireviers bei den derzeit besonders herausfordernden Aufgaben zu erhalten.": false, 4 | "Das Innenministerium von Sachsen-Anhalt hat die Freistellung des Polizisten bei MDR-Sachsen-Anhalt indirekt bestätigt.": false 5 | }, 6 | "Dabei hat er sich nicht an das Neutralitäts-Gebot gehalten.": { 7 | "Wie die Mitteldeutsche Zeitung schreibt, besteht der Verdacht, dass er gegen das Neutralitätsgebot der Polizei verstoßen hat.": true, 8 | "Ihm wird vorgeworfen, gegen das Neutralitätsgebot der Polizei verstoßen zu haben.": true 9 | }, 10 | "Der Leiter vom Polizei-Revier hat gezeigt:": { 11 | "Dabei geht es auch darum, den Ansehensschaden für die Landespolizei insgesamt und insbesondere für das Polizeirevier Saalekreis zu begrenzen und die uneingeschränkte Funktionsfähigkeit des Polizeireviers bei den derzeit besonders herausfordernden Aufgaben zu erhalten.": false, 12 | "Der Leiter des Reviers Saalekreis habe am Freitag in Merseburg Sympathien für eine Kundgebung von Gegnern der Pandemie-Regeln gezeigt.": true, 13 | "Nach Informationen der Mitteldeutschen Zeitung ist offenbar der Leiter des Polizeireviers Saalekreis von seinen Aufgaben entbunden worden.": true 14 | }, 15 | "Dort wurde jetzt der Leiter vom Polizei-Revier suspendiert .": { 16 | "Nach Informationen der Mitteldeutschen Zeitung ist offenbar der Leiter des Polizeireviers Saalekreis von seinen Aufgaben entbunden worden.": true, 17 | "Der Leiter des Reviers Saalekreis habe am Freitag in Merseburg Sympathien für eine Kundgebung von Gegnern der Pandemie-Regeln gezeigt.": false, 18 | "Dabei geht es auch darum, den Ansehensschaden für die Landespolizei insgesamt und insbesondere für das Polizeirevier Saalekreis zu begrenzen und die uneingeschränkte Funktionsfähigkeit des Polizeireviers bei den derzeit besonders herausfordernden Aufgaben zu erhalten.": false, 19 | "Hochrangiger Polizist wegen Sympathie für Corona-Demo suspendiert.": true 20 | }, 21 | "Die Regel heißt: Neutralitäts-Gebot.": { 22 | "Ihm wird vorgeworfen, gegen das Neutralitätsgebot der Polizei verstoßen zu haben.": true, 23 | "Aus dem Innenministerium heißt es dazu: \"Es ist aus zwingenden dienstlichen Gründen geboten gewesen, dem Beamten das vorläufige sofortige Verbot der Führung der Dienstgeschäfte auszusprechen.": false 24 | }, 25 | "Ein Polizist im Saalekreis darf seine Arbeit nicht mehr machen.": { 26 | "Der Leiter des Reviers Saalekreis habe am Freitag in Merseburg Sympathien für eine Kundgebung von Gegnern der Pandemie-Regeln gezeigt.": false, 27 | "Nach Informationen der Mitteldeutschen Zeitung ist offenbar der Leiter des Polizeireviers Saalekreis von seinen Aufgaben entbunden worden.": true, 28 | "Hochrangiger Polizist wegen Sympathie für Corona-Demo suspendiert.": true 29 | }, 30 | "Der Saalekreis gehört zu dem Bundes-Land Sachsen-Anhalt.": { 31 | "Der Leiter des Reviers Saalekreis habe am Freitag in Merseburg Sympathien für eine Kundgebung von Gegnern der Pandemie-Regeln gezeigt.": true, 32 | "Das Innenministerium von Sachsen-Anhalt hat die Freistellung des Polizisten bei MDR-Sachsen-Anhalt indirekt bestätigt.": false 33 | }, 34 | "Denn er hat sich nicht an eine Regel gehalten.": { 35 | "Wie die Mitteldeutsche Zeitung schreibt, besteht der Verdacht, dass er gegen das Neutralitätsgebot der Polizei verstoßen hat.": true 36 | }, 37 | "In der Stadt Merseburg gab es am Freitag einen Protest .": { 38 | "Der Leiter des Reviers Saalekreis habe am Freitag in Merseburg Sympathien für eine Kundgebung von Gegnern der Pandemie-Regeln gezeigt.": true 39 | }, 40 | "Das bedeutet zum Beispiel:": { 41 | "Aus dem Innenministerium heißt es dazu: \"Es ist aus zwingenden dienstlichen Gründen geboten gewesen, dem Beamten das vorläufige sofortige Verbot der Führung der Dienstgeschäfte auszusprechen.": false 42 | }, 43 | "Das bedeutet: Er darf seine Arbeit erst einmal nicht mehr machen.": { 44 | "Wie die Mitteldeutsche Zeitung schreibt, besteht der Verdacht, dass er gegen das Neutralitätsgebot der Polizei verstoßen hat.": false 45 | }, 46 | "finished": true, 47 | "Er findet den Protest gut.": { 48 | "Ihm wird vorgeworfen, gegen das Neutralitätsgebot der Polizei verstoßen zu haben.": true 49 | }, 50 | "Der Protest war gegen die Corona-Regeln .": { 51 | "Hochrangiger Polizist wegen Sympathie für Corona-Demo suspendiert.": true 52 | } 53 | } -------------------------------------------------------------------------------- /evaluation/eval_matches_auto.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | import sys 4 | 5 | import numpy as np 6 | 7 | import warnings 8 | 9 | from defaultvalues import * 10 | 11 | warnings.simplefilter(action='ignore', category=FutureWarning) 12 | warnings.simplefilter(action='ignore', category=RuntimeWarning) 13 | 14 | import pandas as pd 15 | 16 | stat_file = pd.DataFrame(columns=["Similarity measure", "Alignment strategy", "sd-Threshold", "Avg. number of matches", 17 | "Avg. similarity of matches"]) 18 | 19 | for root, dirs, files in os.walk(matching_location): 20 | for file in files: 21 | if not file.endswith(".matches"): 22 | continue 23 | 24 | with open(os.path.join(root, file), 'r') as fp: 25 | try: 26 | match_data = json.load(fp) 27 | except json.decoder.JSONDecodeError: 28 | continue 29 | 30 | sim, matching, thres = file.split('--')[-3:] 31 | thres = thres.replace('.matches', '') 32 | 33 | stat_file = stat_file.append({"Similarity measure": sim, 34 | "Alignment strategy": matching, 35 | "sd-Threshold": thres, 36 | "Avg. number of matches": len(match_data), 37 | "Avg. similarity of matches": np.mean( 38 | [x[2] for x in match_data]) if match_data else 0.0}, 39 | ignore_index=True) 40 | 41 | sim_stat = stat_file.groupby(["Similarity measure"], as_index=False).agg(AvgMatches=("Avg. number of matches", "mean"), 42 | AvgSim=("Avg. similarity of matches", "mean"), 43 | TotalMatches=( 44 | "Avg. number of matches", "sum")).round( 45 | {"AvgMatches": 1, 46 | "AvgSim": 2, 47 | "TotalMatches": 0}) 48 | 49 | print(sim_stat) 50 | 51 | match_stat = stat_file.groupby(["Alignment strategy"], as_index=False).agg(AvgMatches=("Avg. number of matches", "mean"), 52 | AvgSim=("Avg. similarity of matches", "mean"), 53 | TotalMatches=( 54 | "Avg. number of matches", "sum")).round( 55 | {"AvgMatches": 1, 56 | "AvgSim": 2, 57 | "TotalMatches": 0}) 58 | thres_stat = stat_file.groupby(["sd-Threshold"], as_index=False).agg(AvgMatches=("Avg. number of matches", "mean"), 59 | AvgSim=("Avg. similarity of matches", "mean"), 60 | TotalMatches=( 61 | "Avg. number of matches", "sum")).round( 62 | {"AvgMatches": 1, 63 | "AvgSim": 2, 64 | "TotalMatches": 0}) 65 | 66 | full_stat = stat_file.groupby(["Similarity measure", "Alignment strategy", "sd-Threshold"], as_index=False).agg(AvgMatches=("Avg. number of matches", "mean"), 67 | AvgSim=("Avg. similarity of matches", "mean"), 68 | TotalMatches=( 69 | "Avg. number of matches", "sum")).round( 70 | {"AvgMatches": 1, 71 | "AvgSim": 2, 72 | "TotalMatches": 0}) 73 | 74 | with open(f"{results_location}/latex_eval_matches_auto.txt", "w", encoding="utf-8") as fp: 75 | fp.write(sim_stat.to_latex(index=False, 76 | caption="Match statistics by similarity measure", 77 | label="tab:sim-stat")) 78 | fp.write('\n\n') 79 | fp.write(match_stat.to_latex(index=False, 80 | caption="Match statistics by alignment strategy", 81 | label="tab:align-stat")) 82 | fp.write('\n\n') 83 | fp.write(thres_stat.to_latex(index=False, 84 | caption="Match statistics by threshold value", 85 | label="tab:thres-stat")) 86 | fp.write('\n\n') 87 | fp.write(full_stat.to_latex(index=False, 88 | caption="Match statistics for full combinations of settings", 89 | label="tab:full-stat")) 90 | 91 | print(sim_stat) 92 | print(match_stat) 93 | print(thres_stat) 94 | print(full_stat) 95 | -------------------------------------------------------------------------------- /results/evaluated/877251095279704356768647070090256492394927380342.results: -------------------------------------------------------------------------------- 1 | { 2 | "In Sachsen gab es einen Brand-Anschlag auf ein Impf-Zentrum.": { 3 | "Auf das Impfzentrum im vogtländischen Eich ist am späten Dienstagabend ein Brandanschlag verübt worden.": true, 4 | "Laut Polizei gibt es keinen nennenswerten Schaden.": false, 5 | "Nach dem versuchten Brandanschlag auf das Impfzentrum im vogtländischen Eich hat das Polizeiliche Terrorismus- und Extremismus-Abwehrzentrum (PTAZ) die Ermittlungen übernommen.": true 6 | }, 7 | "Die Flaschen mit dem Benzin wurden dann an-gezündet.": { 8 | "Die Ermittler wandten sich am Donnerstag mit einem Zeugenaufruf an die Öffentlichkeit.": false, 9 | "Die Brandsätze zündeten nicht, weshalb kein Feuer ausbrach.": false 10 | }, 11 | "In Eich gibt es ein Impf-Zentrum .": { 12 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": true, 13 | "Auf das Impfzentrum im vogtländischen Eich ist am späten Dienstagabend ein Brandanschlag verübt worden.": true 14 | }, 15 | "Und es sind nicht viele Sachen kaputt gegangen.": { 16 | "Menschen wurden nicht verletzt.": true, 17 | "Laut Polizei gibt es keinen nennenswerten Schaden.": true 18 | }, 19 | "Am Dienstag-Abend gab es einen Brand-Anschlag auf das Impf-Zentrum.": { 20 | "Am Donnerstag hat das Landeskriminalamt die Ermittlungen übernommen.": false, 21 | "Auf das Impfzentrum im vogtländischen Eich ist am späten Dienstagabend ein Brandanschlag verübt worden.": true, 22 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": false 23 | }, 24 | "Bei dem Brand-Anschlag hat jemand mehrere Glas-Flaschen mit Benzin gefüllt.": { 25 | "LKA übernimmt Ermittlungen nach versuchtem Brandanschlag.": false, 26 | "Unbekannte hatten am Dienstagabend gegen ein Rolltor des Impfzentrums drei Bierflaschen mit einer brennbaren Flüssigkeit geworfen.": true 27 | }, 28 | "Die Menschen können sich dort wieder impfen lassen.": { 29 | "Wer Hinweise zu dem Anschlag geben könne, solle sich bei der Polizei Zwickau oder bei jeder anderen Polizeistelle melden, hieß es.": false, 30 | "Die Sicherheitsmaßnahmen an Impfzentren und an Schulen, an denen es ein Impfangebot gibt, seien verstärkt worden, sagte ein LKA-Sprecher.": false, 31 | "Menschen wurden nicht verletzt.": false 32 | }, 33 | "Dann wurden die brennenden Flaschen an die Tür vom Impf-Zentrum geworfen.": { 34 | "Menschen wurden nicht verletzt.": false, 35 | "Die Ermittler wandten sich am Donnerstag mit einem Zeugenaufruf an die Öffentlichkeit.": false, 36 | "Unbekannte hatten am Dienstagabend gegen ein Rolltor des Impfzentrums drei Bierflaschen mit einer brennbaren Flüssigkeit geworfen.": true, 37 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": false 38 | }, 39 | "Jetzt ist wieder etwas passiert:": { 40 | "Menschen wurden nicht verletzt.": false 41 | }, 42 | "Denn viele Mitarbeiter vom Impf-Zentrum konnten vielleicht verletzt werden.": { 43 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": false, 44 | "Menschen wurden nicht verletzt.": false 45 | }, 46 | "Und viele Sachen konnten kaputt gehen.": { 47 | "Menschen wurden nicht verletzt.": false 48 | }, 49 | "Der Chef vom Impf-Zentrum hat gesagt:": { 50 | "Nach dem versuchten Brandanschlag auf das Impfzentrum im vogtländischen Eich hat das Polizeiliche Terrorismus- und Extremismus-Abwehrzentrum (PTAZ) die Ermittlungen übernommen.": false, 51 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": false 52 | }, 53 | "Der Brand-Anschlag war eine schlimme Straftat .": { 54 | "Nach dem versuchten Brandanschlag auf das Impfzentrum im vogtländischen Eich hat das Polizeiliche Terrorismus- und Extremismus-Abwehrzentrum (PTAZ) die Ermittlungen übernommen.": false, 55 | "LKA übernimmt Ermittlungen nach versuchtem Brandanschlag.": false, 56 | "Die Brandsätze zündeten nicht, weshalb kein Feuer ausbrach.": false 57 | }, 58 | "Im Monat März haben Menschen mit Farbe an das Haus vom Impf-Zentrum gemalt.": { 59 | "Auf das Impfzentrum im vogtländischen Eich ist am späten Dienstagabend ein Brandanschlag verübt worden.": false, 60 | "Das Impfzentrum war am Mittwoch regulär im Betrieb.": false 61 | }, 62 | "Aber die Sachen haben nicht angefangen zu brennen.": { 63 | "Menschen wurden nicht verletzt.": false, 64 | "Die Brandsätze zündeten nicht, weshalb kein Feuer ausbrach.": true, 65 | "Wer Hinweise zu dem Anschlag geben könne, solle sich bei der Polizei Zwickau oder bei jeder anderen Polizeistelle melden, hieß es.": false 66 | }, 67 | "Ein Orts-Teil von Treuen heißt Eich.": { 68 | "Auf das Impfzentrum im vogtländischen Eich ist am späten Dienstagabend ein Brandanschlag verübt worden.": true 69 | }, 70 | "Dass kein Mensch verletzt wurde.": { 71 | "Menschen wurden nicht verletzt.": true 72 | }, 73 | "Das hat die Polizei am Mittwoch gesagt.": { 74 | "Am Donnerstag hat das Landeskriminalamt die Ermittlungen übernommen.": false 75 | }, 76 | "finished": true 77 | } -------------------------------------------------------------------------------- /results/evaluated/412900526089946313916620494448631239686947421717.results: -------------------------------------------------------------------------------- 1 | { 2 | "In dem Stadt-Teil Albertstadt gibt es eine Gas -Firma.": { 3 | "Im Industriegelände im Dresdner Norden brennt eine Abfüllanlage für Flüssiggas.": true, 4 | "Der Brand in einer Abfüllanlage für Flüssiggas in der Dresdner Albertstadt ist unter Kontrolle.": true, 5 | "Großbrand in Flüssiggasanlage in Dresdner Albertstadt unter Kontrolle.": true 6 | }, 7 | "In dieser Gas-Firma gab es seit dem Morgen ein großes Feuer.": { 8 | "Bis zu 70 Feuerwehrleute und ein Helikopter waren im Einsatz, um ein Übergreifen des Feuers auf umliegende Gebäude zu verhindern.": false, 9 | "Nun hat die Feuerwehr den Brand unter Kontrolle.": false 10 | }, 11 | "Die Feuerwehr von Dresden hat das Feuer jetzt fast gelöscht.": { 12 | "Nun hat die Feuerwehr den Brand unter Kontrolle.": true, 13 | "Bis zu 70 Feuerwehrleute und ein Helikopter waren im Einsatz, um ein Übergreifen des Feuers auf umliegende Gebäude zu verhindern.": false, 14 | "Es gebe immer noch kleinere Brände, weshalb die Feuerwehr noch vor Ort sei, aber der Großteil sei gelöscht, sagte der Feuerwehrsprecher Michael Klahre.": true 15 | }, 16 | "Bis das Feuer gelöscht ist.": { 17 | "Die Feuerwehr hatte darum gebeten, den Bereich weiträumig zu umfahren.": true, 18 | "Bis zu 70 Feuerwehrleute und ein Helikopter waren im Einsatz, um ein Übergreifen des Feuers auf umliegende Gebäude zu verhindern.": false, 19 | "Es gebe immer noch kleinere Brände, weshalb die Feuerwehr noch vor Ort sei, aber der Großteil sei gelöscht, sagte der Feuerwehrsprecher Michael Klahre.": false 20 | }, 21 | "Das kann für die Menschen sehr gefährlich sein.": { 22 | "Auch der Bereich um die Hermann-Mende-Straße, am Lagerplatz sowie die Straße am Kohlenplatz waren voll gesperrt, sowohl für Pkw als auch die Straßenbahnlinien 7, 8 und 13.": false, 23 | "Die Warnungen an die Bevölkerung, Fenster und Türen geschlossen zu halten sowie Belüftungs- und Klimaanlagen nicht zu benutzen, werden zurückgezogen, so die Polizei.": false, 24 | "Es sei jedoch noch mit Verspätungen zu rechnen.": false, 25 | "Es gebe immer noch kleinere Brände, weshalb die Feuerwehr noch vor Ort sei, aber der Großteil sei gelöscht, sagte der Feuerwehrsprecher Michael Klahre.": false 26 | }, 27 | "So kann es später verkauft werden.": { 28 | "Es sei jedoch noch mit Verspätungen zu rechnen.": false, 29 | "Die Warnungen an die Bevölkerung, Fenster und Türen geschlossen zu halten sowie Belüftungs- und Klimaanlagen nicht zu benutzen, werden zurückgezogen, so die Polizei.": false 30 | }, 31 | "Und es gab auch viel Rauch.": { 32 | "Es sei jedoch noch mit Verspätungen zu rechnen.": false, 33 | "Angaben zu möglichen Verletzten und zur Brandursache gab es zunächst nicht.": false, 34 | "Die Rauchsäule der brennenden Abfüllanlage war noch in großer Entfernung zu sehen.": true 35 | }, 36 | "Die Anwohner in Albertstadt sollten wegen dem Brand ihre Fenster und Türen nicht aufmachen.": { 37 | "Großbrand in Flüssiggasanlage in Dresdner Albertstadt unter Kontrolle.": false, 38 | "Der Brand in einer Abfüllanlage für Flüssiggas in der Dresdner Albertstadt ist unter Kontrolle.": false, 39 | "Die Rauchsäule der brennenden Abfüllanlage war noch in großer Entfernung zu sehen.": false, 40 | "Die Warnungen an die Bevölkerung, Fenster und Türen geschlossen zu halten sowie Belüftungs- und Klimaanlagen nicht zu benutzen, werden zurückgezogen, so die Polizei.": true 41 | }, 42 | "Damit kein Rauch in ihre Häuser kommt.": { 43 | "Die Rauchsäule der brennenden Abfüllanlage war noch in großer Entfernung zu sehen.": false 44 | }, 45 | "Und die Menschen sollten auch ihre Klima-Anlagen und ihre Belüftungen ausmachen.": { 46 | "Die Warnungen an die Bevölkerung, Fenster und Türen geschlossen zu halten sowie Belüftungs- und Klimaanlagen nicht zu benutzen, werden zurückgezogen, so die Polizei.": true, 47 | "Es sei jedoch noch mit Verspätungen zu rechnen.": false 48 | }, 49 | "In Dresden hat eine Gas-Firma gebrannt.": { 50 | "Großbrand in Flüssiggasanlage in Dresdner Albertstadt unter Kontrolle.": true, 51 | "Im Industriegelände im Dresdner Norden brennt eine Abfüllanlage für Flüssiggas.": true 52 | }, 53 | "Das sollten sie so lange machen:": { 54 | "Die Warnungen an die Bevölkerung, Fenster und Türen geschlossen zu halten sowie Belüftungs- und Klimaanlagen nicht zu benutzen, werden zurückgezogen, so die Polizei.": true, 55 | "Es sei jedoch noch mit Verspätungen zu rechnen.": false 56 | }, 57 | "Dresden ist eine Stadt im Bundes-Land Sachsen.": { 58 | "Im Industriegelände im Dresdner Norden brennt eine Abfüllanlage für Flüssiggas.": false 59 | }, 60 | "Sie hat gesagt: Wegen dem Gas gab es bei dem Brand immer wieder Explosionen .": { 61 | "Nun hat die Feuerwehr den Brand unter Kontrolle.": false, 62 | "Angaben zu möglichen Verletzten und zur Brandursache gab es zunächst nicht.": false, 63 | "Die Feuerwehr hatte darum gebeten, den Bereich weiträumig zu umfahren.": false 64 | }, 65 | "finished": true, 66 | "Das sollten sie so lange machen: Bis das Feuer gelöscht ist.": { 67 | "Nun hat die Feuerwehr den Brand unter Kontrolle.": false 68 | } 69 | } -------------------------------------------------------------------------------- /crawler/archive.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3.10 2 | import os 3 | import time 4 | import json 5 | import argparse 6 | import urllib.parse 7 | from pathlib import Path 8 | from urllib.request import urlopen 9 | 10 | import crawler 11 | import utilities as utl 12 | from defaultvalues import dataset_location 13 | 14 | parser = argparse.ArgumentParser(description="Script to either archive the links of a certain source and create the " 15 | "corresponding archive_header.json or check and update the entire dataset " 16 | "folder.") 17 | parser.add_argument('--update', action='store_true', help="Use --update to update all the archive_header.json files of" 18 | "the entire dataset") 19 | parser.add_argument('--archive', help="Use --archive {crawler-name} to archive the URLs associated with this crawler in" 20 | "the dataset folder") 21 | 22 | 23 | def main(args): 24 | update = args.update 25 | archive_crawler = args.archive 26 | 27 | if update and archive_crawler: 28 | print("Please specify either --update OR --archive {crawler-name}") 29 | exit() 30 | elif archive_crawler: 31 | header_to_archive(archive_crawler) 32 | elif update: 33 | raise NotImplementedError 34 | else: 35 | print("Please specify either --update OR --archive {crawler-name}") 36 | 37 | 38 | def header_to_archive(name: str): 39 | """ 40 | Function to archive all URLs provided by the header.json of the respective crawler. 41 | Saves all archived URLs in the archive_header.json. 42 | 43 | Args: 44 | name (str): name of the crawler, e.g. stadt-koeln 45 | """ 46 | if name not in crawler.__all__: 47 | print(f"{name} does not seem to be a crawler script in the crawler folder.") 48 | else: 49 | base_url = getattr(crawler, name).base_url 50 | # transforms e.g. "https://www.apotheken-umschau.de/" 51 | # to foldername = www.apotheken-umschau.de 52 | foldername, _ = utl.get_names_from_url(base_url) 53 | 54 | with open(Path(dataset_location, foldername, "header.json")) as fp: 55 | header = json.load(fp) 56 | 57 | path_archive_header = Path(dataset_location, foldername, "archive_header.json") 58 | if os.path.isfile(path_archive_header): 59 | with open(path_archive_header, "r") as fp: 60 | archive_header = json.load(fp) 61 | else: 62 | archive_header = {} 63 | 64 | for key in header: 65 | if key in archive_header.keys(): 66 | continue 67 | url = header[key]["url"] 68 | try: 69 | with urllib.request.urlopen(f"http://web.archive.org/{url}") as f: 70 | print(f"Already archived: {f.url}") 71 | # TODO: add checksum for article content? 72 | archive_header[key] = { 73 | "url": f.url, 74 | "crawl_date": header[key]["crawl_date"], 75 | "easy": header[key]["easy"], 76 | "publication_date": header[key]["publication_date"], 77 | "matching_files": header[key]["matching_files"] 78 | } 79 | with open(path_archive_header, "w") as fp: 80 | json.dump(archive_header, fp, indent=4) 81 | 82 | except: 83 | not_downloaded = True 84 | counter = 0 85 | while not_downloaded: 86 | try: 87 | with urllib.request.urlopen(f"http://web.archive.org/save/{url}") as f: 88 | print(f"Newly archived: {f.url}") 89 | # TODO: add checksum for article content? 90 | archive_header[key] = { 91 | "url": f.url, 92 | "crawl_date": header[key]["crawl_date"], 93 | "easy": header[key]["easy"], 94 | "publication_date": header[key]["publication_date"], 95 | "matching_files": header[key]["matching_files"] 96 | } 97 | with open(path_archive_header, "w") as fp: 98 | json.dump(archive_header, fp, indent=4) 99 | not_downloaded = False 100 | except urllib.error.HTTPError as err: 101 | time.sleep(60) 102 | counter += 1 103 | if counter > 4: 104 | print( 105 | f"{counter} failed to archive: {url}\n {str(err)}\n") 106 | print(f"Stopping {url}") 107 | with open("ERROR", "a") as fp: 108 | fp.write(url + "\n " + str(err) + "\n\n") 109 | not_downloaded = False 110 | 111 | 112 | if __name__ == "__main__": 113 | args = parser.parse_args("--archive apotheken-umschau".split()) 114 | main(args) 115 | --------------------------------------------------------------------------------