每天五分钟自然言语处理NLP:经过共现矩阵方式完成词的编码表示
作者头像
  • 科技时辰
  • 2020-07-29 06:38:51 3

本文重点

在n-gram模型中,虽然可以捕捉到词语间的顺序信息,但其局限性在于只能捕捉相邻词语的关系。例如,2-gram模型只能识别相邻的两个词,而对于具有一定距离的词语则无能为力。比如“我”和“你”之间的关系,尽管距离不远,但2-gram模型无法捕捉到这种关系。因此,我们需要寻找一种新的方法来更好地捕捉词语间的相对位置信息。

本文将介绍一种新的词编码方法——共现矩阵编码方式。这种方法能够更有效地捕捉词与词之间的相对位置信息,从而提升模型的性能。

词与词地位的重要性

在自然语言处理领域,词与词之间的相对位置信息至关重要。通常认为,在一句话中,位置相近的词语具有相似的意义,因此它们的词向量应该尽量接近。为了实现这一目标,我们需要找到一种有效的方法来学习词与词之间的相对位置。

如何学习词与词之间的相对位置?

学习词与词之间的相对位置可以通过多种方法实现,其中一种有效的方法是共现矩阵法。共现矩阵法的核心思想是,如果两个词在同一个句子中共同出现,那么这两个词的位置关系就可以被捕捉到。通过这种方法,我们可以构建出一个共现矩阵,进而捕捉到词与词之间的相对位置信息。

共现矩阵的应用

假设我们有一个包含三个句子的小语料库:

  • I like deep
  • I learning I like NLP
  • I enjoy flying

根据这些句子,我们可以构建一个共现矩阵,如下所示:

| | I | like | deep | learning | NLP | enjoy | flying | |---|-----|------|------|----------|-----|-------|--------| | I | 0 | 2 | 1 | 1 | 0 | 1 | 0 | | like | 2 | 0 | 0 | 0 | 1 | 0 | 0 | | deep | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | learning | 1 | 0 | 0 | 0 | 0 | 0 | 0 | | NLP | 0 | 1 | 0 | 0 | 0 | 0 | 0 | | enjoy | 1 | 0 | 0 | 0 | 0 | 0 | 1 | | flying | 0 | 0 | 0 | 0 | 0 | 1 | 0 |

在这个共现矩阵中,每一行和每一列表示语料库中的所有词。例如,“like”这个词的向量表示可以是(2, 0, 0, 1, 0, 1, 0),这表示“like”与其他词共同出现的频率。

共现矩阵的局限性及解决方案

尽管共现矩阵是一个有效的工具,但它也存在一些问题。首先,随着词典大小的增加,每个词的维度也会增加,这会导致较高的内存消耗。其次,共现矩阵可能会变得非常稀疏。为了解决这些问题,我们可以采用奇异值分解(SVD)方法。SVD可以将共现矩阵分解成几个低维矩阵,从而减少内存消耗并提高效率。SVD分解的计算复杂度大约为O(n^3)。

    本文来源:图灵汇
责任编辑: : 科技时辰
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
矩阵言语编码经过表示分钟完成每天自然方式
    下一篇