Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

GetDistances.m

Blame
  • 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