我只有一组句子,是我根据绘画分析生成的。但是我需要测试它们听起来有多自然。是否有任何 api 或应用程序可以做到这一点?
我正在使用Standford Parser进行细分,但这并不能完全完成我想要的工作!
也可以测试一下句子的相似程度吗?当我随机生成部分句子并想检查生成的句子的种类时。
我只有一组句子,是我根据绘画分析生成的。但是我需要测试它们听起来有多自然。是否有任何 api 或应用程序可以做到这一点?
我正在使用Standford Parser进行细分,但这并不能完全完成我想要的工作!
也可以测试一下句子的相似程度吗?当我随机生成部分句子并想检查生成的句子的种类时。
许多 NLP 的东西都使用称为“语言模型”的东西。
语言模型是可以接收一些文本并返回概率的东西。该概率通常应指示给定文本的“可能性”程度。
您通常通过获取大量文本(我们称之为“训练语料库”)并从中计算一些统计数据(代表您的“模型”)来构建语言模型,然后使用这些统计数据来获取新的、以前的看不见的句子和它们的返回概率。
您可能应该在 Google 上搜索“语言模型”、“unigram 模型”、“n-gram 模型”,然后单击一些结果来查找有助于您理解前一句的文章或演示文稿。(我很难为你推荐一个合适的教程,因为我不知道你现有的背景是什么)
无论如何,考虑语言模型的一种方法是,它们是接收新文本并告诉你新文本与语言模型所用的训练语料库有多相似的系统。因此,如果您构建 2 种语言模型,一种来自莎士比亚的所有戏剧,另一种来自大量法律文件,那么第二种语言模型应该会给您一个更高的概率来为刚刚获得的一些新法律文件提供句子已发布(与第一个模型相比),而第一个模型应该为您提供其他一些古英语戏剧(由其他作者撰写)的更高概率,因为该戏剧可能更类似于莎士比亚(就单词的种类而言使用、句子长度、语法等),而不是现代法律语言。
你看到斯坦福解析器为你给出的句子返回的所有东西都是使用语言模型生成的。思考这些特征是如何构建的一种方法是假设计算机尝试了所有可能的标签组合和每个可能的解析树来分析你给它的句子,并使用一些聪明的语言模型来识别最可能的标签序列和最可能的解析树,并将它们返回给您。
回到您的问题,您需要根据您认为听起来自然的文本构建一个语言模型,然后使用该语言模型来评估您想要衡量其自然度的句子。为此,您必须确定一个好的训练语料库并决定要构建哪种类型的语言模型。
如果您想不出更好的方法,维基百科文章的集合可能会成为一个很好的训练语料库,代表自然发音的英语是什么样的。
至于模型类型,“n-gram 模型”可能足以满足您的任务。更复杂的模型,如“隐马尔可夫模型”和“PCFG”(为您链接到的斯坦福页面提供动力的东西)肯定会让事情变得更好,但 n-gram 绝对是您可以开始的最简单的东西。