好吧,试着用搜索引擎做点什么。
我从5个文档的集合中生成了一个矩阵(term-document)。输出是:
docs = (5,1)1.0000 (1,2)0.7071 (3,2)0.7071 (1,3)0.7071 (5,3)0.7071 (3,4)1.0000 (4,5)1.0000
另外,我已经从用户查询生成了一个查询矩阵。
q = (1,1)1 (2,1)1
我正在尝试使用应用向量空间建模的用户查询来查找文档集的相似性。这是代码:
% docs is a sprase matrix presenting a number of document.
sc=zeros(1, n); doc_inds=zeros(1, n);
% q is the user query.
sc=q'*docs;
%sort documents according to their
similarity coefficient with the query
[sc, doc_inds]=sort(sc);
sc=sc(end:-1:1);doc_inds=doc_inds(end:-1:1);
行sc=q'*docs;
总是产生错误说: ???内部矩阵尺寸必须。的同意。
任何人都可以帮我理解处理它吗?感谢你的时间。
答案 0 :(得分:3)
根据您示例中的数据,docs
为5x5,q
为2x1。矩阵乘法q'*docs
试图将1x2矩阵与5x5矩阵相乘。矩阵乘法要求第一个矩阵的第二维与第二个矩阵的第一维一致,从而得到你得到的错误。
为什么要在sc
行定义sc=zeros(1, n);
,然后使用此矩阵乘法覆盖它?