Skip to content

Instantly share code, notes, and snippets.

@franz101
Last active October 18, 2021 06:09
Show Gist options
  • Save franz101/2c255bcc97dcc1d1e6307db5b31c24b5 to your computer and use it in GitHub Desktop.
Save franz101/2c255bcc97dcc1d1e6307db5b31c24b5 to your computer and use it in GitHub Desktop.
Hello World
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "0a601a93-a986-43e1-9631-e944ba5a7013",
"metadata": {},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'Input' is not defined",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m/tmp/ipykernel_68/3727425382.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mInput\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mNameError\u001b[0m: name 'Input' is not defined"
]
}
],
"source": [
"Input()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "dde86902-39ea-4c3a-b08c-12838cc98381",
"metadata": {},
"outputs": [
{
"name": "stdin",
"output_type": "stream",
"text": [
" Text\n"
]
},
{
"data": {
"text/plain": [
"'Text'"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"input()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6b001c96-11eb-4904-9cc1-750cb0c910c9",
"metadata": {},
"outputs": [],
"source": [
"import requests"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "6e6ded67-d6e6-40c8-8e10-44891cac0989",
"metadata": {},
"outputs": [],
"source": [
"text=\"\"\"\n",
"In den letzten 10 Jahren haben sich die Höchstpreise für einen Fußballspieler-Transfer verzehnfacht (Armstrong, 2007). Fußball ist weitaus mehr geworden als ein Gesellschaftssport. Es ist ein Weltmarkt und ein Milliardengeschäft. Auch die Anzahl an Wett-Angeboten ist seitdem gestiegen. Eine klassische Frage ist, wie effizient dieser Markt ist. Von simplen statistischen Modellen bis zur Entwicklung von komplexen Simulationen hat sich der Markt für die Voraussage des Spielergebnisses weiterentwickelt.\n",
"In dieser Arbeit wollen wir die Effizienz der Buchmacher (Wettanbieter) nutzen, um faire Preise für Wettquoten zu ermitteln. Wir versuchen hierfür die Ergebnisse von zwei wissenschaftlichen Veröffentlichungen zu reproduzieren. Im Anschluss stellen wir unser eigenes Modell auf:\n",
"\n",
"Diese Arbeit kombiniert die Daten der Wettquoten-Anbieter mit Spieler-Marktwerten und Talent basierten Spieler-Attributen. Unsere Studie wurde mit Daten von 2016 bis 2021 erstellt. Der Datensatz enthält Daten der größten europäischen Ligen. Das Modell ergibt eine statistisch und ökonomisch signifikante Rendite anhand der historischen Daten.\n",
"Als Grundlage des Modells wird eine lineare Regression genutzt und mit den Ergebnissen Machine-Learning Algorithmen verglichen.\n",
"\n",
"Im Vergleich zu anderen Studien standen nur öffentliche Daten zur Verfügung, daher werden hier auch verschiedene Daten-Reinigungsmethoden behandelt.\n",
"\n",
"\n",
"1. Einleitung:\n",
"Die extreme Popularität des Fußballsports und die hohen finanziellen Anreize machen es für Wettanbieter besonders interessant sich im Fußball zu platzieren. Es ist daher kaum verwunderlich, dass der Sport verschiedene Gemeinsamkeiten mit dem Finanzmarkt teilt. Auf diese Gemeinsamkeiten und Unterschiede werden wir später weiter eingehen. Statistisch stehen insbesondere die Gewinnchancen auf eine Wette im Vordergrund, um die Quote zu ermitteln. Diese Quote wird dann auf Wett-Märkten verkauft und gekauft. Als Effizienz wird beschrieben, wie stark die Wettquote den echten Wahrscheinlichkeiten entsprechen. Aufgrund der hohen Anzahl von Plattformen kommt es gelegentlich zu Arbitrage-Möglichkeiten. Dies bedeutet es werden Quoten zu Preisen gekauft in denen der Verlust von Team A und auf den Gewinn von Team A addiert zu einem Gewinn führt.\n",
"\n",
"Diese Arbeit beschäftigt sich mit Herangehensweisen für die Ermittlung von statistischer Arbitrage. Für die Voraussage nutzen wir verschiedene Modelle aus dem Bereich des Machine Learnings. Die verwendeten Daten bestehen aus einer großen Menge an Features, welche sowohl Team-Merkmale als auch die Eigenschaften der Fußballspieler aus beiden Teams vereint. Es wird ein Vergleich von verschiedenen Ansätzen durchgeführt, um zu beurteilen, ob mehr komplexe Algorithmen/komplexe Features in der Lage sind bessere Vorhersagen zu machen. \n",
"\n",
"Die vorher nicht benutzten Testdaten zeigten kontinuierlich positive Renditen.\n",
"\n",
"Die wichtigsten Neuerungen in der Literatur sind die folgenden:\n",
"\n",
"Eine Reproduktion veröffentlichter Studien\n",
"Eine Zusammenführung von Spieler-Skills, Marktwerten und Wettanbieter-Daten\n",
"Eine Data-Cleaning Ansatz für Team und Spieler Matching\n",
"Fine-Tuning der Machine Learning Methoden.\n",
"\n",
"Der Rest der Arbeit ist wie folgt organisiert:\n",
"Abschnitt 2 gibt eine Zusammenfassung der Themengebiete. \n",
"Abschnitt 3 stellt die Daten (Datenmenge????) und die Backtesting-Strategie vor.\n",
"Abschnitt 4 beschreibt das Zusammenführen der Daten.\n",
"Abschnitt 5 stellt die Modelle vor.\n",
"Abschnitt 6 erläutert die Performance.\n",
"Abschnitt 7 vergleicht alte Studien.\n",
"\n",
"\"\"\""
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "2d9d3f5e-68d6-435c-b93f-3b2757ba24c0",
"metadata": {},
"outputs": [],
"source": [
"def get_duden(snippet=\"\"):\n",
" offset = len(snippet)\n",
" responses = {\"spellAdvices\" : [],\"styleAdvices\" : []}\n",
"\n",
" checked_total = 0\n",
" offset = 0\n",
" step = 500\n",
" total = len(text)\n",
" while checked_total + step < total:\n",
" snippet = \".\".join(text[offset:step+offset].split(\".\")[:-1]) + \".\"\n",
" r = requests.post(\"https://mentor.duden.de/api/grammarcheck?_format=json\",\n",
" headers={\n",
" \"User-Agent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Safari/605.1.15\"\n",
" },\n",
" json={\"text\":snippet,\"userInteraction\":None,\"documentID\":\"lite-1634314805334-jOWmoorkdN\",\"maxProposals\":30}\n",
" )\n",
" r_data = r.json().get(\"data\")\n",
" for spell_advice in r_data.get(\"spellAdvices\"):\n",
" spell_advice[\"offset\"] += checked_total\n",
" spell_advice[\"occurrences\"] = list(map(lambda x:({**x,\"offset\":x.get(\"offset\",0)+checked_total}),spell_advice.get(\"occurrences\",[])))\n",
" responses[\"spellAdvices\"].append(spell_advice)\n",
" for style_advice in r_data.get(\"styleAdvices\"):\n",
"\n",
"\n",
" responses[\"styleAdvices\"].append(r_data.get(\"style_advice\"))\n",
" checked_total+=len(snippet)\n",
" offset += len(snippet)\n",
" return responses"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "a37858c9-d185-41a3-ab43-fbd1dce3a1e1",
"metadata": {},
"outputs": [
{
"name": "stdin",
"output_type": "stream",
"text": [
" Guten Morgen, ich danke Ihnen viel Mals, wie besprochen schicke ich Ihnen nun die Hausarbeit. Spannend ist in der computer Semiotik die Evolutions des Icons: Icons in der digitalen Welt Sie können in dem Dokument auch Markierungen speichern. Liebe Grüße, Franz Krekeler\n"
]
},
{
"data": {
"text/plain": [
"[]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"text=input()\n",
"responses = get_duden(text)\n",
"responses.get(\"spellAdvices\")"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "0753fd17-742a-4abc-9e45-3d58a9df4397",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 16,\n",
" 'offset': 1215,\n",
" 'originalError': 'Machine-Learning',\n",
" 'proposals': [],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 1215,\n",
" 'text': 'Machine-Learning',\n",
" 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '901',\n",
" 'errorMessage': 'Bitte prüfen Sie, ob ein Komma eingefügt werden muss.',\n",
" 'shortMessage': 'Hier ein Komma einfügen?',\n",
" 'label': 'Komma einfügen?',\n",
" 'labelInline': 'Komma einfügen?',\n",
" 'length': 16,\n",
" 'offset': 1537,\n",
" 'originalError': 'interessant sich',\n",
" 'proposals': ['interessant, sich'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'comma insertion KI with >=0.8 and KI output',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '901',\n",
" 'errorMessage': 'Bitte prüfen Sie, ob ein Komma eingefügt werden muss.',\n",
" 'shortMessage': 'Hier ein Komma einfügen?',\n",
" 'label': 'Komma einfügen?',\n",
" 'labelInline': 'Komma einfügen?',\n",
" 'length': 11,\n",
" 'offset': 2129,\n",
" 'originalError': 'bedeutet es',\n",
" 'proposals': ['bedeutet, es'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'comma insertion KI with >=0.8 and KI output',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '155',\n",
" 'errorMessage': 'Falls es sich hier um einen eingeschobenen Relativsatz handelt, wird er in Kommas eingeschlossen.\\n\\nEinen Relativsatz erkennt man daran, dass er durch ein Relativpronomen (der, die, dessen, welchem, welcher etc.) oder durch ein relatives Adverb (wie, was etc.) eingeleitet wird und das finite Verb am Ende steht: Es gibt Dinge, die (Relativpronomen) man nicht erklären kann (finites Verb), und das wird wohl auch so bleiben.\\n\\nWenn der Relativsatz am Ende des Satzes steht, wird er durch ein Komma abgetrennt: Es gibt Dinge, die (Relativpronomen) man nicht erklären kann (finites Verb). Dafür haben wir eine Lösung, die (Relativpronomen) Sie überzeugen wird (finites Verb). Zu gern wüsste ich, wie (relatives Adverb) sie entschieden hat.',\n",
" 'shortMessage': 'Hier Kommas einfügen?',\n",
" 'label': 'Komma einfügen?',\n",
" 'labelInline': 'Komma einfügen?',\n",
" 'length': 10,\n",
" 'offset': 2166,\n",
" 'originalError': 'gekauft in',\n",
" 'proposals': ['gekauft, in'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'comma insertion KI with >=0.8 and KI output',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 7,\n",
" 'offset': 2439,\n",
" 'originalError': 'Machine',\n",
" 'proposals': ['Maschine'],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 2439, 'text': 'Machine', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '901',\n",
" 'errorMessage': 'Bitte prüfen Sie, ob ein Komma eingefügt werden muss.',\n",
" 'shortMessage': 'Hier ein Komma einfügen?',\n",
" 'label': 'Komma einfügen?',\n",
" 'labelInline': 'Komma einfügen?',\n",
" 'length': 12,\n",
" 'offset': 2765,\n",
" 'originalError': 'sind bessere',\n",
" 'proposals': ['sind, bessere'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'comma insertion KI with >=0.8 and KI output',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '131',\n",
" 'errorMessage': 'Falls dieses Wort nicht als Substantiv gebraucht wird und auch kein Teil eines Eigennamens ist, wird es kleingeschrieben. Ein Wort, das nicht zur Wortart Substantiv gehört, wird dann als Substantiv verwendet, wenn es Kern einer Wortgruppe mit Artikel (der, die, das, ein, eine), Artikelwort (alle, manches) oder Adjektiv/Partizip (alt/misslungen) ist: im Voraus bezahlen, sich in das kleine Schwarze werfen.\\n\\nAuch der Kern einer Wortgruppe mit einem oder mehreren Genitiv- oder Präpositionalattributen wird großgeschrieben: Neues (Kern) vieler Art (Genitivattribut) aus Aachen (Präpositionalattribut).\\n\\nEin Eigenname ist der Name einer einzelnen Gegebenheit (einer Person, eines Landes, einer Institution u. Ä.). In mehrteiligen Eigennamen schreibt man das erste Wort groß und alle weiteren Wörter außer Artikel, Präpositionen und Konjunktionen: die Deutsche Bahn. Aber: Sie schreibt ein Buch über deutsche Geschichte.',\n",
" 'shortMessage': 'Hier kleinschreiben?',\n",
" 'label': '',\n",
" 'labelInline': '',\n",
" 'length': 4,\n",
" 'offset': 2991,\n",
" 'originalError': 'Eine',\n",
" 'proposals': ['eine'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 1,\n",
" 'type': 'gram',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 14,\n",
" 'offset': 3016,\n",
" 'originalError': 'Spieler-Skills',\n",
" 'proposals': [],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3016, 'text': 'Spieler-Skills', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '131',\n",
" 'errorMessage': 'Falls dieses Wort nicht als Substantiv gebraucht wird und auch kein Teil eines Eigennamens ist, wird es kleingeschrieben. Ein Wort, das nicht zur Wortart Substantiv gehört, wird dann als Substantiv verwendet, wenn es Kern einer Wortgruppe mit Artikel (der, die, das, ein, eine), Artikelwort (alle, manches) oder Adjektiv/Partizip (alt/misslungen) ist: im Voraus bezahlen, sich in das kleine Schwarze werfen.\\n\\nAuch der Kern einer Wortgruppe mit einem oder mehreren Genitiv- oder Präpositionalattributen wird großgeschrieben: Neues (Kern) vieler Art (Genitivattribut) aus Aachen (Präpositionalattribut).\\n\\nEin Eigenname ist der Name einer einzelnen Gegebenheit (einer Person, eines Landes, einer Institution u. Ä.). In mehrteiligen Eigennamen schreibt man das erste Wort groß und alle weiteren Wörter außer Artikel, Präpositionen und Konjunktionen: die Deutsche Bahn. Aber: Sie schreibt ein Buch über deutsche Geschichte.',\n",
" 'shortMessage': 'Hier kleinschreiben?',\n",
" 'label': '',\n",
" 'labelInline': '',\n",
" 'length': 4,\n",
" 'offset': 3067,\n",
" 'originalError': 'Eine',\n",
" 'proposals': ['eine'],\n",
" 'synonyms': [],\n",
" 'occurrences': [],\n",
" 'occurrenceIndex': 2,\n",
" 'type': 'gram',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 13,\n",
" 'offset': 3072,\n",
" 'originalError': 'Data-Cleaning',\n",
" 'proposals': [],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3072, 'text': 'Data-Cleaning', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 7,\n",
" 'offset': 3139,\n",
" 'originalError': 'Machine',\n",
" 'proposals': ['Maschine'],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3139, 'text': 'Machine', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '166',\n",
" 'errorMessage': 'Falls es sich hier um das Ende eines Satzes handelt, der keine Überschrift oder frei stehende Zeile darstellt, wird ein Satzschlusszeichen gesetzt: Er fährt heute nach Rom. Dein Angebot nehme ich gerne an. Bist du des Wahnsinns fette Beute?',\n",
" 'shortMessage': 'Hier ein Satzschlusszeichen ergänzen?',\n",
" 'label': 'Fehlendes Satzzeichen hinzufügen?',\n",
" 'labelInline': 'Satzzeichen hinzufügen?',\n",
" 'length': 1,\n",
" 'offset': 3282,\n",
" 'originalError': '3',\n",
" 'proposals': ['3.'],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3282, 'text': '3', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '111',\n",
" 'errorMessage': 'Das erste Wort eines selbstständigen Satzes wird großgeschrieben: Wir fliegen nach Mexiko. Ich war noch nie dort. Er soll kommen. Und zwar soll er sofort kommen.',\n",
" 'shortMessage': 'Bitte am Satzanfang großschreiben.',\n",
" 'label': '',\n",
" 'labelInline': '',\n",
" 'length': 6,\n",
" 'offset': 3284,\n",
" 'originalError': 'stellt',\n",
" 'proposals': ['Stellt'],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3284, 'text': 'stellt', 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '111',\n",
" 'errorMessage': 'Das erste Wort eines selbstständigen Satzes wird großgeschrieben: Wir fliegen nach Mexiko. Ich war noch nie dort. Er soll kommen. Und zwar soll er sofort kommen.',\n",
" 'shortMessage': 'Bitte am Satzanfang großschreiben.',\n",
" 'label': '',\n",
" 'labelInline': '',\n",
" 'length': 3,\n",
" 'offset': 3318,\n",
" 'originalError': 'und',\n",
" 'proposals': ['Und'],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3318, 'text': 'und', 'synonyms': []}],\n",
" 'occurrenceIndex': 2,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''},\n",
" {'errorCode': '21',\n",
" 'errorMessage': 'Diese Schreibweise ist unbekannt. Bitte überprüfen Sie die Rechtschreibung dieses Wortes.',\n",
" 'shortMessage': 'Dieses Wort korrigieren?',\n",
" 'label': 'Schreibweise unbekannt',\n",
" 'labelInline': '',\n",
" 'length': 21,\n",
" 'offset': 3326,\n",
" 'originalError': 'Backtesting-Strategie',\n",
" 'proposals': [],\n",
" 'synonyms': [],\n",
" 'occurrences': [{'offset': 3326,\n",
" 'text': 'Backtesting-Strategie',\n",
" 'synonyms': []}],\n",
" 'occurrenceIndex': 0,\n",
" 'type': 'orth',\n",
" 'additionalInformation': ''}]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "00b2d3b5-1168-4e9a-8421-fa4474079fb2",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment