nlp 的最佳问题生成状态是什么?

数据挖掘 机器学习 深度学习 nlp
2021-10-13 15:11:18

我在 GitHub 上尝试了各种可用于生成问题的项目,即 NQG、问题生成和许多其他项目,但我没有看到它们的好结果,要么它们的问题形成非常糟糕,要么生成的问题大部分都是离题的时代,在那里我发现了一个真正产生好问题的项目

布卢姆斯伯里/问题生成

它基本上接受上下文(段落)和生成问题的答案,我试图通过将生成的问题与段落一起传递给 allenNLP 来验证生成的问题

问题的答案生成

然后我试图确保生成的答案对于使用通用句子编码器和余弦距离计算答案(AllenNLP 和PotentialAnswer)的句子嵌入生成的问题是正确的,以获得答案匹配和过滤问题的相似程度具有最小余弦距离。

想知道这是否是最好的方法,或者是否有最先进的问题生成实施?请建议

4个回答

对于您关于哪种问题生成方法好的问题的第一部分 - 神经问题生成在 NLP 爱好者中非常流行(截至 2018/2019 年),但并非所有系统都足以直接用于生产。但是,这里有一些最近报告了 2019 年最先进性能的报告,并且也分享了他们的代码:

  1. https://github.com/ZhangShiyue/QGforQA
  2. https://github.com/PrekshaNema25/RefNet-QG

这个是 2020 年的(现在 NLP 性能已经通过 Transformers 得到了改进) 3. https://github.com/patil-suraj/question_generation

此外,如果您想要更多地控制来理解和修复错误生成的问题,我建议您使用更传统的基于规则的方法,例如下面的方法,它比上述神经方法更可靠,并生成更多的问答对比上述2:

  1. http://www.cs.cmu.edu/~ark/mheilman/questions/
  2. https://bitbucket.org/kaustubhdhole/syn-qg/src/master/

要回答您的第二个问题,如果您的 QG 模型正在生成答案,那么使用余弦相似度是有意义的。假设您的问题生成是在句子级别,您的回答范围大多很短,因此平均 Glove 或 Paragram 词向量可能比 Universal Sentence Encoder 为您提供更好的结果。

似乎最先进的方法使用神经编码器-解码器模型 [1]

[1] 从文本生成神经问题:初步研究:https ://arxiv.org/pdf/1704.01792.pdf

github上有一个用Pytorch写的论文的开源实现:https ://github.com/magic282/NQG

为了回答您的问题,我想说基于变压器的T5 模型在这个特定的问题陈述(即Question Generation )中表现出了最先进的技术。试试这个很棒的回购:https ://github.com/patil-suraj/question_generation 。这个人是 HuggingFace 的常客。