____________________________________________________________________________________________ Codebook for the relevant data table (Results_korean_v1_fortis_1.txt): Participant = a number randomly assigned to each participant Token_number = number of each stimulus of the experiment (256 for each participant except for participant P_12) Type = filler token or experiment token A = sound played as A in the ABX/BAX scheme B = sound played as B in the ABX/BAX scheme X = sound played as X in the ABX/BAX scheme Reverse = determines whether sounds were played in reversed order (0 for normal order, 1 for reversed order); this is less relevant than the column Order, however it was initially used to determine which choice was made in the experimental tokens which led to the creation of the column fxlChoice Correct = used to see whether participants made correct choices in the filler tokens; determined automatically from the combination of Decision and Reverse (as explained in the code below); irrelevant for experimental tokens Decision = which key was pressed by the participant in each trial ("m" or "z") Age = participant’s self-reported age Gender = participant’s self-reported gender Nationality = participants’ self-reported nationality SeoulYears = whether the participant spent more than 2 years of their life in Seoul Mandarin = whether the participant ever learned Mandarin fxlChoice = determines whether the participant made a “fortis” choice or a “lenis” choice (0 for “lenis”; 1 for “fortis”); irrelevant for fillers Catch_trial = determines whether the respective filler token was a catch trial; used to filter out participants who did not pay proper attention throughout the experiment SeoulRegion = determines into which region the participant was grouped (Seoul, Gyeonggi, Other) as described in the thesis Word = determines which word was played in the experimental trial (tajut, tasha) Order = determines the order in which the experimental scheme was played Creak = determines whether creaky voice was present in sound A of the experimental trial (Yes, No) ____________________________________________________________________________________________ Python code used to generate the fxlChoice and Catch_trial columns: # # Python code with 2 functions: # (1) Automatically determine which choice ("fortis" or "lenis") # (2) Automatically determine whether the trial was a catch trial # #Import relevant packages import pandas as pd #Read the Excel file df = pd.read_excel("book.xlsx") #Add relevant directory and file name #Function to determine the value of 'fxlChoice' based on 'Choice' and 'Reverse' def determine_fxl(row): if row['Decision'] == 'z': return 'f' if row['Reverse'] == 0 else 'l' elif row['Decision'] == 'm': return 'l' if row['Reverse'] == 0 else 'f' return None #Apply the function to each row df['fxlChoice'] = df.apply(determine_fxl, axis=1) #Flip the values in the "Correct" column where the "Reverse" column is 1 df.loc[df['Reverse'] == 1, 'Correct'] = 1 - df.loc[df['Reverse'] == 1, 'Correct'] #Function to determine if the respective trials are catch trials def determine_catch_trial(row): if row['A'] in ('m_nanin_t_01', 'm_nanin_t_02', 'm_nanin_t_03', 'm_kata_t_01', 'm_kata_t_02'): return 'Trial' elif row['B'] in ('m_nanin_t_01', 'm_nanin_t_02', 'm_nanin_t_03', 'm_kata_t_01', 'm_kata_t_02'): return 'Trial' else: return 'NoTrial' #Apply the function to each row df['Catch_trial'] = df.apply(determine_catch_trial, axis=1) #Save the updated data to a new Excel file df.to_excel("new_book.xlsx", index=False) #Add relevant directory and name of new file ____________________________________________________________________________________________ Organization of file names: example file names: i_taju_l_06 n_tasha_fc_02 i_taju_f_04 m_nanin_t_03 i = token from a sentence-initial context n = token from a word pronounced in isolation m = token from a sentence-medial context taju/tasha = word pronounced nanin/kata = words used in catch trials f = fortis token without naturally present creak fc = fortis token with naturally present creak l = natural lenis token t = catch 'trial' token 0X = determines the number of the sound in our data; at least 4 for each type (f, fc, l)