One Hot Encoding dando mesmo número de palavras diferentes em keras

votos
1

Por que eu estou recebendo mesmos resultados para diferentes palavras?

import keras
keras.__version__
'1.0.0'
import theano 
theano.__version__
'0.8.1'

from keras.preprocessing.text import one_hot
one_hot('START', 43)
[26]
one_hot('children', 43)
[26]
Publicado 13/04/2016 em 06:11
fonte usuário
Em outras línguas...                            


2 respostas

votos
2

unicidade não garantido em uma codificação quente

ver uma documentação keras quente

Respondeu 13/04/2016 em 08:45
fonte usuário

votos
0

A partir do código-fonte Keras , você pode ver que as palavras são hash modulo a dimensão de saída (43, no seu caso):

def one_hot(text, n,
        filters='!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~\t\n',
        lower=True,
        split=' '):
    seq = text_to_word_sequence(text,
                            filters=filters,
                            lower=lower,
                            split=split)
    return [(abs(hash(w)) % (n - 1) + 1) for w in seq]

Por isso, é muito provável que haverá uma colisão.

Respondeu 17/04/2017 em 05:18
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more