我们正在构建一个文本搜索解决方案,希望每次添加新文档类型时都能测量系统的精确度和召回率。从这里的一些帖子中了解到,基于机器学习的解决方案可能是可行的。能否请专家对此发表评论?然后我们将考虑在团队中增加机器学习方面的人才。
回答:
要获得F1分数,需要了解正确类别、所有样本的排名以及通过评估查询获得的这些评估查询。
-
任何机器学习都需要大量的手动工作来提供这些样本和/或查询。工作量大到不会为你节省任何时间。
-
这种评估的另一个不利方面是由于学习相关的内在错误。随着搜索引擎索引规模和所需示例数量的增长,错误会增加。你永远无法获得良好的评估结果。
-
忘记使用机器学习来评估搜索引擎。手动构建你的测试查询和样本,随着时间的推移,它们会变得庞大且可靠。
-
如果你真的想在系统中使用机器学习,你应该考虑查询预处理。通过其他方式获取查询的元信息(你说的是SVN,为什么不呢?)通常对性能有好处,并且在不改变结果的情况下,你可以使用相同的样本进行端到端评估。这是我几年前做过的事情,但使用的是自然语言分析的朴素贝叶斯分类器。