2011-02-24 135 views
1

那么,试着用搜索引擎的东西。稀疏矩阵/内部基质尺寸

我已经产生从5个文档的集合的矩阵(术语的文档)。输出是:

文档= (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;总是产生错误说:???内矩阵尺寸必须为同意。

谁能帮助我得到一个想法来处理呢?欣赏你的时间。

回答

3

根据您的示例中的数据,docs是5×5和q是2×1。矩阵乘法q'*docs试图乘以1×2矩阵5x5矩阵。矩阵乘法要求第一个矩阵的第二个维度与第二个矩阵的第一个维度一致,从而产生错误。

为什么你在sc=zeros(1, n);行定义sc然后用这个矩阵乘法覆盖它?

+0

我理解矩阵尺寸要求。但是,我无法控制尺寸,并且它们通常会有所不同。公式要求它们相乘。@ b3,没有声明变量的大小是一种好的做法? – Tinglin 2011-02-24 11:05:03

+1

@Tinglin - 在不了解算法的情况下,很难评论。看来你需要检查你的假设。查询和文档矩阵必须是可乘的,或者算法必须改变。 – 2011-02-24 11:37:28

+0

我现在将通过假设。感谢您指出。如果我找不到任何东西,我会为你和其他人提供见解。 – Tinglin 2011-02-24 23:19:39