在自然语言处理中,一个重要的应用领域,就是文本的自动撰写。

关键词抽取、关键短语抽取、自动摘要提取都属于文本生成领域的一种应用。 不过这些应用,都是由多到少的生成。

文本生成主要技术:

  • 基于同义词的改写方法:这种方法是词汇级别的,能够在很大程度上保证替换后的文本与原文语 义一致。缺点就时会造成句子的通顺度有所降低,当然可以结合隐马尔可夫模型对句子搭配进行 校正提升整体效果。
  • 基于模板的改写方法。该方法的基本思想是,从大量收集的语料中统计归纳出固定的模板,系统 根据输入句子与模板的匹配情况,决定如何生成不同的表达形式。
  • 基于统计模型和语义分析生成模型的改写方法。这类方法就是根据语料库中的数据进行统计,获 得大量的转换概率分布,然后对于输入的语料根据已知的先验知识进行替换。
  • 基于神经网络的方法:本节主要讲的方法。

语言模型

什么是语言模型?

简单地说,语言模型就是用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率?

比如下面三句话:

  • 今天天气很好,我们去圆明园约会吧。
  • 今天很好天气,我们去圆明园约会吧。
  • 今天我们天气,很好去圆明园约会吧。

如何判断一个句子是否合理,很容易想到了一种很好的统计模型来解决 上述问题,只需要看它在所有句子中出现的概率就行了。第一个句子出 现的概率大概是80%,第二个句子出现的概率大概是50%,第三个句子 出现的概率大概是20%,第一个句子出现的可能性最大,因此这个句子 最为合理。

一元语言模型(unigram): 如果一个词的出现与它周围的词是独立的,称为一元语言模型。

二元语言模型(bigram) 如果一个词的出现仅依赖于它前面出现的一个词,称为二元语言模型。

神经网络语言模型

机器学习的套路是,对所研究的问题建模,构造一个目标函数,然后优化参数,最后用这 个目标函数进行预测。

神经网络语言模型

上节介绍的n-gram模型相信我们已经十分清楚了,但是n-gram模型的一个突出的确 定就是,n的设置不宜过大,n从2到3提升效果显著,但是从3-4提升的效果就没那 么好了。而且随着n的增大,参数的数量是以几何形势增长的。

因此,n-gram模型只能提取某个词前面两到三个词的信息,而不能提取更多的信息 了。然而很明显的是,整文本序列中,包含更前面的词能够提供比仅仅2到3个词更 多的信息,这也是神经网络语言模型着重要解决的问题之一。

神经网络模型主要在以下两点上寻求更大的进步:

  • n-gram模型没有考虑上下文中更多的词提供的信息
  • n-gram模型没有考虑词与此之间的相似性。

神经网络语言模型可以概括为以下三点:

  • 将词汇表中的每个词表示成一个在m维空间里的实数形式的分布式特征向量。
  • 使用序列中词语的分布式特征向量来表示连接概率函数。
  • 同时学习特征向量和概率函数的参数。

特征向量表示词的不同特征:每一个词都是向量空间内的一个点。特征的个数通常 都比较小,比如30,60或者100,远远小于词汇表的长度。概率函数是在给定一个词 前面的若干词的情况下,该词出现的条件概率。调整概率函数的参数,使得训练集 的对数似然达到最大。每个词的特征向量是通过训练得到的,也可以用先验知识进 行初始化。

Seq2Seq

RNN详见http://www.sniper97.cn/index.php/note/deep-learning/3161/

Seq2Seq详见http://www.sniper97.cn/index.php/note/deep-learning/3487


0 条评论

发表回复

Avatar placeholder

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