我提出了一个问题What is the ...?
使用/fcselect
处理程序没有排名ID并获得以下文档:
"docs": [
{"id": "100"}, // ranked first
{"id": "101"}, // ranked second
...
{"id": "198"}, // ranked second from last (99th)
{"id": "199"} // ranked last (100th)
]
然后,我使用以下地面事实创建了一个排名:
What is the ...?,199,5,198,4
...
然后,我问了*相同的问题*使用/fcselect
处理程序与排名者,并获得了以下文档:
"docs": [
{"id": "100"}, // ranked first
{"id": "101"}, // ranked second
...
{"id": "199"}, // ranked 30th
...
{"id": "198"} // ranked 35th
...
]
,但我期望像以下顺序:
"docs": [
{"id": "199"}, // ranked first
{"id": "198"}, // ranked second
{"id": "100"}, // ranked third
{"id": "101"} // ranked 4th
...
]
排名训练是否适当?
有关类似问题的答案,请参见此处:https://developer.ibm.com/answers/questions/317822/4-stars-answers.html。
通过学习到级别的方法,当然不能保证排名者将在地面真理中标记为"正确"的答案到搜索结果的顶部。这是因为排名是不记住正确的答案,而是希望在特征值分布中捕获概括,从而捕获查询和搜索结果之间的重叠。为了验证排名训练的行为,您可以在大量查询(与培训过程中使用的查询不同)上测量最高的结果准确性,并平均检查改进。 也就是说,奇怪的是,排名前两个的搜索结果根本不会改变排名者培训。在实验中需要考虑的一些事情以提高性能: