TD8_Modèle de langue neuronal (implé naïve)
CONTEXT_SIZE = 2
EMBEDDING_DIM = 10
# We will use poems by Andrée Chedid
# We should tokenize the input, but we will ignore that for now
# and just split on spaces
train_sent = """
Mon autre , mon semblable ,
en cette chair qui se démène ,
en ce sang qui cavalcade ,
en ce complot du temps ,
en cette mort qui nous guette ,
en cette fraternité de nos fugaces vies ,
mon semblable , mon autre ,
là où tu es je suis .
Le hasard ne cesse de ramener vers nos rivages
quelques merveilles que nous n' avions pas cueillies ,
quelques malheurs que nous n' avions pas ourdis .
Surgi des ténèbres ou de l' éclair ,
le hasard pose tantôt son aile sur notre épaule ,
tantôt ses griffes dans la chair de nos vies .
""".split()
# Build list of examples: each example is ([ word_i-2, word_i-1 ], target word)
train_examples = [( [ train_sent[i], train_sent[i+1] ], train_sent[i+2] )
for i in range(len(train_sent) - 2)]
# print the first 3, just so you can see what they look like
print(train_examples[:3],"\n")
vocab = set(train_sent) # type_vocab=set
# convertir le type set en dic
w2i = {word: i for i, word in enumerate(vocab)} # type_w2i=dic
# encode the training examples into word ids
# convertir des mots en nombre
train_examples = [ ( [ w2i[ex[0][0]], w2i[ex[0][1]] ], w2i[ex[1]] ) for ex in train_examples ]
print(train_examples[:3])
打印结果 :
[(['Mon', 'autre'], ','), (['autre', ','], 'mon'), ([',', 'mon'], 'semblable')]
[([65, 22], 64), ([22, 64], 7), ([64, 7], 3)]