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

标签 text nlp

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

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

也可以测试一下句子有多相似?因为我随机生成句子的一部分并想检查生成的句子的多样性。

最佳答案

许多 NLP 的东西使用名为 'Language Models' 的东西工作.

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

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

无论如何,考虑语言模型的一种方式是,它们是接收新文本并告诉您新文本与语言模型所用的训练语料库的相似程度的系统。因此,如果您构建了 2 个语言模型,一个来自莎士比亚的所有剧本,另一个来自大量法律文件,那么第二个应该为您提供更高概率的新法律文件的句子发布(与第一个模型相比)而第一个模型应该为您提供其他一些旧英语戏剧(由其他作者编写)的更高概率,因为该戏剧可能更类似于莎士比亚(就词的种类而言)使用,句子长度,语法等)而不是现代法律语言。

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

回到您的问题,您需要根据您认为听起来自然的文本构建一个语言模型,然后使用该语言模型来评估您想要衡量其自然度的句子。为此,您必须确定一个好的训练语料库,并决定要构建的语言模型类型。

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

关于text - 自然语言生成 - 如何测试它听起来是否自然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12240566/

相关文章:

python - 尝试在开始点和结束点之间复制/粘贴文本、转置和交换数据点

CSS: wrap text <pre> 标签断词问题

tensorflow - 将字数向量逆变换为原始文档

java - 当改变对话视角时,如何可靠地将 "you"替换为 "me"或 "I"?

java - 将复数名词转换为单数

python - python中根据数据框中的列值循环文本数据

Android - TextSwitcher - 更改 TextView

python - 如何使用python3.6.4提取不同行的单词文本并输出到两个文本文件中

c++ - 无法从 winapi 中的编辑控件获取文本

algorithm - 词干提取——代码示例还是开源项目?