NLP系列文章(一)——字词的表示

引言

中文自然语言处理的基本单位是字与词,同时可以将字词的表示视为文本表示的基础,广义上的文本表示包含字词的表示,我们这里讨论的文本指的是句子以及篇章的形式。文本中词汇的表示可以分为离散表示和分布式表示。

离散词表征

文本经过分词工具的处理后会生成词汇的序列,把所有的词汇集中到一起去重后就组成了当前语料库的词表。离散型表示法中最经典的就是独热编码(One-Hot)表示方法。对每个词汇生成一个词表大小的全0向量,仅在该词出现的下标位置的值置为1。

	例如:
	词表(vocab)={我,爱,自然,语言,处理}
	词汇“自然”的one-hot表示为:[0, 0, 1, 0, 0]
	词汇“我”的one-hot表示为:[1, 0, 0, 0, 0]

one-hot表示方法的优点在于:简单、有效;但是缺点也较为明显:词汇与词汇之间存在语义鸿沟(无法计算词汇之间的相似性),并且当语料中的词汇数量大幅增加时向量的维度也在增加,使用这种表示方法会带来大量的空间浪费与高稀疏性。

分布式词表征

由于离散表示方法的所带来的问题,研究人员就考虑是否可以利用低维的空间来表示高维空间数据的方法。并且利用”类似“二进制的思想可以在较小的空间中表示多个数(如4位二进制码可以表示16个数)。并且每位的数值是浮点型的,则表示的范围可以从 2 n 2^n 上升到“无穷大”。

Word2Vec就是NLP领域较为经典的分布式词表征方法。这个方法是受到神经语言模型NNLM启发而由Google在2013年提出的词向量模型,在NLP领域拥有里程碑式的意义,以至于后期的ELMo、BERT、GPT都是受词向量的影响而诞生。Word2Vec旨在解决one-hot表示方法的语义鸿沟以及稀疏性的问题,提出了两种词向量训练方式基于CBOW和Skip-Gram的模型。
图1
其中CBOW是利用上下文去预测中心词,而Skip-Gram与之相反,利用中心词预测背景词。
Word2Vec有较好的特点:

  1. 词向量的维度可以人为设定。
  2. 不需要标注数据即可训练。
  3. 词向量之间可以利用适当的度量方式进行相似度计算。
  4. 训练得到的词向量,语义相似的词汇在空间上也相近,并且具有较好的推理能力。

离散词表征的例子可能会变成如下情况:

	例如:
	词表(vocab)={我,爱,自然,语言,处理}
	词汇“自然”的词向量表示为:[0.546, 1.253, 0.142, 0.954, 2.035, ...]
	词汇“我”的词向量表示为:[3.012, 0.506, 1.953, 0.127, 0.035, ...]

将词向量降维到2维平面,从图2可以看出,语义上相近的词汇在空间上也相近。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_19672707/article/details/105494739