File size: 1,034 Bytes
7216e1f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | import torch
def build_vocab(sentences):
vocab = {"[PAD]": 0, "[UNK]": 1}
for sentence in sentences:
for word in sentence.split():
if word not in vocab:
vocab[word] = len(vocab)
return vocab
def sentence_to_token_ids(sentence, vocab):
return [vocab.get(word, vocab["[UNK]"]) for word in sentence.split()]
def get_embedding_tensor(sentence, vocab, embedding_layer):
token_ids = sentence_to_token_ids(sentence, vocab)
seq = torch.tensor(token_ids, dtype=torch.long).unsqueeze(0) # Add batch dimension
seg = torch.zeros_like(seq)
embedding_tensor = embedding_layer(seq, seg)
return embedding_tensor
def get_input_tensors(sentence, vocab):
def sentence_to_token_ids(sentence, vocab):
return [vocab.get(word, vocab["[UNK]"]) for word in sentence.split()]
token_ids = sentence_to_token_ids(sentence, vocab)
seq = torch.tensor(token_ids, dtype=torch.long).unsqueeze(0) # Add batch dimension
seg = torch.zeros_like(seq)
return seq, seg |