通过相似性检查问题的答案是否正确

数据挖掘 机器学习 nlp
2021-09-15 16:54:07

假设在 NLP 问题中,我有一个问题和该问题的一些正确答案(例如,10 个正确答案)。

有没有办法获得一个新的答案作为输入,并“计算”它是否正确?

2个回答

如果您还包括提取问题的背景文本,则可以更好地解决此问题。然后,首先在背景文本上训练词嵌入。此外,使用递归神经网络或一些变体生成问题的句子组合性及其答案。在所有这些步骤之后,您可以计算新答案的组成与给出的答案之间的相似性,以了解它是否正确。

要考虑的一种方法:

您将需要一个相似性度量(例如余弦相似性)、两段文本之间的 S(A,B),以及一种对该度量进行阈值的方法。

  • 对于特定答案 A_i,计算 A_i 与所有其他答案 A_j 之间的相似性分数 S(A_i, A_j) 的平均值。称之为 Sim_i。
  • 计算 Sim_i,得到所有答案 A_i。
  • 取所有 Sim_i 中最小的一个,作为阈值相似度,Sim_T
  • 给定一个新答案 A_new,计算其分数 Sim_new 对所有答案的影响。
  • 如果 Sim_new >= Sim_T,则接受答案,否则拒绝。

这个想法是,如果新答案与其他已知答案“相似”,则应该接受它。应该有多相似?这是使用已知答案之间的相似性来估计的。这是广泛的方法。可以试验相似性度量和阈值计算。