Skip to content
Guides7 min read

Qualitatives Codieren in Potato: Codebücher, Memos und In-vivo-Codes

Ein Blick auf den QDA-Modus, die kommende Arbeitsumgebung für qualitative Datenanalyse in Potato 2.6: ein lebendiges Codebuch, In-vivo-Codierung, analytische Memos, Fälle und Volltextsuche über ein ganzes Korpus.

Potato Team

Wer schon einmal Interviewtranskripte codiert hat, kennt die Software-Geschichte. Die ernsthaften Werkzeuge für die qualitative Datenanalyse (QDA), etwa NVivo, ATLAS.ti, MAXQDA und Dedoose, sind leistungsfähig und teuer. Sie laufen auf dem Desktop, sperren das Projekt in ein proprietäres Dateiformat und machen aus Zusammenarbeit eine Lizenzverhandlung. Viele Forschende codieren am Ende doch in einer Tabellenkalkulation und verlieren auf halbem Weg den Faden, weil eine Tabelle keine Vorstellung davon hat, was ein Code ist.

Potato begann auf der anderen Seite des Zauns, als Textannotationswerkzeug für NLP- und Machine-Learning-Datensätze. Über die letzten Versionen hinweg wuchsen ihm die Bausteine zu, die ein qualitativer Workflow braucht: Spans über Passagen, ein gemeinsames Codebuch, Übereinstimmungsmaße. Die kommende Version 2.6 verknüpft sie zu einem Modus, der auf die tatsächliche Arbeitsweise qualitativ Forschender zugeschnitten ist.

Dieser Beitrag führt durch den QDA-Modus: was er einschaltet, wie die Bausteine zusammenpassen und wie eine Konfiguration aussieht. Wer die Referenz sucht, findet in der Dokumentation zum QDA-Modus die vollständige Optionsliste.

Potato im QDA-Modus, mit einem codebuchgestützten Span-Schema, dem Suchpanel Find sowie den Seitenleisten Notes und CodebookPotato im QDA-Modus

Ein Schalter, qualitative Standardeinstellungen

Der Großteil von Potatos Maschinerie ist über sehr unterschiedliche Aufgaben hinweg geteilt. Dasselbe Span-Schema, das in einem NER-Datensatz Eigennamen kennzeichnet, kann Passagen in einem Interview kennzeichnen. Der Unterschied zwischen diesen beiden Aufgaben liegt nicht im Funktionsumfang, sondern in der Haltung. Ein Crowdsourcing-NER-Projekt will ein festes Labelset und Überlappungs-Sampling, um die Übereinstimmung zu messen. Eine Forscherin, die allein zwanzig Interviews codiert, will Codes im Lesen erfinden und private Notizen zu ihren Beobachtungen führen.

Der QDA-Modus ist der eine Schalter, der diese zweite Haltung voraussetzt:

yaml
qda_mode:
  enabled: true            # compose codebook + memos + cases + search

qda_mode.enabled: true zu setzen stellt Potatos universelle Funktionen auf ihre qualitativen Standardwerte um. Das Codebuch wird während des Codierens bearbeitbar, statt gesperrt zu sein. Die Memo-Seitenleiste geht an. Fälle gehen an, mit automatischer Erkennung. In-vivo-Codierung wird auf jedem Span-Schema verfügbar, das Sie als codebuchgestützt markieren.

FunktionStandardvorgabeIm QDA-Modus
Codebuch-Modusfixedopen: Codes laufend hinzufügen, umbenennen, umfärben, verschieben oder löschen
Memo-Seitenleisteausan
Fälleausan, mit automatischer Erkennung
Annotator-Suche-und-Beanspruchungausverfügbar (search.annotator_claim: true)
Taste für In-vivo-Codierungiaktiv auf jedem codebuchgestützten Span-Schema

Nichts davon ist festgezurrt. Der QDA-Modus ändert nur den Ausgangspunkt; jede Vorgabe lässt sich überschreiben. Die einzige Ausnahme ist eine Leitplanke: Wenn Sie ein Crowdsourcing-Backend wie Prolific oder Mechanical Turk anhängen, sperrt Potato das Codebuch zwangsweise auf fixed, damit bezahlte Annotatoren das gemeinsame Schema nicht hinter Ihrem Rücken umbauen können.

Die Bausteine

Ein lebendiges Codebuch

Beim Codieren im Stil der Grounded Theory ist das Codebuch nichts, was Sie vorab schreiben. Es wächst beim Lesen. Sie bemerken eine wiederkehrende Idee, benennen sie, und eine Woche später merken Sie, dass zwei Ihrer Codes eigentlich derselbe sind, und führen sie zusammen.

Ein Span-Schema wird Teil des Codebuchs, wenn Sie es markieren:

yaml
annotation_schemes:
- annotation_type: span    # span + codebook = qualitative coding
  name: codes
  description: Highlight a passage and apply (or mint, via `i`) a code
  codebook: true
  labels: [access barriers, cost concerns, provider trust]

Diese labels sind ein Anfangssatz, kein Käfig. Im Codebuch-Modus open fügen Sie Codes während der Arbeit hinzu, benennen sie um, färben sie um, verschieben und löschen sie. Der Modus extensible lässt Codierende Codes hinzufügen, aber gemeinsame nicht löschen; fixed ist der abgeschlossene Klassiker, für den Fall, dass Sie sich auf ein Schema festgelegt haben.

In-vivo-Codierung

