将英语声明转换为Questi0n

时间:2013-10-02 20:10:46

标签: algorithm nlp artificial-intelligence

(标题道歉。堆栈溢出不允许标题中的“问题”一词。)

如何编写算法将英语语句转换为问题?人们甚至会从哪里开始?例如:

煎蛋的成分是鸡蛋,培根,奶酪和洋葱”会变成“煎蛋的成分是什么?”或“煎蛋的成分是什么?

我可以想象将一个句子解析成它的组件,然后在添加和删除单词的同时重新排列它们以形成语法正确的句子,但我不知道从哪里开始。我知道这绝不是一项微不足道的任务,我认为现在最有用的是指向文学或类似问题的指针。

3 个答案:

答案 0 :(得分:7)

使用基于模板的方法查看ACL Anthology关于问题生成的论文。

以下是一些开始:

Popowich,David Lindberg Fred和John Nesbit Phil Winne。 “生成自然语言问题以支持在线学习。” https://aclweb.org/anthology/W/W13/W13-2114.pdf

Rokhlenko,Oleg和Idan Szpektor。 “为新闻文章创造综合可比问题。” http://aclweb.org/anthology/P/P13/P13-1073.pdf

赵,施琦,等。 “从基于社区的问题回答的查询中自动生成问题。” IJCNLP。 2011。 https://aclweb.org/anthology/I/I11/I11-1104.pdf

答案 1 :(得分:2)

如果您不想从头开始,请查看Stanford的lex解析器。 http://nlp.stanford.edu/software/lex-parser.shtml 这是一个非常棒的工具。

我会解析文本并找出句子的语法结构。一旦完成,您只需要找到特定词性的问题。

您还可以在http://nlp.stanford.edu/publications.shtml阅读大量的出版物 祝你好运。

答案 2 :(得分:-2)

这是一个有趣的问题。从我的头脑中开始:你需要构建一个DB,它将保存按照它们分类的单词,例如介词,“链接单词”(或者其他任何名称,以及其他...

将句子的单词排列在一个数组(列表)中并循环遍历每个单词。当某个单词出现在某个类别中时会做某事。

例如: “可能会告诉你下一个词是主题。

“成分”是主题,但有一个“s”所以期待多个事情, 寻找符号(链接)的下一个单词,如“are”

“of”告诉您下一个单词是上述链接的主题,

“是”告诉您接下来是一个列表,将它们存储在一个单独的表中,但将它们链接到主题。

介词和陈述=将它们取出,因为它们不需要。

一旦你把所有东西分成不同的列表,那么只需构建你的简单问题。如果您知道答案有多个答案,请从“什么是”开始,然后添加元素的主题。

像这样基本的东西。但我更确定你将不得不弄清楚每个单词在句子中的含义,这样你就可以找到如何对它们进行分类,并将它们存储起来然后再问一个问题。

希望指出你(在)方向。