【问题标题】:Natural Language Generation - how to test if it sounds natural自然语言生成 - 如何测试它是否听起来自然
【发布时间】:2012-09-02 23:26:03
【问题描述】:

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

我正在使用Standford Parser 进行细分,但这并不完全符合我的要求!

还可以测试句子的相似程度吗?当我随机生成部分句子并想检查生成的句子的种类时。

【问题讨论】:

  • 我想阅读它们是不可能的?
  • @sudowned 嗯,它不是很统计是吧!我需要一种能产生结果且不严重依赖主观性的方法
  • 尝试使用 Google 的 ngram 数据来检查字符串是否存在。对于相似度,请查看 Dice 系数或余弦相似度。

标签: text nlp


【解决方案1】:

很多 NLP 的东西都使用名为 'Language Models' 的东西。

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

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    相关资源
    最近更新 更多