我想在MATLAB中对文本进行分层凝聚聚类.说,我有四句话,
I have a pen.
I have a paper.
I have a pencil.
I have a cat.
Run Code Online (Sandbox Code Playgroud)
我想对上面四个句子进行聚类,看看哪个更相似.我知道统计工具箱有像pdist测量成对距离,linkage计算聚类相似性等命令.一个简单的代码如:
X=[1 2; 2 3; 1 4];
Y=pdist(X, 'euclidean');
Z=linkage(Y, 'single');
H=dendrogram(Z)
Run Code Online (Sandbox Code Playgroud)
工作正常并返回树形图.
我想知道如上所述我可以在文本上使用这些命令.有什么想法吗 ?
更新:
感谢Amro.读取理解并计算字符串之间的距离.代码如下:
clc
S1='I have a pen'; % first String
f_id=fopen('events.txt','r'); %saved strings to compare with
events=textscan(f_id, '%s', 'Delimiter', '\n');
fclose(f_id); %close file.
events=events{1}; % saving the text read.
ii=numel(events); % selects one text randomly.
% store the texts in a cell array
for …Run Code Online (Sandbox Code Playgroud)