Inhaltsanalyse mit künstlicher Intelligenz: S07

Seminar #28535 im Modul Methoden: Wissenschaftstheoretische Grundlagen, Datenerhebung und Statistik, Sommersemester 2024

Marko Bachl

Freie Universität Berlin

25. 05. 2024

Herzlich Willkommen

Agenda

  1. Check-in

  2. Wiederholung: Operationalisierung in der Inhaltsanalyse: Kategoriensystem und Codebuch

  3. Operationalisierung in der Zero-Shot-Inhaltsanalyse: Vom Codebuch zum Prompt

  4. Kommunikation mit der OpenAI API

  5. Aufgaben bis zur nächsten Woche

Check-in

Folien der heutigen Sitzung

Wiederholung: Operationalisierung in der Inhaltsanalyse: Kategoriensystem und Codebuch

Forschungsprozess der Inhaltsanalyse

Wiederholung: Kategoriensystem und Codebuch

Vorlesung Wissenschaftstheoretische Grundlagen und Datenerhebung, Prof. Emmer

Wiederholung: Kategoriensystem und Codebuch

Vorlesung Wissenschaftstheoretische Grundlagen und Datenerhebung, Prof. Emmer

Wiederholung: Kategoriensystem und Codebuch

  • Ausführliche Beschreibung in Rössler (2017), Kapitel 6-9

  • Beispiel-Codebuch zum Lehrbuch

  • Zentraler Unterschiede zu automatisierten Verfahren:

    • Meistens Erfassung (sehr) vieler Kategorien in einem Durchgang, mehrere Codierduchgänge sehr aufwändig.
    • Auch Vertrauen auf geteiltes Kontextwissen der Codierenden: “I know it when I see it”; Galt lange nicht für automatisierte Verfahren — Umdenken mit LLMs?
    • Neben expliziter Dokumentation im Codebuch auch implizite Vermittlung in Schulung und Austausch unter Codierenden

Fragen?

Operationalisierung in der Zero-Shot-Inhaltsanalyse: Vom Codebuch zum Prompt

Prompts in der Zero-Shot-Inhaltsanalyse

Prompt: Anweisung an ein KI-Modell, wie es eine bestimmte Aufgabe lösen soll.

  • Wird in menschlicher Sprache formuliert

  • Muss berücksichtigen, dass es trotzdem an ein Computermodell gerichtet ist

Prompts in der Zero-Shot-Inhaltsanalyse

(Törnberg, 2024, Fig. 1)

Bestandteile eines Prompts

  • Kontext: Einleitung, Hintergrundinformationen, Definitionen, ggf. Rolle

  • Aufgabe: Klassifikationsaufgabe mit spezifischen Ausprägungen

  • Einschränkungen: Vorgaben, wie die Antwort strukturiert sein soll

Bestandteile eines Prompts - Beispiel I

Wichtig

Zwischenüberschriften sind nicht Teil des Prompts! Die Formatierung dient nur der Übersichtlichkeit. Prompt wird als unformatierter Text an Modell gesendet.

Kontext

Your task is to evaluate whether a comment contains incivility.

Incivility is defined as a statement that contains any of the following features: Vulgarity, Inappropriate Language, Swearing, Insults, Name Calling, Profanity, Dehumanization, Sarcasm, Mockery, Cynicism, Negative Stereotypes, Discrimination, Threats of Violence, Denial of Rights, Accusations of Lying, Degradation, Disrespect, Devaluation.

Aufgabe

You should assign the comment a numeric label, 1 or 0.

1 The comment is incivil. It contains any of the mentioned features.

0 The comment is civil. It does not contain any of the mentioned features.

Einschränkungen

Answer in JSON format with the template below.

{
  "label": 1,
  "motivation": "The comment is incivil. It has many elements of an uncivil comment, such as name-calling, mockery, and threats of violence."
}

Bestandteile eines Prompts - Beispiel II

Wichtig

Zwischenüberschriften sind nicht Teil des Prompts! Die Formatierung dient nur der Übersichtlichkeit. Prompt wird als unformatierter Text an Modell gesendet.

Kontext I

You have two tasks. Your first task is to evaluate whether a comment contains incivility.

Incivility is defined as a statement that contains any of the following features: Vulgarity, Inappropriate Language, Swearing, Insults, Name Calling, Profanity, Dehumanization, Sarcasm, Mockery, Cynicism, Negative Stereotypes, Discrimination, Threats of Violence, Denial of Rights, Accusations of Lying, Degradation, Disrespect, Devaluation.

