如何在给定包含主语、动词和目标语的逻辑结构的情况下生成自然语言句子?

人工智能 自然语言处理
2021-11-10 21:14:13

我在一个程序中有一组结构,它们的含义非常具体,例如。这是一段代码

randomItem = objects.concept.random("buyable")
idea.example(objects.concept.random("family", "friend")).does({
    action: "go",
    target: object.concent.random("shop")
}).then({
    action: "buys",
    target: randomItem,
    several: true
}).then({
    question: true,
    action: "know",
    property: "amount",
    target: randomItem,
    several: true
})

我以前使用过自然语言解析器。

我该如何将其转换为自然语言(反之亦然),有什么方法或方法吗?我有逻辑结构,我知道谁是主语,动词和目标是什么。

我可以使用哪些方法从中生成语言?

2个回答

自己生成语言输出可能更简单,因为您已经在代码中获得了具体的概念结构。

也许您还想了解潜在的未来应用程序,例如将您自己的输出解析回输入。

话虽如此,您可以在自然语言处理和自然语言生成方面稍微研究一下马尔可夫链或谷歌。

https://stackoverflow.com/questions/33068943/library-for-generating-natural-language-verbs-in-javascript

看看 MUMBLE,它是一种从概念依赖结构(类似于你所拥有的)工作的转换器并产生英语输出。

可以在这里找到 Meehan 的 TALESPIN 程序的 Lisp 实现,其中包括 MUMBLE 的简化版本:https ://github.com/lispm/CommonLispCode/blob/master/micro-talespin.lisp——生成器部分从大约行开始1030. 它应该很容易理解,即使你不知道 Lisp。