beader / tianchi_nl2sql

追一科技首届中文NL2SQL挑战赛决赛第3名方案+代码
533 stars 144 forks source link

关于model2的问题 #28

Closed Ignoranceemperor closed 3 years ago

Ignoranceemperor commented 3 years ago

为什么model1预测出来了条件列和cond_op,而通过model2后,条件处有空的存在 eg:model1的预测{"sel": [1, 2], "agg": [0, 0], "cond_conn_op": 0, "conds": [[3, 2]]} 通过model2后的结果为{"sel": [1, 2], "agg": [0, 0], "cond_conn_op": 0, "conds": []} 还有一种情况是通过model2后的条件少于model1预测出的条件

beader commented 3 years ago

实际上 model 1 和 model 2 有一部分任务是重合的。 model 1 会去预测每一列的 cond_op。 model 2 会根据 model 1 选择的列 ( cond_op != 4),重新去预测这一列的 cond_op。此时 model 2 会通过枚举该列不同的 cond_op 的方式,当做一个二分类问题来做。这么做确实会存在到了 model 2 这里,一列都不选的情况。

================= model 1 和 model 2 的日常对话 ================= model 1: “哈,我选择了第2列和第5列,他们的 op 分别是 xxx,和 xxx” model 2: “收到,那其他列我就不看了,我来好好看看第2列和第5列的 op 应该是什么”