Aufgabe I

You should assign a numeric label, 1 or 0.

1 The comment is incivil. It contains any of the mentioned features.

0 The comment is civil. It does not contain any of the mentioned features.

Kontext II

Your second task is to guess the gender of the person to whom the comment refers.

Aufgabe II

You should assign a numeric label, 1, 2, 3, or 4.

1 male

2 female

3 non-binary or other

4 unknown

Einschränkungen

For each task, report the label and the motivation why you chose the label. Answer in JSON format with the template below.

{
  "label_incivil": 1,
  "motivation_incivil": "The comment is incivil. It has many elements of an uncivil comment, such as name-calling, mockery, and threats of violence.",
  "label_gender": 2,
  "motivation_gender": "The comment refers to a name that is mostly given to women."
}

Prompt Engeneering

Tipp

Es gibt mittlerweile unzählige Leitfäden und sogar Kurse zu diesem Thema. Die wenigsten basieren auf empirischer Evidenz. Auch ist offen, inwiefern sie Gültigkeit für neuere Modelle haben. Hinweise wie die Folgenden können der Orientierung dienen, müssen aber nicht immer und unreflektiert befolgt werden.

  • Ausgangspunkt: Beschreibung der Kategorien und Ausprägungen für menschliche Codierung

  • Struktur und Reihenfolge: Kontext, Aufgabe, Einschränkungen

  • Nummerierungen und Listen

  • “Keine Angabe”, “Unbekannt”, “Sonstiges” oder ähnliche Ausprägungen erwägen

  • Ausgabe im JSON-Format

  • KI-Tools zur Verbesserung von Prompts verwenden

  • Verhältnis von Kürze (Kosten, Fokus) und Genauigkeit beachten

  • Chain-of-Thought: Schrittweises Bearbeiten von Aufgaben mit nennen von Zwischenergebnissen. Vor allem für sehr komplexe, mehrteilige Aufgaben empfohlen. Aufwändig und vergleichsweise teuer.

  • Sprache: Englischsprachige Prompts tendenziell besser

  • Few-Shot-Klassifikation: Beispiele geben; Abwägung: Konkretere Beschreibung vs. Einengung der Bedeutung des Konstrukts

Fragen?

Kommunikation mit der OpenAI API

Kommunikation mit der OpenAI API

Drei Optionen:

  1. No code: Shiny App: Blackboard🔒, Web; BITTE NUR NUTZEN, WENN KEINE ANDERE MÖGLICHKEIT BESTEHT

  2. Few code: Vorbereitetes R-Skript: Blackboard🔒

  3. Own code: OpenAI API ist sehr gut dokumentiert: Guide, API Reference

Aufgaben bis zur nächsten Woche

Aufgaben bis zur nächsten Woche

Aufgaben

  • Theoretisch-konzeptionelle Definition der zu messenden Konstrukte
  • Erster Entwurf von Kategoriensystem und Prompt(s) für menschliche Codierung und Zero-Shot-Klassifikation
  • Aufbereitung des Materials für den Test im Seminar
    • Anleitung für Seminar-Teilnehmende
    • 2-3 Beispiele, die von Seminar-Teilnehmenden klassifiziert werden sollen
    • Textdatei mit Zero-Shot-Prompt(s), die wir mit Beispielen der Teilnehmenden testen.

Aktive Teilnahme

  • Koordination der Kategorien- und Promptentwicklung in der Arbeitsgruppe
  • Einreichen des Materials für den Test im Seminar bis Montag, 3. Juni, 9 Uhr in Blackboard Aktive Teilnahme🔒
    • Text-Datei mit Anleitung für Seminar-Teilnehmende und 2-3 Beispielen zum Test durch die Seminar-Teilnehmenden
    • Textdatei mit Zero-Shot-Prompt(s)
  • Erläuterung der Anleitungen und Moderation des Tests im Seminar

Fragen?

Aufgaben bis zur nächsten Woche

  • Theoretisch-konzeptionelle Definition
  • Kategoriensystem und Prompt(s)
  • Material für den Test im Seminar

Fragen?

Vielen Dank — bis nächste Woche

Marko Bachl

Literatur

Rössler, P. (2017). Inhaltsanalyse (3. Aufl.). UVK. https://doi.org/mqx8
Törnberg, P. (2024). Best Practices for Text Annotation with Large Language Models. arXiv. https://doi.org/gtn9qf