This commit is contained in:
2023-06-20 15:36:06 +00:00
parent de85615e74
commit 515f0913b2
123 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
# Aufgabe: Inhaltliche Skizze für die Seminararbeit zur Thematik Datenspeicherung
# 1. Allgemeine Anforderungen an Datenbank
- **Speicherung** von strukturierten Daten, wie Kennzahlen, Stammdaten
- **Skalierbarkeit:** Datenbank sollte skalierbar sein, um zukünftige Daten weiterhin zu speichern und weitere Unternehmen hinzuzufügen
- **Sicherheit:** Die Datenbank muss Funktionen unterstützen, um die Datenvor unbefugtem Zugriff zu schützen.
- **Datensicherung- und Wiederherstellung: ** Die Datenbank muss Funktionen zur Sicherung und Wiederherstellung unterstützen.
- **Leistung:** Die Performance der Datenbank ist eher zweitrangig, da die Abfrage nicht hochdynamisch sein muss. Ausserdem werden nicht viele Anfragen erwartet.
- **Integration:** Die Datenbank muss sich in ein Python Framework einbinden lassen und mit dem bevorzugten Frontend Daten austauschen können.
# 2. Datenarten
Welche Daten erwarten wir im Projekt? \
Cluster, wie z.B. Stammdaten, Stimmungsdaten, Social Graph, Zeitseriendaten/Historien
> Abstimmung mit den Bereichen Textmining und Datenbeschaffung über verwendete Daten und Formulierung von Anforderungen an Daten.
## 2.1 strukturierte Daten
Was sind strukturierte Daten?
## 2.2 unstrukturierte Daten
Was sind unstrukturierte Daten?
> Definiere eine Anforderung an die Struktur der Daten.
# 3. Arten von Datenbanken
## 3.1 Relational
Was ist eine reltionale Datenbank?
Wie werden Daten gespeichert?
Beispiel für relationale Datenbank
## 3.2 Graph
Was ist eine Graph Datenbank?
Wie werden Daten gespeichert?
Beispiel für Graph Datenbank
## 3.3 Zeitserien
Was ist eine Zeitserien Datenbank?
Wie werden Daten gespeichert?
Beispiel für Zeitserien Datenbank
> Kurzvorstellung von Datenbanksystemen
# 4. DBS Transparenzregister
## 4.1 relationales Datenbankmodell
> Modell zur Abbildung der Relationen im Projekt Transparenzregister
## 4.2 verteilte Datenbank oder ein System
Ein DBS: Wenn nur ein Datenbanksystem verwendet wird, muss nur ein System gepflegt und integriert werden.
- Vorteil: einfache Verwaltung und schnelle Abfrage von Datenbeziehungen
verteiltes System: spezialisierte Datenbank für jeden Datenytp, wie z.B. Zeitseriendaten oder Graph Daten
> Definiere eine Empfehlung/Anforderung für das Projekt Transparenzregister.
## 4.3 Analyse zur Auswahl eines Datenbanksystems
Was sollte bei der Auswahl eines Datenbanksystems beachtet werden?
> Empfehlungen für DBS-Auswahl
## 4.4 Anbindung an Front- und Backend
Wie kann das DBS an das Front- und Backend angebunden werden?
> Jupyter Notebook mit Beispiel
## 4.5 Abfragen in der Datenbank
Wie können Unternehmensdaten abgefragt werden?
Wie können Verflechtungen abgefragt werden?
> Jupyter Notebook mit Beispiel

View File

