《Word2vec》1 模型的引入介绍与相关概念

文章目录

一 、Word2Vec模型的背景引入

1.1 One-hot模型

One-hot模型是是用N位的状态寄存器对N个状态进行编码

《Word2vec》1 模型的引入介绍与相关概念
如下所示,是有4个样本,每个样本都有三个特征,特征1表示当前样本的性别。

我们喂给算法怎么样的数据,算法就会给我们一个怎么样的结果。

假设如果用1表示女性,2表示男性。那么将相当于还没有进行算法的计算的时候,已经有数据的倾向性,间接认为男性比女性重要。如果我们用这种带着偏见的数据,喂给模型,那么模型也会认为男性比女性重要。所以这样的数据会很大因素影响最后的预测结果。这是我们不希望看到的。

所以我们就需要对这样的数据进行改进,让每个一个数据的重要性都一致。就可以进行One-Hot的编码。

N个寄存器,表示当前数据的N个状态,不同的位置表示不同的状态, 这样就表示数据之间的重要性是一致的,如下所示。

《Word2vec》1 模型的引入介绍与相关概念
优缺点分析:
《Word2vec》1 模型的引入介绍与相关概念
通过One-Hot 模型确实会,解决数据过于离散的问题,并且会扩充特征,但是同时也会带来维度灾难的问题。
《Word2vec》1 模型的引入介绍与相关概念

; 1.2 One-Hot编码的手动实现

import numpy as np

samples = ['我 毕业 于 北京理工大学','我 就职 于 中国 研究院']

token_index = {}
for sample in samples:
    for word in sample.split():
        if word not in token_index:
            token_index[word] = len(token_index) + 1
print(token_index)

results = np.zeros(shape = (len(samples),len(token)+1,max(token_index.values()) +1 )

for i, sample in enumerate(samples):
    for j, word in list(enumerate(sample.split())):
        index = token_index.get(word)
        print(j,index,word)
        results[i,j,index] = 1

print(result)

fi_results = np.zeros(shape=(len(samples), max(token_index.values())+1))
for i, sample in enumerate(samples):
    for _,word in list(enumerate(sample.split())):
        index = token_index.get(word)
        fi_results[i,index] = 1

print(fi_results)

array([[[0., 1., 0., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 0., 0.],
[0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0.]],
[[0., 1., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 0.],
[0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 1.],
[0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 0., 0.]]])
array([[0., 1., 1., 1., 1., 0., 0.],
[0., 1., 0., 1., 0., 1., 1.]])

1.3 Keras中one-hot编码的实现

from keras.preprocessing.text import Tokenizer

samples = ['我 毕业 于 北京理工大学','我 就职 于 中科院']

tokenizer = Tokenizer()
tokenizer.fit_on_texts(samples)
word_index = tokenizer.word_index
print(word_index)
print(len(word_index))

sequences = tokenizer.texts_to_sequences(samples)
print(sequences)

one_hot_results = tokenizer.texts_to_matrix(samples)
print(one_hot_results)

[[ 0. 1. 1. 1. 1. 0. 0.]
[ 0. 1. 1. 0. 0. 1. 1.]]

  1. Word2vec的相关概念与知识

2.1 Word2vec介绍

Word2Vec的作者的相关文章

《Word2vec》1 模型的引入介绍与相关概念

我们希望引入一个模型,能后减小表示每个词的维度,并且可以将每个词的相互的关系也能表达出来。

就引入了词向量,把所以的词放在一个向量空间当中。

《Word2vec》1 模型的引入介绍与相关概念
将每个词从一个非常稀疏的向量空间,嵌入到一个向量空间,这个过程就是词嵌入的过程。
《Word2vec》1 模型的引入介绍与相关概念
Word2Vec的注意点

《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念

; 2.2 Sigmoid函数与Softmax函数

Sigmoid函数

将取值范围映射到0,1区间的一个功能函数

《Word2vec》1 模型的引入介绍与相关概念
定义域和值域
《Word2vec》1 模型的引入介绍与相关概念

; Softmax函数

实现将向量中所以的元素归一化为一个概率分布,向量中所有的元素取值范围在0,1,之间,且或有元素的和为1,相当与一个归一化。

《Word2vec》1 模型的引入介绍与相关概念

2.3 二叉树相关概念

《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
树1,按层次编号5结点没有左子树,有右子树,10结点缺失。树2由于3结点没有字数,是的6,7位置空挡了。树3中结点5没有子树。

《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念

; 2.4 哈夫曼树Huffman

路径长度就是,从根结点往下走的路径长值

结点的权,是指的是给结点赋予一个权重

带权路径长度是指的是从路径长度与节点的权的乘积之和。

《Word2vec》1 模型的引入介绍与相关概念
哈夫曼树就是帯权路径长度最小的二叉树
《Word2vec》1 模型的引入介绍与相关概念
哈夫曼树的构建过程,即为要选中权重最小的两个节点,将这两个节点进行合并,逐步重下向上何必,最终只剩下一棵树。
构建出来的哈夫曼二叉树,权重值越大的离根节点,越近,权重值越小,就离根节点越远。
《Word2vec》1 模型的引入介绍与相关概念

2.5 哈夫曼编码

在信息通信领域哈夫曼编码的使用

等长编码,对于哪些不经常使用的字符,就会造成浪费,所以需要一个不等长的编码,进行优化整个流程。

《Word2vec》1 模型的引入介绍与相关概念
将每个字符的出现频率作权重,将编码问题转为哈夫曼树问题。
《Word2vec》1 模型的引入介绍与相关概念

; 文本领域的哈夫曼编码

《Word2vec》1 模型的引入介绍与相关概念

三、语言模型

3.1 经典语言模型

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

《Word2vec》1 模型的引入介绍与相关概念
句子S的概率,展开为其中词的出现条件概率的乘积
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念

; 3.2 神经网络语言模型

《Word2vec》1 模型的引入介绍与相关概念
由于文本库的有限性,N-gram不能解决文本中,词之间的相似性。
《Word2vec》1 模型的引入介绍与相关概念

《Word2vec》1 模型的引入介绍与相关概念
《Word2vec》1 模型的引入介绍与相关概念

Original: https://blog.csdn.net/qq_44951759/article/details/123964735
Author: 驭风少年君
Title: 《Word2vec》1 模型的引入介绍与相关概念

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/528748/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球