如何将单个单词转换为神经网络输入的向量

时间:2017-05-17 02:09:44

标签: machine-learning neural-network deep-learning

我是ML的新手,并且考虑将一个简单的问候世界问题作为使用ANN的一种做法。这是问题,比如我有一个带有英文名称及其相应性别的训练数据集:

ALEX,M
BONNIE,F
CARLO,F
DAVID,M
EDDY,M
...

我想建立一个模型来预测名称的性别。由于ANN的输入必须是矢量形式,我想将名称转换为具有与数据集中最长名称相同的许多特征的向量(即10),然后将A = 1,B = 2 ,...,Z = 26,并且向量为null = -1。

例如:

ALEX will be [1, 12, 5, 24, -1, -1, -1, -1, -1, -1] 

输出图层将为{0,1},代表男性或女性。

这听起来很奇怪。像这样将单个单词输入ANN是一种好方法吗?

1 个答案:

答案 0 :(得分:1)

使用单热编码。这意味着您有一个大的输入大小,但它已被证明是有效的。使用A=1, B=2, Z=26会给网络一种印象,即B比A更接近A,而且需要大量隐藏节点来映射函数。

使用单热编码:

  • A:[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,0]
  • B:[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]
  • Z:[0,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]
  • none:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]

因此每个字母需要26个输入。