# Interviews Going Open! Pseudonymization Strategies: Protecting Data While Preserving Utility

Naomi Truan, Sophie Granger, Jo Lychnara

► To cite this version:

Naomi Truan, Sophie Granger, Jo Lychnara. Interviews Going Open! Pseudonymization Strategies: Protecting Data While Preserving Utility. 2024. halshs-04842999

HAL Id: halshs-04842999

https://shs.hal.science/halshs-04842999v1

Preprint submitted on 17 Dec 2024

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Research Data Management Workflow

## Pseudonymizing Interviews in the Humanities & Social Sciences

Naomi Truan, Sophie Granger, Jo Lychnara

<figure><img src="image_2.png" /><figcaption>Fig 1: Overview of the pseudonymization scheme 'Interviews Going Open'!</figcaption></figure>

Figure by Sophie Granger
The goal of this **technical document** detailing the pseudonymization scheme is to outline the **specific methods and processes used to pseudonymize data** in a way that ensures privacy while maintaining data utility for research or analysis.

We define the **types of identifiers removed or masked**, describe the techniques applied to reduce the risk of re-identification, and provide guidelines on managing indirect identifiers.

A separate document (Truan, Granger & Lychnara 2024) presents a step-by-step description of the research data workflow with time stamps: [halshs-04743263](https://halshs-04743263).

**Cite as:** Truan, Granger & Lychnara 2024, *Interviews Going Open! Pseudonymization Strategies: Protecting Data While Preserving Utility*.

**Last update:** 17.12.2024
# Project Overview

## Pseudonymizing Interviews in the Humanities & Social Sciences

**Title:** Interviews Going Open! Pseudonymization Strategies: Protecting Data While Preserving Utility

**Keywords:** qualitative research, interviews, sensitive information, pseudonymization, anonymization, guidelines, funding, time management, grants

**Key values:** open science, open data, FAIR principles

**Project (origin, grants):** This document has been produced as part of the Leiden University Centre for Digital Humanities Small Grant 2024 for the project "Interviews Going Open! Developing Interdisciplinary Guidelines on How to Publish Qualitative Interview Data as Open Data".

**Authors:** Project leader: Dr Naomi Truan; Research Assistants: Sophie Granger and Jo Lychnara. See below for Author contribution CRediT statement.

**Abstract:** The project *Interviews Going Open!* addresses the challenge of sharing sensitive interview data within the humanities and social sciences. Interviews are valuable sources of information, but concerns about privacy and ethical considerations often hinder their open accessibility. Another common challenge is how to make "thick description" (a property of qualitative fieldwork) suitable for metadata (which is often criticized as oversimplification in qualitative research). This handout documents the process, including the number of hours needed for each task and our questions as they arise. In doing so, we identify challenges faced by qualitative researchers and offer lowkey, realistic, practical, and tailored solutions based on a corpus of 25 interviews in a small and possibly easily recognizable community.

**Author contribution CRediT statement:** (see Allen, O'Connell & Kiermer 2019)

* denotes equal contribution

Conceptualization: Naomi Truan

Project Administration and Supervision: Naomi Truan

Writing - Original Draft Preparation: Naomi Truan, Sophie Granger, Jo Lychnara

Writing - Review & Editing: Naomi Truan, Sophie Granger, Jo Lychnara

Pseudonymizing: *Sophie Granger, *Jo Lychnara

Data management: *Naomi Truan, *Jo Lychnara

Data formatting: *Sophie Granger, *Jo Lychnara

Coding: Sophie Granger

Figures: Sophie Granger

Acknowledgments: Andrew Hoffman & Femmy Admiraal advised us during the process.
# Table of Contents

## Pseudonymizing Interviews in the Humanities & Social Sciences

<table><tr><td>Project Overview</td><td>3</td></tr><tr><td>Pseudonymization Scheme</td><td>6</td></tr><tr><td>The interview data</td><td>6</td></tr><tr><td>Micro and macro pseudonymization</td><td>6</td></tr><tr><td>Micro edits (one line, on sentence level)</td><td>7</td></tr><tr><td>Macro edits (multiline, on paragraph level)</td><td>7</td></tr><tr><td>Categories</td><td>8</td></tr><tr><td>People</td><td>8</td></tr><tr><td>Names</td><td>8</td></tr><tr><td>Place of origin</td><td>9</td></tr><tr><td>Nationality</td><td>10</td></tr><tr><td>Languages used</td><td>10</td></tr><tr><td>Subjective data</td><td>10</td></tr><tr><td>Other people</td><td>10</td></tr><tr><td>Family</td><td>11</td></tr><tr><td>Occupation</td><td>11</td></tr><tr><td>Education</td><td>12</td></tr><tr><td>Time indicators</td><td>13</td></tr><tr><td>Dates</td><td>13</td></tr><tr><td>Age Groups</td><td>13</td></tr><tr><td>Adult groups</td><td>13</td></tr><tr><td>Ages of non-interviewees</td><td>14</td></tr><tr><td>Other biographical information</td><td>14</td></tr><tr><td>Geographic locations</td><td>14</td></tr><tr><td>Regions, municipalities</td><td>14</td></tr><tr><td>Cities, region</td><td>15</td></tr><tr><td>Area of interest for research project</td><td>15</td></tr><tr><td>Practical tips</td><td>17</td></tr><tr><td>File formatting for the pseudonymization process</td><td>17</td></tr><tr><td>Phase 1: Explore the data</td><td>17</td></tr><tr><td>Phase 2: Systematically annotate sensitive details</td><td>17</td></tr><tr><td>Phase 3: Develop and implement the pseudonymization scheme</td><td>19</td></tr><tr><td>Phase 4: Reformate transcriptions and make final files</td><td>21</td></tr><tr><td>Editing schemes</td><td>22</td></tr><tr><td>Labeling sensitive information</td><td>22</td></tr><tr><td>Naming the labels</td><td>23</td></tr></table>
<table><tr><td>Annotation marks</td><td>23</td></tr><tr><td>Special characters</td><td>24</td></tr><tr><td>Automated tasks</td><td>25</td></tr><tr><td>Search and replace problems</td><td>25</td></tr><tr><td>Handy coding skills</td><td>25</td></tr><tr><td>Unicode disparities</td><td>26</td></tr><tr><td>Hybrid workflows for GUI and coding</td><td>26</td></tr><tr><td>Text transcription and tabular data</td><td>27</td></tr><tr><td>Advanced search functions</td><td>27</td></tr><tr><td>Code snippet</td><td>28</td></tr><tr><td>Flag words (in French)</td><td>30</td></tr><tr><td>References cited</td><td>31</td></tr></table>
# Pseudonymization Scheme

## Pseudonymizing Interviews in the Humanities & Social Sciences

### The interview data

The data used to experiment with this workflow originates from a research project on the language ideologies of French speakers who also use German in Berlin<fnref n="1" /> (Truan 2024; Truan forthcoming). The corpus consists of 25 semi-structured interviews in French (mean length: 50') which were audio- or video-recorded. The corpus amounts to around 30 hours of recorded interviews, transcribed in 160,333 words or 477 pages (A4, Word).

The interview data in a nutshell:

* 25 semi-structured interviews in French

* mean length: 50'

* around 30 hours of recorded interviews

* 160,333 words or 477 pages

The data collection and transcription were handled before this project, while Naomi Truan was working at the University of Leipzig (grant: Leipzig Flexible Fund; student assistants: Jun An Chen, Matilde Mondo). The interviews were transcribed thoroughly (word level), but may still present minor inaccuracies (e.g. inaudible words).

**Disclaimer:** The interview data is provided in Word format rather than an interoperable format such as XML or TEI due to time constraints and a limited budget. While XML or TEI would offer enhanced flexibility and long-term preservation benefits, the resources required to implement these formats were not available during the project. Prioritizing the timely completion of the pseudonymization, we opted for a widely accessible and manageable format that meets the immediate needs of the project. However, meeting interoperability standards remains the goal for future data management.

The second phase, which is the object of this workflow, was made possible thanks to the LUCDH Small Grant 2024, with the pseudonymization workflow as a target.

### Micro and macro pseudonymization

Our workflow targeted small pieces of sensitive information, **at the sentence level**. Being short, these could conveniently be put into rows and cells, streamlining the workflow.

<footnote n="1">¹ Hence the special status of Berlin when it comes to pseudonymizing locations (see decision tree, p. 1).</footnote>
## Micro edits (one line, on sentence level)

These edits do not affect the general reading flow of the text.

* **"Deleted"**: information that is too sensitive and cannot be easily pseudonymized; information about people mentioned by the interviewees.

**Transcribed:** You can contact me further on @sarahgermanylife.

**Pseudonymized:** You can contact me further on {sensitive data deleted}.

**Transcribed:** My colleague at the bakery comes from Luxembourg and lives now with a French roommate in Potsdam.

**Pseudonymized:** My colleague {sensitive data deleted}.

* **"Replaced"**: following a rule or a table, the sensitive data was substituted with an equivalent information point.

**Transcribed:** John moved there in the Fall.

**Pseudonymized:** Denis moved there in the Fall.

**Transcribed:** I'm 36 years old.

**Pseudonymized:** I'm 35-41 years old.

* **"Paraphrased"**: not a simple substitution, outside of the scope of the replacement tables, overall sentence structure had to be changed.

**Transcribed:** I moved with my mother after her divorce.

**Pseudonymized:** I moved with my mother after a change in her personal situation.

**Transcribed:** He dislikes he's called Smith now at work.

**Pseudonymized:** He dislikes he's called an english family name now at work.

## Macro edits (multiline, on paragraph level)

In other projects, pseudonymization edits could happen on a bigger scale, e.g. a **paragraph containing an abundance of sensitive information**. These situations require other approaches. DeLacey (2024) described two pseudonymization methods to deal with sensitive data on a larger scope:
* **"Summarize"**: take a bigger part that is sensitive and make a summary of it. The summary only contains the non-sensitive information, or vaguely explains the sensitive information without the details. This approach can be used when the texts become incomprehensible due to the removed parts or if the editing will be too time consuming.

* **"Quote"**: for sensitive information that for the research purpose has to be kept, some obfuscation can be created by separating the sensitive elements. One person could be split into two distinct pseudonyms, given the impression that we are dealing with two different interviewees. Instead of targeting the sensitive information, remove the information that makes it possible to connect the two parts to each other. Make sure that the metadata does not show this truncation (atypical length, same date and place). The smaller part, despite its sensitive nature, can now be used in the paper with less risks of identification, being smaller it contains less context.

We opted not to create a summary of full paragraphs, because we wanted to stay as close to the data as possible, believing that while summarizing would preserve the content, it would sacrifice the nuanced wording essential for linguistic analysis.

## Categories

This part shows the specific guidelines we used for our project the language ideologies of French speakers who also use German in Berlin (Truan 2024; Truan under review), for example with a category about places in Berlin.

Outliers always occur, sometimes we had to deviate a bit from the instructions (e.g. paraphrase instead of replace) to be able to deal with that sensitive information. In the examples some of these difficult cases are shown.

## People

### Names

Refers to names mentioned in the transcript whether they are of the interviewees or other individuals.

**Instruction**: Keep an alternative name and stay consistent throughout the document. Recurrent names should be replaced with pseudonyms. Remove the family names. Note the new names in a key file, ideally kept on separate server.
<table><caption>Key file table:</caption><thead><tr><td>original name</td><td>pseudonym</td></tr></thead><tbody><tr><td>John</td><td>Denis</td></tr><tr><td>Sarah</td><td>Emma</td></tr><tr><td>Smith</td><td>[none]</td></tr></tbody></table>

Tip: See under "Automated tasks" the subsection "Search and replace" for tips on how to prevent problems when changing the names.

<table><caption>Example with key file replacement:</caption><tr><td>Transcribed:</td><td><u>John</u> and <u>Sarah Smith</u> met in Berlin. <u>John</u> moved there in the Fall, and <u>Sarah</u> followed a year later.</td></tr><tr><td>Pseudonymized:</td><td>{<u>Denis</u>: sensitive data replaced} and {<u>Emma</u>: sensitive data replaced} met in Berlin. {<u>Denis</u>: sensitive data replaced} moved there in the Fall, and {<u>Emma</u>: sensitive data replaced} followed a year later.</td></tr></table>

<table><caption>Example with deletion:</caption><tr><td>Transcribed:</td><td>To continue the story, the <u>Smith</u> couple met in Berlin.</td></tr><tr><td>Pseudonymized:</td><td>To continue the story, the {<u>sensitive data deleted</u>} couple met in Berlin.</td></tr></table>

In some cases, finding the right micro-edit to keep the context or sense can be tricky:

<table><caption>Example with paraphrasing:</caption><tr><td>Transcribed:</td><td>The <u>Smith</u> couple met in Berlin.</td></tr><tr><td>Unclearly pseudonymized:</td><td>The {<u>sensitive data deleted</u>} couple met in Berlin. (which people in the story?)</td></tr><tr><td>Pseudonymized:</td><td>The {<u>interviewee's friends</u>, previously mentioned in <u>11:54:59</u>: sensitive data paraphrased} couple met in Berlin.</td></tr></table>

<table><caption>Example with hypernym replacement:</caption><tr><td>Transcribed:</td><td>He dislikes he's called <u>Smith</u> now at work.</td></tr><tr><td>Unclearly pseudonymized:</td><td>He dislikes he's called {<u>sensitive data deleted</u>} now at work. (called what?)</td></tr><tr><td>Pseudonymized:</td><td>He dislikes he's called {<u>an English family name</u>: sensitive data paraphrased} now at work.</td></tr></table>

## Place of origin

Helps define a person's origin and identity prior to migration. Although this can play into the identifiable data, this is a biographical point that a lot of people have in common.

**Instruction:** Use generic regions (North/South/East/West/Central of country X) instead of specific places of origin unless otherwise stated.
**Transcribed:** I grew up in Mainz.

**Pseudonymized:** I grew up in a {small town in West Germany: sensitive data replaced}.

**Transcribed:** Due to the crisis in Libya, we quit the city.

No change incorporated

## Nationality

Ties to the cultural aspects of identity.

**Instruction:** Keep all instances where nationality is mentioned, as this information is relevant to analyze the data and key to the project on migration and multilingualism.

**Transcribed:** My mother is German

No change incorporated

## Languages used

Reflects cultural and linguistic background.

**Instruction:** Keep all instances of languages used since it is a key aspect of the (in our case, sociolinguistic) analysis.

**Transcribed:** I speak German, English, and French fluently.

No change incorporated

## Subjective data

Non-factual data are not considered sensitive.

**Instruction:** Keep all instances of opinions, what-ifs, impressions about the person, hypothetical life paths.

## Other people

Refers to mentions of individuals in the narrative who were not interviewed, individuals mentioned by the interviewees, but these did not give their consent.

**Instruction:** Often these people have little identifiable information in the interviews compared to interviewees. Thus in some cases, information should be deleted without extra thought, but often it is not sensitive and can be left as is.

**Name**
Give pseudonym

Example with pseudonym replacement:
**Recurrent name**

Put pseudonym in the key file.

**Personal information (specific job, place of living)**

Delete

**Very little sensitive information:**

Not enough for identification, keep as is. If in
doubt, delete.

**Much sensitive information**

The person could be traced back by using a search
engine.

There are enough details for them to be
recognized by common acquaintances.

Delete or pseudomize that person using the
instructions below for interviewees.

**Transcribed:** My neighbor,
**John**, never moved out

**Pseudonymized:** My
neighbour, {**Jack**: sensitive
**data replaced**}, never moved
out.

Example with no deletion:

**Transcribed:** My friend from
London.

No change incorporated

Example with deletion:

**Transcribed:** My colleague at
**the bakery comes from**
**Luxembourg and lives now**
**with a French roommate in**
**Potsdam.**

**Pseudonymized:** My colleague
{**sensitive data deleted**}.

**Family**

The type of familial citation can be very specific to a person. Can influence personal motivations and experiences.

**Instruction:** Generalize family unit, number of siblings, parental situation, children.

my brother and sister → *my siblings*

half-sibling, step-sibling → *sibling*

adoptive parent, step-parent, foster parent, bio-parent → *parent*

I have one daughter → *I have a child*

**Occupation**

Defines the person's professional life.

**Instruction:** Keep general job descriptors but remove specific titles, companies or institutions. Generalize to type or sector of work.
**Transcribed:** He worked as a software engineer at Google.'

**Pseudonymized:** He worked as a software engineer at {a tech company: sensitive data replaced}.

**Transcribed:** I work in a consulting firm for the local municipality.

**Pseudonymized:** I work in {the public sector: sensitive data paraphrased}

**Transcribed:** As an aircraft engineer

**Pseudonymized:** As {a technical role: sensitive data replaced}

**Transcribed:** I'm making a living from dancing.

**Pseudonymized:** I'm making a living from {entertainment domain: sensitive data paraphrased}

## Education

Key for professional and intellectual background.

**Instruction:** Pseudonymize mentions of specific institutions or programs.

Replacement micro edit table:

<table><thead><tr><td>education corresponding to life phase</td><td>replaced data</td></tr></thead><tbody><tr><td>0-6</td><td>Pre-school</td></tr><tr><td>6-12</td><td>Primary school</td></tr><tr><td>12-18</td><td>Secondary school</td></tr><tr><td>18+</td><td>Hypernym*</td></tr></tbody></table>

* For words such as technical university, bachelor, MBA, and traineeship, you may use general words such as training or education.

Example with replacement:

**Transcribed:** I discovered that at the Kita Zebrablume.

**Pseudonymized:** I discovered that at the {pre-school: sensitive data replaced}.

Example with hypernym replacement:

**Transcribed:** We studied linguistics at UvA.

**Pseudonymized:** We studied linguistics at {a university in the Netherlands: sensitive data replaced}

Example with hypernym replacement:

**Transcribed:** When I was doing my bachelor's propedeuse,

**Pseudonymized:** When I was doing {my study's first year: sensitive data replaced},

Example with paraphrasing:

**Transcribed:** For this job I needed a LLM.

**Pseudonymized:** For this profession I needed a {specific degree in law: sensitive data paraphrased}.
# Time indicators

## Dates

Significant for understanding the timeline of life events.

**Instruction:** Keep but generalize the years into ranges. Remove specific days numbers.

Note: Dates about other persons should be treated differently, as they did give consent about their personal information, see "other people".

**Replacement micro edit table:**

<table><thead><tr><td>original data</td><td>replaced data</td></tr></thead><tbody><tr><td>xxx0</td><td>Early x0s</td></tr><tr><td>xxx1 to xxx5</td><td>Early decade</td></tr><tr><td>xxx6 to xxx9</td><td>Late decade</td></tr></tbody></table>

**Example with replacement:**

<table><tr><td>Transcribed: My birthday is <u>5 June 2000</u>. I moved again in September <u>2007</u>.</td></tr><tr><td>Pseudonymized: My birthday is <u>early 2000s: sensitive data replaced</u> I moved again in September <u>late 2000s: sensitive data replaced</u>.</td></tr></table>

## Age Groups

Age is an important factor of an understanding of the interviewees' life events.

**Instruction:** Generalize age into categories.

## Underage groups

The age ranges for underage people are based on the language acquisition phases

**Replacement micro edit table:**

<table><thead><tr><td>original data</td><td>replaced data</td></tr></thead><tbody><tr><td>0 to 1</td><td>baby</td></tr><tr><td>1 to 2</td><td>tin</td></tr><tr><td>2 to 6</td><td>preschool</td></tr><tr><td>6 to 12</td><td>school-aged</td></tr><tr><td>12 to 17</td><td>adolescent</td></tr></tbody></table>

**Example with replacement:**

<table><tr><td>Transcribed: I was <u>five</u> when we moved.</td></tr><tr><td>Pseudonymized: I was <u>preschool aged: sensitive data replaced</u> when we moved.</td></tr></table>

## Adult groups

Provides context for life experience.

**Instruction:** Categories made in an arbitrary manner per decade; use age range.
Replacement micro edit table:

<table><thead><tr><td>original data</td><td>replaced with range</td></tr></thead><tbody><tr><td>18 to 24</td><td>18-24</td></tr><tr><td>25 to 34</td><td>25-34</td></tr><tr><td>35 to 44</td><td>35-41</td></tr><tr><td>45 to 54</td><td>45-54</td></tr><tr><td>55 to 64</td><td>55-64</td></tr><tr><td>65 and after</td><td>65+</td></tr></tbody></table>

Example with replacement:

<table><tr><td>Transcribed:</td><td>Today I'm <u>35</u> years old.</td></tr><tr><td>Pseudonymized:</td><td>Today I'm {35-41: sensitive data replaced} years old.</td></tr></table>

Example with paraphrasing:

<table><tr><td>Transcribed:</td><td>When I became <u>18</u>, I could finally handle that paperwork.</td></tr><tr><td>Pseudonymized:</td><td>When I became {adult: sensitive data paraphrased}, I could finally handle that paperwork.</td></tr></table>

## Ages of non-interviewees

The interviewees also share other stories than their own, such as their siblings or children's experience with languages.

**Instruction:** See part “Other people”. If the age of the other person is needed, follow the above tables.

## Other biographical information

Details about a person's life that help describe their background, experiences, and identity, not covered in the other pseudonymization rules.

**Instruction:** Pseudonymize sensitive information by generalizing personal life details.

**Transcribed:** I moved with my mother after <u>her divorce</u>.

**Pseudonymized:** I moved with my mother after {a change in her personal family situation: sensitive data paraphrased}.

## Geographic locations

### Regions, municipalities

Ties biographical information to a location. Areas can be linked with linguistic variants.

**Instruction:** Replace the region with South/North/East/West/Center of Country. Possibly combine two, such as North-East. No need to pseudonymize visits and holidays.

Example with replacement:

**Transcribed:** Each summer we went to my family in <u>Dordogne</u>.

**Pseudonymized:** Each summer we went to my family in {South of France: sensitive data replaced}.
## Cities, region

Indicates past and current location of the interviewees. Can illustrate information regarding the socioeconomic background of the people.

**Instruction:** Replace specific city or region names with population-based descriptions or geographic generalizations. Replace with *type of city* in *South/North/East/West/Center of Country*. No need to pseudonymize visits and holidays.

Replacement micro edit table:

<table><thead><tr><td>inhabitants</td><td>type</td></tr></thead><tbody><tr><td>Less than 100,000</td><td>Small city</td></tr><tr><td>More than 100,000</td><td>Medium city</td></tr><tr><td>More than 1,000,000</td><td>Big city</td></tr></tbody></table>

* For the purposes of this project the city of Berlin is not pseudonymized as it is where the interviews occurred.

Example with replacement:

<table><tr><td>Transcribed:</td><td>I live in <u>Paris</u>.</td></tr><tr><td>Pseudonymized:</td><td>I live in <u>{a large city in the West of France: sensitive data replaced}</u>.</td></tr></table>

## Area of interest for research project

This degree of locational detail is needed for socioeconomic precision.

**Instruction:** Generalize location in Berlin to one of the 12 districts.

<figure><img src="image_3.png" /><figcaption>Fig 2: Map of Berlin, accessed on 03.09.2024</figcaption></figure>

Creative Commons CC0 1.0 Universal Public Domain Dedication

https://commons.wikimedia.org/wiki/File:Berlin_Subdivisions.svg

Example with replacement:

<table><tr><td>Transcribed:</td><td>My office was in <u>Kottbusser Damm</u>.</td></tr><tr><td>Pseudonymized:</td><td>My office was in <u>{Neukölln: sensitive data replaced}</u>.</td></tr></table>
Replace with:

Charlottenburg-Wilmersdorf

Friedrichshain-Kreuzberg

Lichtenberg

Marzahn-Hellersdorf

Mitte

Neukölln

Pankow

Reinickendorf

Spandau

Steglitz-Zehlendorf

Tempelhof-Schöneberg

Treptow-Köpenick
### File formatting for the pseudonymization process

The following working method, where each sensitive part of the text becomes a row in a table, works particularly well for edits on a micro level:

#### Phase 1: Explore the data

Decide if you want to consolidate the corpus into one large document, or have multiple interview files. The first makes it easier to keep track of the most recent version, the other allows it to work in a more flexible manner.

For our project we found it handy to do a mix of both methods: split the corpus in two and each student assistant had one large document containing their half of transcripts.

See: Truan, Granger & Lychnara 2024a, Interviews Going Open! How to Pseudonymize Sensitive Interview Data: A Detailed Step-by-Step Guide (With Time Stamps). [halshs-04743263](https://halshs-04743263)

#### Phase 2: Systematically annotate sensitive details

File: original transcript

00:03:43

Anamaria

I never liked school

When I was 5 years old

Everything was difficult

Highlight and add a label.

File: annotated transcript

00:03:43

Anamaria

I never liked school

when I was 5 years old[ ! age]

everything was difficult

Tip: see further subsections "Labeling sensitive information" and "Annotation marks"
<figure><img src="image_4.png" /><figcaption>Figure 2: screenshot of the transcript with annotated sensitive information and type labels (here replaced with bogus data to protect the interviewee)</figcaption></figure>

File: sensitive data spreadsheet

<table><thead><tr><td>Speaker</td><td>ID</td><td>Timestamp</td><td>Original</td></tr></thead><tbody><tr><td>Anamaria</td><td>5</td><td>00:03:43</td><td>when I was 5 years old[ ! age]</td></tr></tbody></table>

Tip: see further subsection “Annotation marks”

Use the column split function and search and replace all to remove the remaining brackets

<table><thead><tr><td>Speaker</td><td>ID</td><td>Timestamp</td><td>Original</td><td>Type of data</td></tr></thead><tbody><tr><td>Anamaria</td><td>5</td><td>00:03:43</td><td>when I was 5 years old</td><td>age]</td></tr></tbody></table>

Tip: see further subsection “Text transcription and tabular data”
<table><caption>Figure 3: screenshot of the spreadsheet with potential sensitive sentences
(here modified to protect the interviewee)</caption><thead><tr><th></th><th>A</th><th>C</th><th>D</th><th>E</th><th>F</th><th>G</th><th>H</th><th>I</th></tr><tr><th></th><th>Interview</th><th>Time stamp</th><th>Sensitive Info, original text</th><th>Type of sensitive Info</th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>2</td><td>1</td><td>00:00:43</td><td>je suis arrivée en France à l'âge de neuf ans à cause de la guerre dans mon pay</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>3</td><td>1</td><td>00:00:43</td><td>donc on a été catapulté en France</td><td>biographie</td><td></td><td></td><td></td><td></td></tr><tr><td>4</td><td>1</td><td>00:00:43</td><td>ma mère bon elle était danceuse</td><td>famille</td><td></td><td></td><td></td><td></td></tr><tr><td>5</td><td>1</td><td>00:00:43</td><td>elle a appris un peu le français par rapport à ses études de théâtre</td><td>famille</td><td></td><td></td><td></td><td></td></tr><tr><td>6</td><td>1</td><td>00:00:43</td><td>donc on est arrivé en France quand moi j'avais neuf ans</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>7</td><td>1</td><td>00:01:50</td><td>ce passage de ma langue maternelle qui était le serbo-croate</td><td>langue maternelle</td><td></td><td></td><td></td><td></td></tr><tr><td>8</td><td>1</td><td>00:01:50</td><td>dehors on jouait dehors on parlait serbo-croate</td><td>langue maternelle</td><td></td><td></td><td></td><td></td></tr><tr><td>9</td><td>1</td><td>00:01:50</td><td>heu le fait d'arriver à neuf ans à apprendre une autre langue</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>10</td><td>1</td><td>00:01:50</td><td>mon frère a 5 ans de plus</td><td>famille</td><td></td><td></td><td></td><td></td></tr><tr><td>11</td><td>1</td><td>00:03:34</td><td>c'est à dire que moi j'ai eu neuf ans pendant la guerre</td><td>biographie</td><td></td><td></td><td></td><td></td></tr><tr><td>12</td><td>1</td><td>00:03:34</td><td>j'avais à peine huit ans quand j'ai arrêté d'apprendre ma langue</td><td>biographie</td><td></td><td></td><td></td><td></td></tr><tr><td>13</td><td>1</td><td>00:03:34</td><td>donc en fait ils ont passé peut-être les deux premières années où j'étais à l'éco biographie</td><td>études</td><td></td><td></td><td></td><td></td></tr><tr><td>14</td><td>1</td><td>00:05:01</td><td>en France toutes mes études je les ai faites en France</td><td>langue maternelle</td><td></td><td></td><td></td><td></td></tr><tr><td>15</td><td>1</td><td>00:05:01</td><td>c'est à dire que je lisais pas j'allais pas à des cours spécial pour réviser le serbo-<br>langue maternelle</td><td>biographie</td><td></td><td></td><td></td><td></td></tr><tr><td>16</td><td>1</td><td>00:05:01</td><td>et arrivée en Bosnie ce que je faisais quand j'allais en vacances</td><td>ans</td><td></td><td></td><td></td><td></td></tr><tr><td>17</td><td>1</td><td>00:05:01</td><td>donc j'le baragouine oui ça fait 20 ans</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>18</td><td>1</td><td>00:08:45</td><td>alors justement 1994 revenons 18 ans en arrière</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>19</td><td>1</td><td>00:08:49</td><td>donc ça fait 18 ans que t'es ici non y a eu une interruption</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>20</td><td>1</td><td>00:08:52</td><td>la première fois que j'ai découvert Berlin 1954</td><td>année d'arrivée</td><td></td><td></td><td></td><td></td></tr><tr><td>21</td><td>1</td><td>00:08:52</td><td>je viens d'être acceptée dans la huitième meilleure prépa de France</td><td>études</td><td></td><td></td><td></td><td></td></tr><tr><td>22</td><td>1</td><td>00:09:08</td><td>de m'ancunuer en plus de ce déharrasser de moi au Gotha Institut ici en cours études</td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>

During the process, we used the following columns:

* **ID**: The interview number was recorded in this column to track which interview the sensitive information originated from.

* **Speaker**: This column noted the pseudonymized name of the speaker (not displayed on Fig. 3 for privacy reasons).

* **Timestamp**: The time within the interview where the sensitive information was found was recorded here.

* **Type of sensitive information**: This column indicated the category of sensitive information, which could vary according to the different corpora.

* **Original text with sensitive information**: The full utterance containing the sensitive information was documented in this box, rather than just the sensitive information itself. This approach facilitates the automatic replacement of text in the interview later on.

* **Keywords**: (see subsection “Flag words”) This column was created to note various recurring words and expressions, allowing for a later search to ensure no sensitive information was missed. Due to time constraints, this task was not fully completed but is recommended for future projects.

## Phase 3: Develop and implement the pseudonymization scheme

Split column, replace name with a pseudonym

File: sensitive data spreadsheet

<table><thead><tr><th>Speaker</th><th>ID</th><th>Timestamp</th><th>Original</th><th>Type of data</th></tr></thead><tbody><tr><td>Antoinette</td><td>5</td><td>00:03:43</td><td>when I was 5 years old</td><td>age</td></tr></tbody></table>
Duplicate text column and edit

Files: sensitive data spreadsheet
pseudonymization spreadsheet

Note: because the “years old” disappears with the replacement with “preschool aged”, we choose the label “paraphrased” instead of “replaced”.

<table><thead><tr><td>Speaker</td><td>ID</td><td>Timestamp</td><td>Original</td><td>Pseudonymized</td><td>Type of data</td><td>Type of edit</td></tr></thead><tbody><tr><td>Antoinette</td><td>5</td><td>00:03:43</td><td>when I was 5 years old</td><td>when I was {preschool aged</td><td>age</td><td>paraphrased</td></tr></tbody></table>

Copy paste the content of the text column, to go faster and minimize differences made by typing. Lock the column with the original texts, to prevent accidentally changing something.

Tip: see further subsection “Unicode disparities”

The new columns are:

* **Pseudonymization**: For this step, a coding scheme based on the categories under 'type of sensitive information' was agreed upon. The pseudonymization strategy—whether paraphrasing, replacing, or deleting information—was indicated. Curly brackets '{ }' were used to mark the changes, as this symbol was not used in the transcription.

* **Type of edit**: A separate column indicated whether the data was replaced, paraphrased, deleted, or not changed. Although this did not directly contribute to the pseudonymization process, it provided a means to calculate statistics for the corpus if required.

<figure><img src="image_5.png" /><figcaption>Figure 4: screenshot of the pseudonymization spreadsheet with extra column for the types of edits</figcaption></figure>
## Phase 4: Reformate transcriptions and make final files

Use script to generate an edited transcript

**Files:** pseudonymization spreadsheet
automation scripts

00:03:43

Anamaria

I never liked school

when I was {preschool aged: sensitive data paraphrased}

everything was difficult

Tip: see further subsection "Handy coding skills"

Correct errors and apply formatting

**Files:** pseudonymization spreadsheet
error log

00:03:43

Antoinette

I never liked school

when I was {preschool aged: sensitive data paraphrased}

everything was difficult

Tip: see further subsection "Search and replace problems" and "Advanced search functions"

<figure><img src="image_6.png" /><figcaption>Figure 5: screenshot of the transcript with the pseudonymization edits</figcaption></figure>

Make a copy of the spreadsheet and delete the original text column so that there is no sensitive information anymore, the original spreadsheet becomes a key file.

**File:** pseudonymization spreadsheet

<table><thead><tr><td>Speaker</td><td>ID</td><td>Timestamp</td><td>Pseudonymized</td><td>Type of data</td><td>Type of edit</td></tr></thead><tbody><tr><td>Antoinette</td><td>5</td><td>00:03:43</td><td>when I was {preschool aged</td><td>age</td><td>paraphrased</td></tr></tbody></table>
<figure><img src="image_7.png" /><figcaption>Figure 7: screenshot of the key file table</figcaption></figure>

<figure><img src="image_8.png" /><figcaption>Figure 8: screenshot of the pseudonymized metadata table</figcaption></figure>

Optional: Convert into XML-TEI files (see Puren & Cafiero 2024)

Note: Due to time constraints, we did not convert the pseudonymized transcript into XML-TEI files.

<u who="#interv5">I never liked school
When I was
<gap reason="sensitive data paraphrased">
<desc>preschool aged</desc>
</gap>
everything was difficult
</u>

Note that instead of directly using the pseudonym, an utterance is used to link to <profileDesc> <person xml:id=#interv5> <persName>Antoinette</persName> (pseudocode)

Besides the encoding of pseudonymization, other elements of the transcripts should be incorporated, such as the timestamps and paralinguistic information. Besides the transcripts, for this project we had an overview table with extra information, this metadata can be specified in the TEI header.

## Editing schemes

### Labeling sensitive information

The labels for the annotations were not a prescribed set, but made up on the moment to reflect what we encountered. In phase 2 each annotator created their own set of labels, giving two different and individual perspectives on the data. The flexibility of this approach made it possible to adapt our annotation process to the particular nature of
the content of our transcription.

These were the most common labels we assigned to our data:

Nationality Ethnicity Origin Language Work Duration Name Time Biographical Family Other person Age Birth place Year of move to Berlin School Main language Social media presence Vocation Education Metacommentary Place of residency Location

This also allowed us to better capture the degrees of sensitivity subjective (a piece of data could be interpreted as different types) and multilevel (general label location, versus specific label birthplace and label place of residence). In a nutshell let the data speak for itself, before putting it in rigid boxes. In phase 3 these served as the basis to determine the categories and instructions.

## Naming the labels

Think about the exact meaning of the label names, but also that they sound differently, to limit confusion. This applies to all the types of categories and labels.

**Too similar, prone to errors:**

- Replaced

- Reformulated

- Removed

**Less confusing:**

- Replaced

- Paraphrased

- Deleted

## Annotation marks

Avoid the use of formatting (text color, highlighting, background color, bold, italic, underline), as these get “lost” easily. Formatting can disappear when editing the text, exporting the file, when moving the content to another software. Ellis and Leek (2018) suggest using plain text instead.

Note: when working with docx documents, it is possible the query these formatting properties with the advanced functions (“Find and Replace” → “More >>” → “Format” → “Highlight” or “Font” → “bold” or “font color”). This function however is not available in most other text editors, and also not on the online versions of Word. It is also problematic when the document is exported to PDF.
<figure><img src="image_9.png" /><figcaption>Figure 9: screenshot by authors of the advanced functions in Word</figcaption></figure>

Special characters on international QWERTY keyboard:

`- = [] \ ; ; , / ~ ! @ # $ % ^ & * ( ) _ + { } | : " < > ?

Instead of using colors, delimiters can be used to type inside the transcription, while
making clear which parts are original or added. This differentiation remains clear in
plain text.

Special characters

When choosing these delimiters, keep in mind the overlap with characters in
programming languages that will be used later on in the process. Eventually the
automatic changes can be constrained with escape characters.

Punctuation in words:

‘ -

It is useful to consider a transcription system that doesn't incorporate much
punctuation, so that these symbols could be used for annotation purposes.

Punctuation in typography:

- ‘’. , « » “ ” : ; % $

(also in social media content # @)

Special characters in Markdown:

\# \## \### \* \* \_ \_ \> \> \> - \` \` \` \~ \= ! \[ \}
Special characters in HTML / XML / TEI:

< > / != "
(also with CSS : ; { })

Special characters in regex;

* + . [] () {} ^ $ - \ | ? ! < >

Special characters in Python strings;

" ' \

Using a combination of characters will prevent accidental matches.

Eg. Using - as a sequence --- will not be conflated with the - in ex-husband

Or using [? will not also match [...]

## Automated tasks

### Search and replace problems

When using the replace function for pseudonyms, use advanced options such as case matching and word boundaries to prevent replacing words that contain the same letter sequence as the name.

name: Anne
Panneaux
l'année (some software conflate e and é)

name: Claire
Clairement, c'est
voix claire (homograph)

name: Marie
de marier
le marié (some softwares conflate e and é)

## Handy coding skills

Even if we do not want to use computational pseudonymization, because when dealing with qualitative data, human eyes are very important to deal with subtleties, some parts can be automated. In particular the formatting and menial but time-consuming tasks. For those, the project assistants could have following skills:
To automate repetitive actions (at least one, all of these can do the data manipulations):

Python, R, Javascript, command line.

Familiar with data formats (at least one, the others can be learned easily after):

HTML, XML, TEI, markdown

Understand the concepts of:

- Tidy data

- Different encoding systems (ASCII, Unicode/UTF)

- Version control

- Wildcards, regular expressions (Regex)

## Unicode disparities

Some bugs were caused by differences in Unicode encoding. These changes probably happened when working in multiple software (Excel, Sheets, Word).

Not discernible to the naked eye, there were some non-breakable spaces (NBSP, U+00A0). While the texts seemed identical, they did not contain the same type of space U+0020.

Another problem was inconsistencies between apostrophes and single quotes, ' versus ' (U+0027 versus U+2019)

Going from text to tabular formats, caused some linebreaks to appear or disappear, which caused some problems when merging the edited texts with the original transcriptions

## Hybrid workflows for GUI and coding

As we want to include the people that have expertise but not the digital skills, hybrid working methods (graphical user interface + programming) can be an option:

- Tabular data

* Tech person can convert data to a CSV, which can be imported into Excel for Non-Tech person.

* Non-Tech person can export Excel to CSV, which can be handled automatically by Tech person.

- Text data

* Tech person can convert plaintext to a Docx, which can be used by Non-
## Tech person

* Non-Tech person's Docx can be converted into plain text or markdown by Tech person, using a tool such as Pandoc.

* Note on markdown: this system (for headings, italics, underline) is implemented in a lot of software, for example in Whatsapp and Reddit. Non-Technical persons might already be familiar with it. The markdown system was also invented as a bridge for non-Technical people so that they don't have to deal with more cumbersome markup tags.

## Text transcription and tabular data

Moving between spreadsheet and transcripts, both formats have their advantages, the first to organize and have an overview, the second to have the full context.

* From text data to tabular data

* Use a consistent annotation scheme (see section Annotation marks)

* Extract annotations using pattern matching, Regex

* Split the line into text and label using delimiters (simple GUI example below)

<figure><img src="image_10.png" /><figcaption>Figure 10: screenshot by authors of the split function in Sheets</figcaption></figure>

* From tabular data to text data

* Use a script to replace parts

* The lack or addition of a line break often can cause problems

* Pay attention to text formatting

## Advanced search functions

### Timestamps in documents:

Regex `(?<!^|\d\d:\d\d:\d\d\n)Anamaria`

Word `^#^:#:#^#:#:#^#^Anamaria`

### Dates (the content of our interviews concerned the 21th and 20th centuries):

Regex `20\d\d 19\d\d`

Word `20[0-9][0-9] 19[0-9][0-9]`
<figure><img src="image_11.png" /><figcaption>Figure 11: screenshot by authors of the advanced search and replace function in Word</figcaption></figure>

## Code snippet

Quickly written to make some parts faster, the code was not refined further. More details in the README.md file. Not intended to be used as is, but to serve as inspiration. For another project, the methods might differ greatly, a new script must be made to match the particularities of the initial documents.
What the script does:

0) prerequisites: an original transcript (docx) and a table with the changes to apply (a column with original text and another with pseudonymized text)

1) standardize differences in Unicode

2) it looks in the transcript for the table's original text and replaces it with the pseudonymized text.

```python
# "error_log.txt" should be emptied

import pandas as pd

path = "\."

table_filename = f"{path}testtable.xlsx"
text_filename = f"{path}testtranscript.docx"
newtext_filename = f"{path}testresults.docx"

if __name__ == '__main__':

    with open("error_log.txt", "w") as tempfile:
        tempfile.write("") # make empty

    df = pd.read_csv(table_filename, encoding='utf8')
    df['Sensitive Info, original text'] = df['Sensitive Info,
                                               original text'].str.replace(u"\u00A0", " ")
    df['Pseudonymized'] = df['Pseudonymized'].str.replace(u"\u00A0", " ")

    df['Sensitive Info, original text'] = df['Sensitive Info, original text'].str.replace("", " ")
    df['Pseudonymized'] = df['Pseudonymized'].str.replace("", u"\u2019")

    with open(text_filename, 'r', encoding='utf-8') as file:
        text = file.read()
        text = text.replace("", u"\u2019")

    for index, row in df.itertrows():
        if row['Pseudonymized'] != 'not changed':
            if text.find(row['Sensitive Info, original text'].strip()) > 0:
                text = text.replace(row['Sensitive Info, original text'].strip(),
                                     "//CHANGED://"+str(row['Pseudonymized'])])
            else:
                with open("error_log.txt", "a", encoding='utf-8') as tempfile:
                    tempfile.write(
```
```python
f"""{row['Interview']} {row['Speaker']} {row['Time stamp']}
"
"""{row['Sensitive Info', original text']}.strip()"
"""
f"""\n{row['Pseudonymized'].strip()}
\n"
"
)

with open(newtext_filename, 'w', encoding='utf-8') as newfile:
    newfile.write(text)
```

It can be improved in many ways, for example by implementing: better filepaths, better logging, fuzzy text matching, dealing with inconsistencies in line breaks (missing or new ones), and dealing with differences in markup (italics, bold, underline).

## Flag words (in French)

When the same information occurs multiple times, it could be handy to deal with them using the search function. Some words, such as *lived* and *hometown*, also tend to co-occur with sensitive data.

* frère, sœur, mère, père
* m'appelle
* \d+ ans
* actuellement
* job poste travail
* je vis
* Aujourd'hui
* 20\d\d 19\d\d
* janvier février mars avril mai juin juillet août septembre octobre novembre décembre
* Région
* Profession
* Ici
* je suis
* né[e]?
* vécu déménagé
* Venir venais \sven\w+\sde
* nationalité
* je suis
* Grandi
* ville vivais vivre
* Origine
* Vivre vivais \sviv\w+\s
* Famille
* Allé aller \sall\w+\s
* Spécifique
* Scolarisé
References cited

Allen, Liz, Alison O'Connell & Veronique Kiermer. 2019. How can we ensure visibility and diversity in research contributions? How the Contributor Role Taxonomy (CRediT) is helping the shift from authorship to contributorship. *Learned Publishing* 32(1). 71-74.

DeLacey, Hannah. 2024. Pseudonymizing Data. Presented at the Centre for Digital Scholarship: Summer Training Week, Leiden University. https://www.digitalscholarshipleiden.nl/articles/cds-summer-training-week-2024. (2 December, 2024).

Ellis, Shannon E. & Jeffrey T. Leek. 2018. How to Share Data for Collaboration. *The American Statistician* 72(1). 53-57. https://doi.org/10.1080/00031305.2017.1375987.

Puren, Marie & Florian Cafiero. 2024. InTEIviews: An ODD for Qualitative Interviews in the Humanities. *Journal of the Text Encoding Initiative* Issue 15. https://doi.org/10.4000/jtei.5007.

Truan, Naomi. 2024. Whose language counts? Native speakerism and monolingual bias in language ideological research: Challenges and directions for further research. *European Journal of Applied Linguistics* 12(1). 34-53. https://doi.org/10.1515/eujal-2024-0006.

Truan, Naomi. forthcoming. Becoming a Speaker of German as an L1 French Speaker: Elite Multilingualism as a Means of Distinction in a Globalized World. *International Journal of Multilingualism*.

Truan, Naomi, Sophie Granger & Jo Lychnara. 2024. Interviews Going Open! How to Pseudonymize Sensitive Interview Data: A Detailed Step-by-Step Guide (With Time Stamps). <halshs-04743263>