⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bow_kernel.m

📁 《模式分析的核方法》一书中的源代码
💻 M
字号:
function K=bow_kernel(S)%function K=bow_kernel(S)%% This function computes the bag of words kernel matrix for the strings in% S. The case of the letters is ignored.%%INPUTS% S = a cell array containing the strings%%OUTPUT% kernel = the bow kernel%%%For more info, see www.kernel-methods.net%%Author: Tijl De Bie, 25/02/2004, adapted (for speed-up) on 21/10/04.nS=length(S);K=zeros(nS,nS);disp('Build dictionary')dict={};for k=1:nS    s=S{k};    Swords_long=sort(lower(strread(s,'%s')));    [Swords{k},indi,indj]=unique(Swords_long);    ns{k}=diff([0;indi]);    dict=union(dict,Swords{k});    lengths(k)=length(Swords{k});enddisp('Compute kernel')ndict=length(dict);endind=ones(nS,1);for k=1:ndict    inds=zeros(nS,1);    d=dict{k};    inds=[];    vec=[];    for i=1:nS        if endind(i)<=lengths(i)            t=strcmp(Swords{i}{endind(i)},d);            if t                inds=[inds;i];                vec=[vec;ns{i}(endind(i))];                endind(i)=endind(i)+1;            end        end    end    K(inds,inds)=K(inds,inds)+vec*vec';end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -