Select Git revision
GetDistances.m
Andrew Cohen authored
GetDistances.m 1.42 KiB
function [d,Confusion,nCorrect]=GetDistances(words,idxKey,strServer)
if ~exist('strServer','var')
strServer='wikipedia';
end
d=[];
rgNWDx=[];rgNWD=[];
nClasses=max(idxKey);
for i=1:length(words)
for j=1:nClasses
idx=find(idxKey==j);
idxIncluded=find(idx==i);
if ~isempty(idxIncluded)
wordListX=words(idx);
idx(idxIncluded)=[];
wordList=words(idx);
else
wordList=words(idx);
wordListX=[words(i) words(idx)];
end
rgNWDx(j,i)=NWD(wordListX,strServer);
rgNWD(j,i)=NWD(wordList,strServer);
end
d = rgNWDx-rgNWD;
idx=find(isnan(d) | isinf(d));
d(idx)=inf;
[mm idx]=min(d(:,i));
% fprintf('%d,',idx);
end
% fprintf('\n');
Confusion=zeros(nClasses,nClasses);
for i=1:length(words)
nTrue = idxKey(i);
[mm nPred] = min(d(:,i));
Confusion(nTrue,nPred)=Confusion(nTrue,nPred)+1;
end
nCorrect=sum(diag(Confusion));
bWriteFile=false;
if bWriteFile
fid=fopen('results.txt','a');
fprintf(fid,'\n\n-------------------------\n')
fprintf(fid,'GetDistances::(multiples) NW=5 \n');
c=clock;
c=num2str(c)
fprintf(fid,'%s\n',c);
for i=1:length(words)
fprintf(fid,'%s,',words{i});
end
% fprintf(fid,'nQueryCount=%d, nCacheCount=%d\n',nQueryCount, nCacheCount);
% fprintf(fid,'\n');
c=mat2str(Confusion);
fprintf(fid,'%s\n',c);
fclose(fid);
end