Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ss19:laborbuch [2019/06/13 16:53] anja00 |
ss19:laborbuch [2019/07/01 13:39] (aktuell) anja00 |
||
---|---|---|---|
Zeile 75: | Zeile 75: | ||
---- | ---- | ||
- | 13.06.2019 | + | **13.06.2019** |
Jojo, Leon, Anja | Jojo, Leon, Anja | ||
html files auslesen, Liste mit Autoren erstellt, jeder Text als langer String (html einlesen.py) | 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.) | + | <del>Klassen</del> 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:** | ||
+ | |||
+ | * für tf-Wert:(nicht die absolute term frequency sondern die normalisierte): | ||
+ | * 1. anzahl-dokumente * anzahl-wörter-in-diesem-Dokument * ||| **häufigkeit eines wortes in einem dokument** | ||
+ | * 2. anzahl-dokumente * ||| **maximale Häuigkeit eines Wortes in diesem Dokument** | ||
+ | |||
+ | * für idf wert: | ||
+ | * 3. **anzahl der dokumente** | ||
+ | * 4. anzahl verschiedener Wörter * ||| **anzahl der dokumente, die dieses wort beinhalten** | ||
+ | |||
+ | * diese ergeben dann: | ||
+ | * anzahl-dokumente * anzahl-wörter-in-diesem-Dokument * ||| **tf** = 1./2. | ||
+ | * anzahl verschiedener Wörter * ||| **idf** = ln(3./4.) | ||
+ | |||
+ | * tfidf-Wert = tf*idf | ||
+ | |||
+ | |||
+ | **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 | ||