Implementierung einer Dokumenten-Pipeline für Nachrichtenartikel
Zur grafischen Einführung bitte unsere Präsentation anschauen.
=> Hier ein Überblick über die Virtuelle Maschine und die laufenden Dienste.
Aufgaben:
- Regelmäßig ausgewählte News-Seiten nach neuen Artikeln durchsuchen (crawling)
- Ausgewählte Metadaten und Inhalte der Artikel extrahieren und in eine Datenbank schreiben (scraping)
Für die folgenden News-Seiten wurden sog. Spiders umgesetzt:
- taz
- Süddeutsche Zeitung
- Heise
- Golem (WiSe 20/21)
- Postillon (WiSe 20/21)
Technologien:
- Scrapy
- Selenium
- mongoDB
- Kibana (mit Elasticsearch)
geschrieben in Python.
Technologien:
Aufgaben:
-
gescrapte Artikel analysieren hinsichtlich:
- Sentiment Analysis
- Named Entity Recognition (details siehe Readme)
- Generierte Textzusammenfassung basierend auf extrahierten Keywords
- Lesezeit
- relevanteste Wörter bzw. Objekte (Yake)
- Lemmas
- Zuordnung eines oder mehrerer Departments
geschrieben in Scala
- Performanceverbesserung hinsichtlich des Preprocessings
- Textzusammenfassung komplexer gestalten
- Vergleich verschiedener Textzusammenfassungsalgorithmen (Yake vs. TF-IDF)
- Kategorien der Named-Entity-Recognition im FrontEnd visualisieren
- Speicherkonzept in der Datenbank überdenken
- Dokumentenbasierte NoSQL Datenbank
- Basiert quasi auf JSON-Dokumenten
- unser zentraler Datenspeicher, hält die Daten der Scraper und der UIMA-Pipeline
- Auf JSON basierende Suchmaschine
- nutzt JSON für Anfragen und Antworten
- Teil des Elastic Stacks
- Stellt die Suchfunktion bereit
Aufgaben:
- Zeitungsartikel nach außen sichtbar machen
- Userverwaltung
- Artikelvorschläge für User generieren
- Autorendaten nach außen sichtbar machen
- Analytics aggregieren
- Elasticsearch-Abfragen (suchen, filtern und aggregieren)
- HTTP-Anfragen (GET, POST, PUT, DELETE) bearbeiten
- Antwort mit JSON-Daten
geschrieben in Scala mit der Akka-Library
- Autorendaten aggregieren (ebenfalls mittels Elasticsearch)
- Artikelvorschläge basierend auf dem Leseverhalten des Users optimieren
- Artikel (und Autoren) bezüglich Sentiments filtern
mit ReactJS geschrieben
- 2011 innerhalb von Facebook entwickelt
- Komponenten
- State und Props
- Virtual DOM
und folgenden Libraries:
- HTTPS einrichten
- Vereinheitlichung der HTTP-Anfragen (fetch / axios)
Technologien:
Aufgaben:
- die Autoren der verarbeiteten Artikel aus der NLP Pipeline analysieren
aktuell:
-
anzahl der Artikel pro Tag je Autor
-
anzahl der Artikel pro Kategorie je Autor
-
anzahl der Artikel pro Website je Autor
-
durchschnittliches Sentiment pro Tag
-
durchschnittliches Sentiment pro Kategorie
-
anzahl der Wörter für die letzten fünf Artikel
-
trust score
geschrieben in Scala
-
komplexere Berechnung des Trust Scores
-
komplexere Analysen:
- Welche Autoren schreiben häufig zusammen?
- Schreiben die Autorenpaare gewöhnlicherweise in der gleichen Kategorie?
- Haben die Paare ähnliche Lücken in der nichts geschrieben wurde?
- Hebt sich Sentiment oder Wortanzahl wenn die Autoren zusammen schreiben, oder senkt sie sich sogar?
- Wann schreibt der Autor (Veröffentlichungsdatum != Verfassungsdatum)
Bei weiteren Anreizen empfiehlt es sich das Video zum SpiegelMining anzusehen