%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Script for importing csv / JSON results data and creating raw % % contingency table, % % (does not pool synonymns) % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear all cont = csvread('context.csv'); fid = fopen('results.csv','r'); allData = textscan(fid, repmat('%s',1,10), 'delimiter',';', 'CollectOutput',true); allData = allData{1}; fclose(fid); [~,soundnames]=(xlsread('soundnames.xlsx')); sort(soundnames); % get context IDs from results data contextID=zeros(length(allData),1); for k=1:length(allData) indCont=strfind(allData{k},','); contextID(k)=str2num(allData{k}(1:indCont(1)-1)); end allInd=(1:length(allData)); C=allData(allInd); for i=1:size(C,2) %tidy json data and load as structure if isempty(findstr(C{i},'"word_group"":""1""'))==0 X=strrep(C{i},',""audio"":""""',''); % handle error caused by emtpy audio tag else X=C{i}; end X=strrep(X,'""','"'); %get rid of double " indStart=strfind(X,'{'); junkStart=X(1:indStart(1)); indEnd=strfind(X,'}'); junkEnd=X(indEnd(length(indEnd)):end); jsonData{i}=loadjson(X(indStart(1):indEnd(length(indEnd))));% remove context ID and word group from data string end %Create contingency table of zeros number of sounds x total number of % words (based on participant 1) wordslist=[]; structInd=[]; if exist('jsonData','var') == 1 for i=1:size(jsonData, 2) %number of participants participantwords=fieldnames(jsonData{i}); wordslist=[wordslist; participantwords];% get words A(1:length(participantwords))=i; structInd=[structInd A]; %index for finding structure below contTab=zeros(length(soundnames),(size(jsonData, 2)*length(fieldnames(jsonData{1,1})))); end for j=1:length(wordslist)%look for words in fieldnames of jsondata structure l=structInd(j); word=getfield(jsonData{l},wordslist{j}); for k=1:length(word) sound=word{1,k}.word; % indSoundnames=strfind(soundnames,sound); % indY= find(not(cellfun('isempty', indSoundnames))); indCol=find(strcmp([soundnames], sound)); contTab(indCol,j)=contTab(indCol,j)+1; end end save('ContTab.mat', 'contTab','wordslist','soundnames'); clear jsonData end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % Now use R script to tidy and pool.m % % to look for synonmyns in word list % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%