Если вы хотите использовать ваше слово корпус в качестве встраивания, например, если у вас есть корпус как этот:
корпус:
- "Эта паста хороша"
- «Эта паста очень хорошая»
, и вы хотите использовать встраивание, вы можете использовать Tokenizer
из TF, см. this . Он создаст dict
, содержащий слова в качестве ключей и индекс в качестве значения, как в приведенном выше корпусе. Dict выглядит так:
word_index = {"this": 1, "pasta": 2, "good": 3, «очень»: 4} вы можете избежать стоп-слов.
Теперь вы можете сделать вектор встраивания слов, используя эти слова word_index, чтобы он выглядел как
- Для корпуса 1: [1, 2 , 3]
- Для корпуса 2: [1, 2, 4, 3]
Достаточно разговора, давайте посмотрим код: Также определим oov_token
для словарных слов.
Вы можете сделать так:
vocab_size = 10000
embedding_dim = 16
max_length = 120
trunc_type='post'
oov_tok = "<OOV>"
from tensorflow.keras.preprocessing.text import Tokenizer
tokenizer = Tokenizer(num_words = vocab_size, oov_token=oov_tok)
tokenizer.fit_on_texts(training_sentences)
word_index = tokenizer.word_index
sequences = tokenizer.texts_to_sequences(training_sentences) # This will create word embedding vector
padded = pad_sequences(sequences,maxlen=max_length, truncating=trunc_type) # This will padd zeros according to `trunc_type`, here add zeros in last
testing_sequences = tokenizer.texts_to_sequences(testing_sentences)
testing_padded = pad_sequences(testing_sequences,maxlen=max_length)
Также посмотрите этот GitHub код , надеюсь, это поможет