1.文本表示按照力度划分:字级别、词级别、句子级别文本表示按照量级划分:字粒度:把每个字变成向量;词粒度:把每个词变成向量;句粒度:把每个句子变成向量。文本表示按照另一个量级去分:离散型的表示:分布式表示:embedding 1.embedding:概念:在one_hot基础上随机一张表,然后one_hot矩阵与随机表相乘。(词汇表有多大,随 机的表就有多少行,想把一个字变成多少维的向量,那么随机的表就有多少列)例如:ihello,词汇表有5个,因此one_hot可以表示为6行5列,此时随机的表行数为5,列数设置:想把一个字变成多少维的向量,那么随机的表就有多少列作用:通过embedding把一个one_hot稀疏的向量,变成一个稠密的向量。 小知识:1.用one_hot编码出来的变量是离散的,embedding从离散变成了分布;2.embedding表是随机的,所以随机出来的表不好,但是它可以跟随模型一起训练,因此它最终一定是比one_hot好的。
#tensorflow代码
import numpy as np
import torch
import torch.nn as nn
from collections import Countermstr = '我们是一家人啊啊'word_counter = Counter()
for i in mstr:word_counter.update(i)word_list = [i[0] for i in word_counter.most_common()]
word_dict = {}
for i,j in enumerate(word_list):word_dict[j] = iword_ids = []
for i in mstr:word_ids.append(word_dict[i])word_ids = np.array([word_ids])class Model(nn.Module):def __init__(self):super(Model, self).__init__()self.C = nn.Embedding(5,10)def forward(self,X):out = self.C(X)return outword_ids_tensor = torch.tensor(word_ids)
model = Model()
out = model(word_ids_tensor)
print(out.data.numpy())
#torch代码
import numpy as np
import torch
import torch.nn as nn
from collections import Countermstr = '我们是一家人啊啊'word_counter = Counter()
for i in mstr:word_counter.update(i)word_list = [i[0] for i in word_counter.most_common()]
word_dict = {}
for i,j in enumerate(word_list):word_dict[j] = iword_ids = []
for i in mstr:word_ids.append(word_dict[i])word_ids = np.array([word_ids])class Model(nn.Module):def __init__(self):super(Model, self).__init__()self.C = nn.Embedding(5,10)def forward(self,X):out = self.C(X)return outword_ids_tensor = torch.tensor(word_ids)
model = Model()
out = model(word_ids_tensor)
print(out.data.numpy())
上一篇:事关住宅!江苏发布新规 江苏住宅标准 事关住房黑龙江发布重磅新规
下一篇:【高端访谈】浦发硅谷银行行长陆珏:全周期陪伴企业成长,助力中国科创企业走向世界 娴﹀彂纭呰胺閾惰闄嗙弿 娴﹀彂纭呰胺閾惰琛岄暱闄嗛挵