在MATLAB中给出一个具有以下格式的表:
itemids keywords
1 3D,children,anim,pixar,3D,3D pixar
2 3D,4D pixar,3D car
... ...
我想计算每个项目中每个关键字重复的次数。 {strong} keywords = {'3D';'Children';'anim';'pixar' ...}
中提供了所有唯一关键字列表。输出是矩阵TF
,其行数等于项目数和列数等于length(keywords)
。
这里的困难之一是搜索每个字符串的完全匹配。我目前正在使用strcmp()
,它似乎给出了具有给定单词的所有条目,而不是完全匹配。在我的情况下,我需要区分3D
和3D pixar
。
答案 0 :(得分:0)
这可以使用MATLAB中的ismember
函数完成。我假设每个项目的关键字实际上是一个字符串,在这种情况下,您需要在执行ismember
之前拆分关键字。
relevantKeyWords = {'3D','Children','anim','pixar'};
keywordsInItem = strtrim(strsplit(keywordsStr,',')) % Split the words and trim each word
tmp = ismember(relevantKeywords,keywordsInItem);
tmp的大小为1 x length(relatedKeywords),表示是否找到了相关的关键字。