Woche14
Änderungen:
- logging_decorator in timing_decorator umbenannt
- pos_tagger.py hinzugefügt
- multiproc_pos_tagger.py hinzugefügt
Aufgaben:
- Finde heraus, mit wie vielen Kerne dein Rechner arbeitet. Antwort: 4
- Vergleich Laufzeiten: "normaler" pos_tagger: 8.182 sec multiprocessing_pos_tagger: 11.172 sec
Warum braucht der multiprocessing_pos_tagger(mpt) länger? Ich denke das liegt daran, dass bei dem mpt mehr Objekte erstellt werden und mehr mit den Daten gearbeitet wird. Dazu kommt, dass das Multiprocessing seine Stärke nicht ausspielen kann, da meine Daten aus nur einer großen Datei bestehen und der Multiprocessing-Code darauf ausgelegt ist einen großen Korpus schneller durchzuarbeiten, indem es sich mehrere Dateien gleichzeitig anguckt. Da es nur eine Datei gibt, bringt das Multiprocessing nichts. Man müsste die eine große Datei in mehrere kleine Aufbrechen, damit das Multiprocessing greifen kann.
- Finde heraus, ob/wie Concurrency in spacy eine Rolle spielt (z.B. ob es dort implementiert ist und wenn ja, wo/wie). Ja, Spacy verwendet Concurrency in Form von Multiprocessing beim Arbeiten mit Natural Language Pipelines.
"spaCy includes built-in support for multiprocessing with nlp.pipe using the n_process option" (https://spacy.io/usage/processing-pipelines)