📄 bow_kernel.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 + -