Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Twitter-Daten sammeln und mit Elasticsearch analysieren

Nobutake Kamiya (Universität Zürich, Universitätsbibliothek)

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Was ich hier anbiete:

  • Wie Twitter-Daten gesammelt werden (Python)
  • Einführung der Tools zur Datenanalyse (Elasticsearch)
  • Denkanstoß zur Handhabung der Daten / Datenmanagement
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Hier geht's zum Ziel

Der Link führt zu meinem lokalen Server. Deshalb funktioniert er nur von meinem PC...

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Was ich hier NICHT anbiete:

  • Eine wissenschaftliche Erkenntnis
  • Eine fachspezifische Forschungsmethode
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Tweets sammeln

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Tweets sammeln: Methode

  • Twitter API v2 - Academic Research
  • Python
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Übersicht Twitter API

Essential Elevated Academic Research
500'000 tweets / Monat 2 Mio. Tweets / Monat 10 Mio. Tweets / Monat
Full-Archive-Suche nicht möglich Full-Archive-Suche nicht möglich Full-Archive-Suche und Full-Archive-Count
xx xx Advanced search operator
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Python

Die gesamten Codes sind hier zu finden.

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Python: Query 1

Datum und Uhrzeit Japanischer Zeit auf UTC (koordinierte Weltzeit)

jst_st = datetime.datetime(2021, 3, 1, 0, 0, 0, 0, datetime.timezone(timedelta(hours=+9)))
jst_et = datetime.datetime(2021, 4, 1, 0, 0, 0, 0, datetime.timezone(timedelta(hours=+9)))

utc_st = jst_st.astimezone(timezone.utc)
utc_st = utc_st.isoformat()
utc_et = jst_et.astimezone(timezone.utc)
utc_et = utc_et.isoformat()
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Python: Query 2

Suchbedingungen

query_params = {'query': '(オリンピック lang:ja -is:retweet) OR (五輪 lang:ja -is:retweet)',
                    'tweet.fields': 'created_at,id,text,public_metrics',
                    'start_time': utc_st,
                    'end_time': utc_et,
                    'max_results': 500}

Weitere Regeln siehe hier

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Python: Data cleaning


Beispiel: Ein Tweet des IOCs (japanisch)

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Python: Data cleaning

# User-Name (Erwähungen), URL, Hash-tags und Zeilenumbrüche aus dem Tweets entfernen
    tw_text = re.sub(r'@\w+','', ['text'])
    tw_text = re.sub(r'(http|https)://[0-9a-zA-Z\./]+','', tw_text)
    tw_text = re.sub(r'#.+?(\s|$)', '', tw_text)
    tw_text = re.sub(r'\n','', tw_text)
# Kana soll immer in Fullwidth-Zeichen dargestellt werden
    tw_text = mojimoji.han_to_zen(tw_text, kana=True, digit=False, ascii=False)
# Digit und Ascii sollen immer in Halfwidth-Zeichen dargestellt werden
    tw_text = mojimoji.zen_to_han(tw_text, kana=False, digit=True, ascii=True)
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Besonderheiten von der Twitter-Daten

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Tweets sammeln - Zusammenfassung

  • Nutzungsbedingen der Daten kennenlernen!
  • Codes für Query und Data cleaning publizieren
  • Datum der Ausführung dokumentieren
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Elasticsearch (ES)

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Was ist Elasticsearch?

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Plugins für Japanisch

In diesem Beispiel werden Kuromoji und ICU für Analyzer verwendet

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Einstellung des Analyzers

  • Konfiguration kann in JSON-Format geschrieben werden
  • Char_filter (Normalisierung der Schriftzeichen, fakultativ)
  • Tokenizer (Worttrennung [z.B. N-gram], notwendig, nur ein Tokenizer anwendbar)
  • Token_filter (Wörter [z.B. Stopwörter] werden nach bestimmten Regeln gefiltert, fakultativ)
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Einstellung mit dem Beispielsatz

"そのオリンピック選手は身長196㌢という長身だった。人々はおどろいた。二〇〇〇人がオリンピックを観戦しながらコンピューターをつかっていた"

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Char_filter - Einstellung

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_kuromoji_analyzer": {
                    "type": "custom",
                    "char_filter" : ["icu_normalizer", "kuromoji_iteration_mark"],
                    "tokenizer": "keyword"
                }
            }
        }
    }
}

Der "Keyword"-Tokenizer gibt den Satz so zurück (s. hier)

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Ergebnis

そのオリンピック選手は身長196センチという長身だった。人人はおどろいた。二〇〇〇人がオリンピックを観戦しながらコンピューターをつかっていた

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Tokenizer-Einstellung

{
    "settings": {
        "analysis": {
            "analyzer": {
                "my_kuromoji_analyzer": {
                    "type": "custom",
                    "char_filter" : ["icu_normalizer", "kuromoji_iteration_mark"],
                    "tokenizer": "kuromoji_tokenizer"
                }
            }
        }
    }
}
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Ergebnis

Ergebnis in JSON-Format

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Token_filter-Einstellung 1

[...]
 "filter": ["kuromoji_baseform", "kuromoji_part_of_speech", "kuromoji_stemmer", "ja_stop", "kuromoji_number", "synonym_filter"]
                }
            },
            "filter": {
                "synonym_filter": {
                    "type": "synonym",
                    "synonyms": ["オリンピック,五輪"]
                }
            }
        }
    }
}
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Token_filter-Einstellung 2

Einige Token_filter von Kuromoji werden verwendet

  • kuromoji_baseform
  • kuromoji_part_of_speech

Zusätzlich wird der "synonym_filter" eingesetzt.

  • "オリンピック" und "五輪"
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Ergebnis

Hier

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Die endgültige Einstellung

...Falls man sich dafür interessiert... Hier

Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Elasticserach - Zusammenfassung

  • Mit ES können die große Datenmengen behandeln und analysieren werden
    • Mit API können die Daten weiter verarbeitet werden, z.B. für Netzwerkanalyse
    • Kibana (ein Plugin von ES) erlaubt eine einfache GUI-Verarbeitung
  • Die Konfiguration sollte bekannt gemacht werden
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Denkanstoß - 1

  • Bearbeitung großer Mengen von japanischen Texten ist durchaus möglich
  • Für die wissenschaftlichen Kommunikation ist die Nachvollziehbarkeit wichtig
  • Open-Data-Gedanken werden sehr wichtig
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Denkanstoß - 2

  • Falls die Rohdaten nicht publiziert werden können, sollten mindestens die Codes für Datensammlung und Verarbeitung publiziert werden
  • Für Bibliothekare ist es interessant, Information über anwendbaren Datenquellen und deren Nutzungsbedingungen zu wissen/vermitteln
Nobutake Kamiya
Japanologentag 2022, Sektion Information- und Ressourcenwissenschaften

Vielen Dank!

Nobutake Kamiya