赞
踩
在文本中,如果需要对其进行相似度计算或者其他计算时,文字是无法直接进行计算的,所以就需要对文本进行量化处理,也就是进行数字编码才能对文本进行计算,而one hot就是其中一种出现比较早也比较简单的编码方式。
one-hot编码被称为【独热码,在英文文献中称做 one-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制】 [ 1 ] ^{[1]} [1]。 简单的来说就是用0和1的编码方式来表示需要处理的一些信息,以达到该信息向量化的一种手段。
- 性别:[“男”,“女”]
- 爱好:[“篮球”,“足球”,“乒乓球”]
男、女的序号分别为0、1
篮球、足球、乒乓球的序号分别为0、1、2
性别有两个属性,那么可以两位的特征向量来表示男性和女生,分别为
男 = ( 1 , 0 ) , 女 = ( 0 , 1 ) , 男=(1,0),女=(0,1), 男=(1,0),女=(0,1),
爱好有三个属性,那么可以三位的特征向量来表示篮球、足球和乒乓球,分别为
篮 球 = ( 1 , 0 , 0 ) , 足 球 = ( 0 , 1 , 0 ) , 乒 乓 球 = ( 0 , 0 , 1 ) 篮球=(1,0,0),足球=(0,1,0),乒乓球=(0,0,1) 篮球=(1,0,0),足球=(0,1,0),乒乓球=(0,0,1)
假设有如下语料
明天 我们 去 看 电影
明天 我们 去 爬山
明天 我们 去 运动
我 喜欢 打 篮球
我 不 喜欢 看 电视
上述五句话中一共涉及13个词,分别为
[明天 我们 去 看 电影 爬山 运动 我 喜欢 打 篮球 不 电视]
可以用13位的向量表示每一句话,分别如下
[1. 1. 1. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0.]
[1. 1. 1. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0.]
[1. 1. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
[0. 0. 0. 0. 1. 1. 0. 0. 0. 1. 1. 0. 0.]
[0. 0. 0. 1. 1. 1. 0. 0. 0. 0. 0. 1. 1.]
from keras.preprocessing.text import Tokenizer
corpus=[
'明天 我们 去 看 电影',
'明天 我们 去 爬山',
'明天 我们 去 运动',
'我 喜欢 打 篮球',
'我 不 喜欢 看 电视'
]
tokenizer=Tokenizer()
tokenizer.fit_on_texts(corpus)
sequences=tokenizer.texts_to_matrix(corpus)
print(sequences[:,1:])
【引用】
[1] 百度百科
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。