您好,
我正在处理下一个问题,对机器学习(ML)知之甚少:
- 给定文章列表(A’s,文本格式)和搜索字符串(SQ),选择并按相关性排序最相关的文章(A’s)与搜索字符串(SQ)。
- 优化第一点的情况,即当添加新文章(A)时 – 即搜索将考虑到新记录,并在下次被纳入考虑。
我选择了Spark作为ML计算的引擎,并找到了计算IDF模型的示例(https://spark.apache.org/docs/2.0.0/ml-features.html#tf-idf)。这最终会得到文章中术语频率的特征向量:
(8,[0,1,4],[0.287… (8,[0,1,6],[0.287… (8,[1,3,4],[0.0,0…
(抱歉结果被截断)
此时我卡住了。看起来我们可能需要为SQ计算类似的向量,然后以某种方式按最接近的顺序排列文章。但我不确定该如何做。
接下来正确的做法是什么?您能分享或指出带有实现的示例吗?
提前感谢,
@[隐藏人名]
回答:
以下是我使用的小型数据集验证过的简短路线图:
- 为语料库构建TF-IDF,获取“特征”向量
- 为搜索术语构建IDF,获取“特征”向量
- 在语料库特征上(来自步骤1)训练kmeans,获取“文章ID”到聚类的映射。
- 预测搜索术语聚类(来自步骤2和3),获取“搜索术语”聚类。
- 按所需聚类(来自步骤4)过滤文章。
- 在所选聚类中进一步使用LSH过滤文章,按聚类中特征与搜索术语之间的距离进一步排序。