为解决传统协同过滤算法中用户评分数据稀疏性所带来的用户最近邻寻找不准确问题,提出了一种结合条件概率和传统协同过滤算法的非固定k近邻算法。该算法在基于分步填充评分矩阵的思想上,第一步只接受相似度和共同评分项目数量达到阈值的邻居用户作为目标用户邻居,然后计算并填充未评分项目,第二步使用第一阶段部分填充后的矩阵计算剩余未评分项目的评分。实验表明,该算法寻找的邻居用户更准确,能明显地缓解数据稀疏问题,提高评分预测准确性。