Added section 4-3-2"archive processing" (#574)

Kurze Zusammenfassung über das Archive Processing.

---------

Co-authored-by: Philipp Horstenkamp <philipp@horstenkamp.de>
This commit is contained in:
Sebastian
2024-01-23 15:19:11 +01:00
committed by GitHub
parent 05f692294a
commit 3c327966c3
5 changed files with 51 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

View File

@ -0,0 +1,51 @@
#### Archive Processing
Im vorherigen Kapitel wurde die mangelnde Datenhistorie beschrieben, da dass Data-Mining inhaltlich nicht die erforderliche Tiefe erreichte und durch die Projektlaufzeit nur ein kurzes Intervall erfasst wurde. \
Durch Recherche konnte ein Nachrichtenarchiv gefunden werden, welches 175000 Artikel aus verschiedenen Kategorien, wie z.B. Wirtschaft, Politik, Weltgeschehen, Kultur und Sport zusammenträgt. Die Quellen dieser Artikel sind Online-Nachrichtenseiten wie welt.de, heise.de, sueddeutsche.de und weiteren lokalen Tageszeitungen.
Die Artikel sind als CSV-Datei organisiert und in Spalten strukturiert.
![Archive structure](Abbildungen/Archive_structure.PNG)
##### Datenaufbereitung - JSON Strukturierung
Um die Nachrichtenartikel für das Projekt nutzbar zu machen, müssen sie in die gleiche JSON-Struktur überführt werden, wie bereits im vorherigen Data-Mining-Kapitel beschrieben.
Notwendige Schritte:
1. Erstellung des Attributs *source_url* aus der Spalte *source*
2. Löschen der Elemente, die keinen Text enthalten
3. Umwandlung und Vereinheitlichung der Spalte *published* in *date*
4. Datensatzbereinigung
Nach der Aufbereitung stehen 167.256 Artikel im benötigten Format zur Verfügung.
![Archive processed](Abbildungen/Archive_JSON_struct.PNG)
##### Identifikation von Unternehmen - NER Pipeline
In einem ersten Schritt werden Organisationen in den Artikeln identifiziert. Hierfür wird eine Pipeline für die Named-Entity-Recognition verwendet. Die Funktion dieser NER-Pipeline wird in einem späteren Kapitel genauer erläutert.
Das NER-Processing benötigt ~119h für die 167256 Dokumente, was etwa 2,5 Sekunden pro Dokument entspricht.
![NER Archive](Abbildungen/Archive_ProcessingTime.PNG)
##### Datenreduktion - Name Matching mit Rapidfuzz
Aufgrund der Anzahl der Dokumente ist es notwendig, nur relevante Artikel zu identifizieren, um einen Mehrwert für die Projektdatenbank zu erzielen und überflüssiges Processing zu vermeiden.
Im vorherigen Schritt wurden die Organisationen identifiziert und es existiert bereits eine Collection mit relevanten Unternehmen.
Diese beiden Dokumentendatenbanken werden mit Rapidfuzz, einer Bibliothek zum String-Matching mit Unschärfe, verglichen. Unschärfe bedeutet, dass die Strings nicht identisch sein müssen, sondern ein Ähnlichkeitsmaß erfüllen müssen, wodurch Namensabwandlungen erkannt werden können.
Durch diesen Abgleich wird die Dokumentenanzahl auf 3.655 reduziert.
![Name Matching](Abbildungen/Name_Matching.PNG)
##### Stimmungsanalyse
Für das Projekt muss die Stimmung in den Nachrichten bestimmt werden, um z.B. einen Trend in der Aussenwahrnehmung eines Unternehmens zu analysieren. Diese Sentiment-Analyse wird in einem späteren Kapitel genauer erklärt.
An dieser Stelle ist lediglich zu erwähnen, wie die Verteilung der Stimmungen im Nachrichtenarchiv war:
| positiv | negativ | neutral |
|:--------: |:--------: |:--------: |
| 1637 | 164 | 1854 |
##### Fazit
Die Recherche und Aufbereitung des Nachrichtenarchivs bestanden aus verschiedenen Arbeitspaketen sowie einem zeitlichen Aufwand des Data-Processing. Der Einsatz hat sich gelohnt, um die Datenbasis des Projekts zu erweitern und eine Historie zu den Unternehmen aufzubauen.