Die In-vivo-Codierung nimmt die eigenen Worte der teilnehmenden Person als Code. Jemand sagt „Ich habe einfach keinen Rückruf bekommen", und „keinen Rückruf bekommen" wird wortwörtlich zum Code.

Wählen Sie eine Passage auf einem codebuchgestützten Span-Schema aus und drücken Sie die In-vivo-Taste (codebook_invivo_key, Standard i). Potato prägt direkt aus dem markierten Text einen Code. Tun Sie das über ein ganzes Korpus hinweg, wird Zersplitterung zum Feind: Sie enden mit „kein Rückruf", „keinen Rückruf bekommen" und „nie zurückgerufen" als drei Codes für eine einzige Idee. Der Code-Komponist wirkt dem entgegen, indem er beim Tippen nahezu identische Codes einblendet, damit Sie einen vorhandenen Code wiederverwenden, statt einen weiteren zu erzeugen.

Memos

Codieren ohne Notizen verliert die Begründung hinter den Codes. Memos sind analytische Notizen, die an eine Instanz oder an eine bestimmte Textauswahl geheftet sind. Sie können sie privat halten oder mit dem Team teilen. Hier wohnt das „Warum habe ich das so codiert", und sie werden zusammen mit den Zitaten exportiert, damit Ihre Prüfspur das Projekt überdauert.

Fälle

Ein Fall gruppiert Auszüge zu einer Analyseeinheit: eine teilnehmende Person, ein Dokument, ein Vor-Ort-Besuch. Sind die Auszüge gruppiert, werden Attribute auf Fallebene hochgezogen, sodass Sie Codes gegen Teilnehmervariablen tabellieren können. Trägt jedes Interview ein condition-Feld, kann die Admin-Kreuztabelle zeigen, wie sich ein Code über die Bedingungen verteilt.

yaml
cases:
  enabled: true
  key: participant_id
  attributes: [condition]

Suche

Ein Korpus ist nur navigierbar, wenn Sie zu jeder Erwähnung eines Wortes springen können. Der QDA-Modus enthält FTS5-Volltextsuche über den gesamten Datensatz. Mit annotator_claim: true kann ein Codierender jeden Suchtreffer direkt in die eigene Warteschlange ziehen — so bewegt sich eine einzelne analysierende Person nach Thema durch ein Korpus, statt es strikt von vorn bis hinten zu lesen.

yaml
search:
  enabled: true
  annotator_claim: true

Wie alles zusammenspielt

Unter der Haube lesen und schreiben Codebuch, Memos, Fälle und Suche alle dieselbe Projektdatenbank, sodass ein an einer Stelle geprägter Code überall sonst sofort durchsuchbar und exportierbar ist.

QDA-Modus-Architektur: ein gemeinsamer Projektspeicher unter Codebuch, Memos, Fällen und Suche, mit dem In-vivo-CodierungsflussWie der QDA-Modus seine Bausteine über einem gemeinsamen Speicher zusammensetzt

Eine vollständige Konfiguration

Hier ist eine kleine, aber vollständige Studie. Die Blöcke cases, search und Memo sind optional (der QDA-Modus schaltet Fälle und Memos bereits ein), Sie schreiben sie also nur, um eine Vorgabe wie den Fallschlüssel zu justieren.

yaml
annotation_task_name: My Qualitative Study
task_dir: .
output_annotation_dir: annotation_output/
data_files:
- data/interviews.json
item_properties:
  id_key: id
  text_key: text
 
qda_mode:
  enabled: true
 
codebook_invivo_key: i
 
cases:
  enabled: true
  key: participant_id
  attributes: [condition]
 
search:
  enabled: true
  annotator_claim: true
 
annotation_schemes:
- annotation_type: span
  name: codes
  description: Highlight a passage and apply (or mint, via `i`) a code
  codebook: true
  labels: [access barriers, cost concerns, provider trust]

Führen Sie sie nach der Installation von 2.6 aus dem Repository-Stamm aus:

bash
python potato/flask_server.py start examples/advanced/qda-mode-example/config.yaml -p 8000

Ihre Codierung wieder herausholen

Zwei Exporter verwandeln codierte Daten in die Ergebnisse, die ein qualitatives Paper braucht:

  • codebook liefert eine Zeile pro Code, mit Hierarchie, Beschreibung, Farbe und Verwendungszahl.
  • quotation_report liefert eine Zeile pro codiertem Span: das Zitat, seine Zeichen-Offsets, die Quellinstanz und die codierende Person. Mit include_memos=true werden Ihre Memos angehängt.
bash
python -m potato.export config.yaml --format quotation_report \
  --option include_memos=true -o quotations.csv

Codieren mehrere Personen dasselbe Material, brauchen Sie eine Reliabilitätszahl. Potato berichtet Cohens und Fleiss' Kappa über die Codes, was in Version 2.5 zusammen mit diesen Exportern kam.

Wo das hingehört

Der QDA-Modus versucht nicht, NVivo auf jeder Achse funktional zu übertreffen. Was er bietet, ist ein anderer Tausch: kostenlos, quelloffen, webbasiert und kollaborativ, untergebracht im selben Werkzeug wie Ihre Machine-Learning-Annotation und Ihre Agent-Evaluierung. Wenn Ihr Labor Potato ohnehin zum Labeln betreibt, ist qualitatives Codieren jetzt nur noch einen Konfigurationsblock entfernt statt eine separate, lizenzierte Desktop-Software.

Der QDA-Modus erscheint in Potato 2.6. Die vollständige Dokumentation deckt jede Option ab, und der Leitfaden zur Interrater-Übereinstimmung erläutert die Reliabilitätsmaße.