Laborbuch

16.05.2019 Anja, Leon, Jojo

Texte Autoren zuordnen. Erstmal nur deutsche Texte. Grundsätzlich auch nur Vergleich Texte einer Sprache. Frage: Was sind unser Input und Output? z.b. Input = 2 Autoren und ein Text. Oder nur ein Text, der zu einem Autor gehört, den unser Programm schon kennt.

Analyse: Worthäufigkeiten, Verwendung Wortarten, Satzstruktur (Nebensätze?, wie lang sind die Sätze? etc.)

Project Gutenberg:https://www.gutenberg.org/ (nur via VPN erreichbar in DE)

Natural Language Toolkit: https://www.nltk.org/ https://www.nltk.org/book/

TensorFlow: https://www.tensorflow.org/ (Machine Learning/Deep Learning Database)


23.05.2019 Anja, Leon, Jojo

https://pdfs.semanticscholar.org/5c2b/6876df693e096c6c150a5b0d2a2c05043003.pdf (← ein Paper ws sich mit unserer Problematik auseinandersetzt) https://www.researchgate.net/post/What_is_the_most_appropriate_similarity_measure_to_choose_in_high_dimensional_spaces (← antwort auf skalierungsproblem)

Trainieren an 90% der Texte eines Autors, 10% als Testmenge Menge an Autoren die unser Programm kennt, Texte diesen Autoren zuordnen Was passiert wenn ein Text von einem Autor den er nicht kennt? (Ähnlich zu welchem Autor?)

90% aller Texte auf Project Gutenberg im Englischen (~2011) von 25000 Bücher 59000 Bücher (Stand 2019) 36000 Bücher (Stand 2019) DE Hauptseite (alle auf Deusch?) –> Analyse Englischer Texte / nope Stefan's Library

  1. Schritt: Bibliothek (Texte!)
  2. Schritt: Bag of words

TSNE scikit-learn (Paket machinelearning u. Klassifikation)


06.06.2019

Folgendes haben wir gelernt: -Unser Projekt lässt sich auf das Problem der Klassifikation zurückführen -für die Datenbank an Texten erstellen wir einen Vektor der alle Wörter aller Dokumente nach tf-idf sortiert damit die Reihenfolge für alle individuellen Vektoren gleich bleibt →

Nächstes Mal → wie bauen wir unser Modell auf? Logistische Regression?


13.06.2019 Jojo, Leon, Anja

html files auslesen, Liste mit Autoren erstellt, jeder Text als langer String (html einlesen.py)

Klassen Dictionary erstellen um nicht jedes Mal Texte aus der file-directory ziehen zu müssen. (Autoren und ihre Texte sind momentan extern (aka nicht in Python) gespeichert. D.h. um mit den Texten zu arbeiten müssen wir auf den Speicherort zu greifen. Und das ist anstrengend und kostet Rechenzeit und ist doof.)


20.06.2019 Jojo, Leon, Anja

Folgende Variablen müssen wir erfassen:

Ziel für unsere Datensammlung:

wir erstellen einen Vektor der alle wörter aller dokumente nach tf-idf sortiert damit die reihenfolge für alle individuellen vektoren gleich bleibt

→ es werden pro text ein Vektor für jeden autor erstellt. es entstehen autoren-vektoren-wolken

Ziel für den Umgang mit neuen unbekannten Texten:

Text wird eingelesen → Liste/Bibliothek mit allen Wörtern wird nach Häufigkeit erstellt.

→max(Wort,Dokument), anzahl der dokumente, anzahl der dokumente, die dieses wort beinhalten

→ ein vektor wird erstellt, der den Text repräsentiert. Ein Eintrag des Vektors = tf-idf wert

→ alle vektoren werden normalisiert und mit dem Neuen verglichen indem der Abstand gemessen wird(oder k-nearest neighbour, oder eine andere Art der Klassifikation)

Wörterbuch, alle Autoren + dazugehörige Texte: Schnitt vs. Vereinigung (Schnitt: alle Wörter aus dieser Liste sind garantiert in jedem Text, aber seltenere Wörter fallen weg; Vereinigung: alle Wörter die in allen Texten auch nur einmal vorkommen –> Gewichtung häufigere Wörter, mittelhäufige Wörter, seltene Wörter?


27.06.2019 Jojo, Anja, Leon

Stemmer: zu jedem Wort den „Wortstamm“ finden Bsp: kategorisch zu kategor, für Deutsch Snowball http://snowball.tartarus.org/algorithms/german/stemmer.html

Lemmatizer: zu jedem Wort den Infinitiv finden Bsp: Kategorien zu Kategorie, für Deutsch germalemma https://github.com/WZBSocialScienceCenter/germalemma

→ kürzere Wortliste, aber signifikante Verwendung von Genitiv o.Ä. fällt weg, Stemmer u. Lemmatizer sind nicht perfekt