@@ -0,0 +1,45 @@
**Abstract/Planung der Seminararbeit zu "Text Mining"**
**Sascha Zhu**
**10.05.2023**
Gliederung
1. Einleitung und Begriffsbestimmung
2. Text Mining Prozess
3. Verwendung von NLP-Methoden für das Text Mining
3.1 Morphologische Textanalyse
3.2 Syntaktische Textanalyse
3.3 Semantische Textanalyse
4. Ontologien und Text Mining
4.1 Verwendung von Ontologien als Grundlage der Textanalyse
4.2 Generierung von Ontologien mittels Text Mining ("ontology generation"/"ontology learning" )
5. Sentiment-Analyse als Teilgebiet des Text Minings
6. Zusammenfassung und Ausblick
Die Seminararbeit zu "Text Mining" soll in die oben genannten sechs Abschnitte gegliedert werden.
Nach einer Einleitung, in der der Begriff "Text Mining" näher definiert wird und gegenüber "Data Mining" und "Computational Linguistics" abgegrenzt wird, folgt der zweite Abschnitt zum Text Mining Prozess, der nach Hippner u. Rentzmann (2006) in die folgenden sechs Schritte eingeteilt wird: (a) Aufgabendefinition; (b) Dokumentenselektion; (c) Dokumentenaufbereitung; (d) Untersuchung mit Text-Mining-Methoden; (e) Interpretation und Evaluation; (f) Anwendung der Ergebnisse.
Im darauffolgenden dritten Abschnitt zur Verwendung von NLP-Methoden für das Text Mining werden die drei Phasen des Natural Language Processings (NLP), d.h. die morphologische, syntaktische und semantische Textanalyse, näher dargestellt, wobei der Schwerpunkt auf die semantische Analysetechniken wie z.B. "Word Sense Disambiguation" (WSD) und "Named Entity Recognition" (NED) liegen soll.
Der vierte Abschnitt soll sich dem Thema "Ontologien und Text Mining" widmen. Einerseits können Ontologien, die domänenspezifisches Wissen abbilden, als Grundlage für NLP-Methoden dienen, um etwa die semantische Textanalyse zu verbessern. Andererseits können mittels Text Mining automatisch bzw. semi-automatisch Ontologien als Repräsentation der Text-Mining-Ergebnisse erstellt werden ("ontology generation"/"ontology learning").
Im vorletzten, fünften Analyse soll die Sentiment-Analyse als Teilgebiet des Text Mining durchleuchtet werden. Dieser Abschnitt soll den Schwerpunkt der gesamten Seminararbeit darstellen. Die Methodik, Funktionsweise, Varianten und Use Cases der Sentiment Analyse sollen anhand ausgewählter Beispiele erläutert werden. Zudem sollen auch bekannte Sentiment-Analyse-Tools wie z.B. FinBERT, VADER, SentiWS etc. näher beschrieben werden.
Am Ende der Seminararbeit soll der sechste Abschnitt eine Zusammenfassung liefern und einen Ausblick darüber geben, in welche Richtung die zukünftige Entwicklung auf dem Gebiet des Text Minings gehen wird.

View File

@@ -0,0 +1,35 @@
---
title: "Automatisierte Daten Extraktion aus Internetquellen als Grundlage für die Analyse von Kapitalgesellschaften"
author: "Nolde, Tristan Norbert"
date: "2023-05-06"
---
# Abstract: Automatisierte Daten Extraktion aus Internetquellen als Grundlage für die Analyse von Kapitalgesellschaften
## Gliederung
1. Einleitung (Zielsetzung/Problemstellung, Vorgehen)
2. Web Scraping/Crawling
1. Definition und Theorie
2. Technologien
3. Umsetzung
3. RSS Feeds
1. Definition und Theorie
2. Technologien
3. Umsetzung
4. APIs
1. Definition und Theorie
2. Technologien
3. Umsetzung
5. Rechtliche Rahmenbedingungen
6. Vergleich der Lösungsansätze
7. Zusammenfassung
## Inhalt
In Zeiten von Big Data und AI stellen Daten und ihre Verfügbarkeit zunehmend eines der wichtigsten Wirtschaftsgüter dar. Als solches können sie auch eingesetzt werden, um Kapitalgesellschaften (eine Subklasse von Unternehmen) anhand verschiedener Kennzahlen wie der Mitarbeiterzahl oder dem Jahresgewinn zu analysieren. Obwohl solche Daten zu Genüge in Zeitungsartikeln, Newslettern oder dedizierten Aktienanalysen zu finden sind, so gestaltet sich eine automatisierte Extraktion dieser Daten aufgrund verschiedener Formate sowie weiterer Restriktionen schwierig.
Daher sollen im Rahmen dieser Seminararbeit verschiedene Wege betrachtet werden, die eben diese Daten erheben und zur Verfügung stellen können. Zu den nennenswerten Quellen gehören: Der Bundesanzeiger, RSS Feeds, Nachrichten APIs. Ziel ist es, aus diesen Quellen wertvolle Informationen bezogen auf den wirtschaftlichen Erfolg einer Kapitalgesellschaft sowie aktueller Nachrichten zu extrahieren und in ein einheitliches Format zu überführen.
Neben des technischen Einsatzes von Web Scraping/Crawling, um Informationen aus Webseiten zu gewinnen, sowie des Abfragens verfügbarer APIs soll auch der rechltiche Aspekt dieser Vorgehens Berücksichtigung finden, um die Rechtmäßigkeit zu bewerten.
Abschließend wird der Einsatz der verschiedenen Technologien an den Faktoren: Flexibilität, Simplizität, Verfügbarkeit und Rechtmäßigkeit, ein Fazit gezogen sowie ein Ausblick des weiteren Einsatzes gegeben.

