今天是Datawhale组队学习之NLP组的第一天,主要初步了解了一些人类语言的历史和Word2vec的概念,与NLP无关的譬如语言历史的部分就不在此赘述了,今天这篇博文主要介绍两种对文本的编码模式——one-hot 和 Word2vec

one-hot

什么是 one-hot

one-hot是比较常用的文本特征特征提取的方法,因为其简单实用,方便操作,解释性强。

one-hot编码,又称“独热编码”。就是用N位状态寄存器编码N个状态,每个状态都有独立的寄存器位,且这些寄存器位中只有一位有效,说白了就是只能有一个状态。

在NLP中使用这种编码方式,第一步便是要对我们的整体训练集进行分词并进行编号(或者如果有规定好的语言字典,比如所有英文词汇汇总起来的一个文本文档,就对这个字典进行分词),然后我们便得到了所有可能出现的组成语句的单词。第二步便是我们的input,如果我们的input是单词的话,那么经过one-hot处理后,得到的是一个1×n维的向量(n为分词后得到的总词数,即features),该向量的特点是只有一个特征处取值为1,其他地方取值为0。如果input为一段文本,得到的依然为1×n的向量,只不过是该文本段中出现了特征词的地方为1,没有出现为0。(文字解释不清楚,下面举个例子)。

分词后的结果: I you love beautiful are gilrfriend my will life boyfriend
上面一共有十个词,这十个词便是我们的十个特征,相应编号1——10。

如果input为 love,那么其编码为【0,0,1,0,0,0,0,0,0,0】
如果input为 are,那么其编码为【0,0,0,0,1,0,0,0,0,0】
如果input为 I love you ,那么其编码为【1,1,1,0,0,0,0,0,0,0】
如果input为 you are my girlfriend ,那么其编码为【0,1,0,0,1,1,1,0,0,0】

做完上述工作之后,我们就得到了一个m×n的0—1矩阵,m为输入样本个数,n为分词后得到的特征个数。然后使用合适的分类器进行训练即可。

当然,这种方式的优点与缺点也显而易见。

one-hot的优缺点

优点:

1、简单快捷地解决了分类器处理离散数据困难的问题。
2、在一定程度上起到了扩展特征的作用。
3、操作简单,解释性强。

缺点:
1、one-hot是一个词袋模型,不考虑词与词之间的顺序问题,而在文本中,次的顺序是一个很重要的问题
2、one-hot是基于词与词之间相互独立的情况下的,然而在多数情况中,词与词之间应该是相互影响的
3、one-hot得到的特征是离散的,稀疏的

而Word2vec恰好解决了上述one-hot的三个缺点

Word2vec

什么是 Word2vec

Dristributed representation可以解决One hot representation的问题,它的思路是通过训练,将每个词都映射到一个较短的词向量上来。所有的这些词向量就构成了向量空间,进而可以用普通的统计学的方法来研究词与词之间的关系。这个较短的词向量维度是多大呢?这个一般需要我们在训练时自己来指定。

比如我们将词汇表里的词用"Royalty",“Masculinity”, "Femininity"和"Age"4个维度来表示,King这个词对应的词向量可能是(0.99,0.99,0.05,0.7)(0.99,0.99,0.05,0.7)。当然在实际情况中,我们并不能对词向量的每个维度做一个很好的解释。

在Word2vec中,用来判别相似度度量的是概率!
Datawhale组队学习之NLP组第一天 Introduction and Word Vectors

Word2vec里面一些函数,如目标函数,预测函数等

Datawhale组队学习之NLP组第一天 Introduction and Word VectorsDatawhale组队学习之NLP组第一天 Introduction and Word Vectors
在最大化预测函数时(这个预测函数借用了softmax函数的思想,运用指数运算和分母归一化得到概率),需要运用梯度下降法进行最优化处理,下面给出公式推导。

Datawhale组队学习之NLP组第一天 Introduction and Word VectorsDatawhale组队学习之NLP组第一天 Introduction and Word Vectors可以理解,当 P(o|c)→1 ,即通过中心词 c 我们可以正确预测上下文词 o ,此时我们不需要调整 uo ,反之,则相应调整 uo 。

结语:

因为第一天学到的知识就这么多,所以本篇博客就写到这里,其他学习内容请期待下面的博客。

参考文献:

1、https://blog.csdn.net/Dorothy_Xue/article/details/84641417
2、https://www.jianshu.com/p/471d9bfbd72f
3、https://looperxx.github.io/CS224n-2019-01-Introduction%20and%20Word%20Vectors/#notes-01-introduction-svd-and-word2vec

相关文章:

  • 2021-09-27
  • 2021-10-25
  • 2021-09-08
  • 2021-06-03
  • 2021-05-13
  • 2021-12-29
  • 2021-08-19
  • 2021-04-30
猜你喜欢
  • 2021-10-10
  • 2021-05-18
  • 2021-06-28
  • 2021-11-13
  • 2021-07-26
  • 2021-11-03
  • 2021-05-23
相关资源
相似解决方案