自然语言生成-如何测试它听起来是否自然



我只有一组句子,这些句子是我根据绘画分析生成的。然而,我需要测试它们听起来有多自然。有没有任何api或应用程序可以做到这一点?

我正在使用Standford Parser来给我一个分解,但这并不能完全完成我想要的工作!

还可以测试句子的相似程度吗?由于我随机生成部分句子,并想检查生成的句子的多样性。

许多NLP的东西都使用称为"语言模型"的东西。

语言模型是可以接收一些文本并返回概率的东西。这种概率通常应该指示给定文本的"可能性"

你通常通过提取大量文本(我们称之为"训练语料库")并从中计算一些统计数据(代表你的"模型")来构建语言模型,然后使用这些统计数据来提取以前看不见的新句子并返回它们的概率
你可能应该在谷歌上搜索"语言模型"、"unigram模型"one_answers"n-gram模型",然后点击一些结果,找到一些有助于你理解前一句的文章或演示。(我很难为你推荐合适的教程,因为我不知道你现有的背景是什么)

无论如何,思考语言模型的一种方法是,它们是接收新文本并告诉你新文本与语言模型的训练语料库有多相似的系统。因此,如果你建立两个语言模型,一个是莎士比亚写的所有戏剧,另一个是大量法律文件,第二种模式应该给你一个更高的概率,让你对刚刚发布的一些新的法律文件判刑(与第一种模式相比),而第一种模式应该让你对其他一些古老的英国戏剧(由其他作家写的)判刑,因为那部剧可能更像莎士比亚(就使用的单词种类、句子长度、语法等而言)比现代法律语言更重要。

您看到的stanford语法分析器为您提供的句子返回的所有内容都是使用语言模型生成的。思考这些功能是如何构建的一种方法是,假设计算机尝试了你给它的句子的每一种可能的标签组合和每一个可能的解析树,并使用一些巧妙的语言模型来识别哪一个是最可能的标签序列和最可能的解析树法,然后将它们返回给你。

回到你的问题上来,你需要从你认为听起来自然的文本中建立一个语言模型,然后使用该语言模型来评估你想要衡量自然度的句子。要做到这一点,你必须确定一个好的训练语料库,并决定你想要建立什么类型的语言模型。

如果你想不出更好的东西,一组维基百科文章可能会成为一个很好的训练语料库,代表听起来自然的英语
至于模型类型,一个"n-gram模型"可能足以满足您的任务。更复杂的模型,如"隐马尔可夫模型"one_answers"PCFG"(为你链接的斯坦福页面提供动力的东西),肯定会让事情变得更好,但n-gram绝对是你能从中开始的最简单的东西。

最新更新