View File

@@ -0,0 +1,47 @@
# Seminarthema: Datenvisualisierung
## Geplanter Inhalt:
- Einführung
- Best Practice für Datenvisualisierung
- Vorstellung verschiedener Diagrammarten
- Welche Diagrammarten eignen sich für unsere drei Anwendungsbereiche Time Series Daten, Netzwerke und Stimmungen?
- Betrachtung verschiedener Bibliotheken (z.B. D3Blocks, pyvis, plotly)
- Zweck der Bibliothek, unterstützte Visualisierungen, Vor- und Nachteile
- Minimalbeispiele
- Anwendung auf unser Projekt:
- Vergleich der Bibliotheken mit Blick auf unsere drei Anwendungsbereiche
- Welche Daten werden für die einzelnen Diagramme gebraucht?
- Welche Ideen/Anforderungen ergeben sich an die anderen Themenbereiche?
- Fazit und Handlungsempfehlung
- Welche Diagramme und welche Bibliotheken eignen sich für uns?
## Abstract:
In dieser Seminararbeit geht es um die Visualisierung von Daten in Python. Im Fokus steht die Anwendung auf die drei Themenbereiche, die im Projekt "Transparenzregister" behandelt werden: Time Series Daten, Soziale Netzwerke und Stimmungen. Nach einer Einführung in das Thema werden Best Practices für die Datenvisualisierung vorgestellt und verschiedene Diagrammarten präsentiert. Anschließend wird diskutiert, welche Diagramme für die genannten Anwendungsbereiche am besten geeignet sind.
Im zweiten Abschnitt werden verschiedene Python Bibliotheken vorgestellt und anhand von Minimalbeispielen betrachtet. Dabei wird analysiert, welche Bibliotheken die gewünschten Diagramme für unsere Anwendungsbereiche am besten darstellen und welche Daten für die Erstellung der verschiedenen Diagramme benötigt werden. Es werden zudem Ideen und Anforderungen an die anderen Themenbereiche aufgezeigt.
Im letzten Abschnitt der Arbeit wird ein Fazit gezogen und eine Handlungsempfehlung gegeben. Insgesamt soll die Arbeit einen Einblick in die Welt der Datenvisualisierung in Python geben und unserem Projekt helfen, die richtigen Entscheidungen bei der Wahl der Diagrammarten und Bibliotheken zu treffen.
## Erste Sammlung von Referenzen:
Bibliotheken/Tools:
- D3Blocks: [Documentation](https://d3blocks.github.io/d3blocks/pages/html/index.html), [Medium Blog](https://towardsdatascience.com/d3blocks-the-python-library-to-create-interactive-and-standalone-d3js-charts-3dda98ce97d4)
- pyvis: [Documentation](https://pyvis.readthedocs.io/en/latest/tutorial.html)
- networkx: [Documentation](https://networkx.org/documentation/stable/auto_examples/index.html), [Example](https://www.kirenz.com/post/2019-08-13-network_analysis/)
- plotly: [Documentation](https://plotly.com/python/#animations)
Netzwerke:
- Zentralitätsmaße: [Medium Blog](https://towardsdatascience.com/social-network-analysis-from-theory-to-applications-with-python-d12e9a34c2c7)
- Visualisierungsideen: [Medium Blog](https://towardsdatascience.com/visualizing-networks-in-python-d70f4cbeb259)
Kennzahlen:
- Visualisierungsideem: [Towards AI](https://towardsai.net/p/l/time-series-data-visualization-in-python)
Best Practice:
- [Science Direct](https://www.sciencedirect.com/science/article/pii/S2666389920301896)
- [Toptal](https://www.toptal.com/designers/data-visualization/data-visualization-best-practices)

View File

@@ -0,0 +1,4 @@
# Themen in der Seminararbeit zum Thema Datenvisualisierung
## Python Bibliotheken
- networkx und pyvis

View File

@@ -0,0 +1,21 @@
# Dev Ops
## Roadmap
My plan for this coursework is to explore the dev ops thema and how it applies to the AI theme and this project in specific.
There are the following things in the theme of dev ops I want to explore:
1. Python dependency management via poetry
2. Write a documentation around pre-commit hooks and how they can be used for this project with arguments for and against each of the hooks.
3. Add a GitHub Runner on my own hardware to the repository and build a pipline with GitHub actions.
- Add linter (black, flake8, pylint, mypy, bandit, pip-audit)
- Testing setup in the pipline via pytest
- Explore the ability of GitHub to summaries the linting and testing results.
- Add SonarQube to the project if the test and lint summaries in GitHub does not suffice.
- Build the artifacts. Something like python wheels, Docker container and deployment files.
- Startup to new build and see if it crashes in the first 60s if a framework is shown.
- Build the documentation via sphinx for this project via the pipline.
4. How to deploy the collection of Docker containers via docker-compose and/or kubernetes.
5. Evaluate the use of dependabot to upgrade the poetry dependency groups.
6. Steadily grow the build pipline as the application grows.

View File

@@ -0,0 +1,48 @@
# Verflechtungsanalyse
## Entwurf des Inhaltsverzeichnis + Stichpunkte
1 Einleitung
1.1 Problemstellung
1.2 Zielsetzung und Aufbau der Arbeit
2 Graphentheorie
2.1 Begriffliche Definition
2.2 Sociometry
- sociometry: quantitatives Methode um soziale Beziehungen zu messen.
2.3 Sociogram/ Social Graph
- Ist ein graph der ein Soziales netzwerk darstellt
- Basiert auf der Graphentheorie
- Wurde offiziell Sociogram genannt
- von facebook in der F8 2007 vorgestellt
2.4 Social Network Analysis (SNA)
- Social Network Analysis (SNA): Untersuchen von Sozialen Strukturen anhand von Netzwerken und Graphtheorie.
3 Ein Social Graph für das Transparentsregister
3.5 Handlungsempfehlung
4 Zusammenfassung
4.1 Kritische Reflexion
4.2 Fazit
4.3 Ausblick
## Abstract
In der Seminararbeit zum Thema: "Verpflechtungsanalyse der Unternehmen und Personen im Transparenzregister" soll einerseits die Theorie für die Analyse von Verflechtungen vermittelt sowie anhand des Projektess aufgezeigt werden wie diese angewendet werden kann.
Als Fundament dient die Graphentheorie, welche Grundlegen für die Analyse von Netzstrukturen ist. Zunächst werden die wichtigsten Begriffe definiert und es wird eine Einführung ins Thema der Graphentheorie mit Beispielen und Erläuterung gegeben. Darauffolgend wird tiefer in das Thema eingetaucht und sich mit dem Bereich Sociogram/ Social Graph auseinandergesetzt. Ein Sociogram ist ein Model eines Netzwerks von sozialen Verbindungen die durch einen Graphen repräsentiert werden. Diese Idee wurde 2007 von Facebook als Social Graph in der F8 vorgestellt. Diese Art von Graph basiert auf der Graphentheorie. Die stärken dieses Graphen liegen in der Veranschaulichung der sozialen Verflechtungen. Daher wird der Social Graph für die Analyse der Verflechtungen innerhalb des Transparenzregisters genutzt.
Im Hauptteil der Seminararbeit wird aufgezeigt wie der Social Graph auf das Transparenzregister angewendet werden könnte. Es wird gezeigt welche Komponenten gebildet werden müssten und wie die Daten aufbereitet werden um einen Social graph bauen zu können. Des Weiteren wird auf die Formel und Algorithmen eingegangen die zur Erstellung des Graphen nötig sind. Dabei orientiert sich die Arbeit an Beispielen um die Theorie nachvollziebar zu vermitteln. Dieser Abschnitt wird mit einer Handlungsempfehlung für das Projekt abgeschlossen.
Abgeschlossen wird das Werk mit einer kritischen Reflexion, gefolgt von einem Fazit und einem Ausblick.