自动生成文章

这个问题旨在了解和学习某项技术是否存在。以下是具体情景。

我们将提供200个英语单词。软件可以添加额外的40个单词,即200个单词的20%。现在,使用这些单词,软件应该编写对话,确保对话有意义且没有语法错误。

为此,我研究了SpintaxArticle Spinning。但你知道它们做什么,它们是基于现有文章进行重写。但这并不是解决这个问题的理想方法(如果是,请告诉我)。那么,是否有任何技术能够做到这一点?可能是谷歌使用的语义理论?有什么经过验证的人工智能方法吗?

请帮助我。


回答:

首先,需要提醒的是,这是在自然语言生成(NLG)领域的前沿研究,目前最先进的研究出版物还不足以替代人类教师。对于以英语为第二语言(ESL)的学生来说,这个问题尤其复杂,因为他们倾向于先用母语思考,然后再将知识翻译成英语。如果我们忽略这个可怕的开场白,通常的做法如下:

NLG包括三个主要组成部分:

  1. 内容规划
  2. 句子规划
  3. 表面实现

内容规划:这一阶段将高层次的沟通目标分解为结构化的原子目标。这些原子目标足够小,可以通过一次沟通步骤(例如在一个从句中)实现。

句子规划:在这里,实际的词素(即具有明确语义的词或词部分)被选中作为原子沟通目标的一部分。词素通过谓词-论元结构连接。句子规划阶段还决定了句子边界。(例如,学生应该写“我去了那里,但她已经走了。”还是“我去那里看她。她已经离开了。”…注意不同的句子边界和不同的词素,但两种回答都表示相同的意思。)

表面实现:在句子规划步骤中获得的半成形结构通过加入功能词(限定词、助动词等)和屈折变化,变成适当的形式。

在你的特定情景中,大多数单词已经提供,因此选择词素将相对简单。连接词素的谓词-论元结构需要通过合适的概率学习模型(例如隐马尔可夫模型)来学习。确保最终正确语法结构的表面实现,应该是语法规则和统计语言模型的结合。

在高层次上,请注意,内容规划是语言无关的(但很可能是文化依赖的),而最后两个阶段是语言依赖的。

最后,我想补充一点,我之前略过了选择40个额外单词的问题,但这与这个过程的其他部分同样重要。在我看来,这些额外单词的选择应该基于它们与给定的200个单词的共现关系

如需进一步了解,以下两篇论文提供了很好的起点(包括流程架构、示例等):

  1. 对话系统中的自然语言生成
  2. 用于口语对话系统的随机语言生成

为了更好地理解共现关系的概念,我发现Sahlgren关于分布假设的文章非常有帮助。他的工作中的分布方法也可以用来学习我之前提到的谓词-论元结构。

最后,提供一些可用的工具:请查看这个ACL的NLG系统列表。我没有使用过这些工具,但听说SPUD和OpenCCG评价不错。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注