0 Вопрос: Как вставлять только самые частые слова

вопрос создан в Thu, May 2, 2019 12:00 AM

Я хочу реализовать вложение word2vec для 100 (или X) большинства используемых слов.

Здесь я кодирую текст в целые числа:

vocab_size = 100

data = nltk.sent_tokenize(train_text)

tokenizer = Tokenizer()
tokenizer.num_words = vocab_size
tokenizer.fit_on_texts(data)
tokenizer.oov_token = "UNK"

encoded = tokenizer.texts_to_sequences(data)

Одна проблема заключается в том, что приведенный выше код просто хранит наиболее часто используемые слова каждого предложения в закодированном векторе и отбрасывает остальные:

[1, 1, 5, 2, 15, 10, 5, 6, 28, 7, 13]
['s s in the that is in to be a with']

Хотя полное предложение таково:

<s>although destroyed in 1910 , the 1771 mansion that is depicted in old photographs appears to be a georgian-style brick dwelling with gambrel-roofed brick wings .</s>

Я хотел бы использовать "UNK" для слов, которые не входят в число наиболее часто встречающихся слов, и соответствующее целое число в закодированном векторе.

Моя главная проблема - встраивание детали:

embedding_matrix = np.zeros((vocab_size, 50))
for word, i in tokenizer.word_index.items():
    embedding_vector = embeddings_index.get(word)
    if embedding_vector is not None:
        embedding_matrix[i] = embedding_vector

Здесь я просто хочу использовать закодированные целые числа, а не индекс каждого слова, чтобы я мог оставить размер vocab_size таким же, как 100

Не могли бы вы рассказать мне об одной или двух из указанных выше проблем?

    
0
  1. Хотите обучить модель word2vec вашим собственным данным или обрезать какой-либо существующий набор слов-векторов до терминов из топ-100? Если вы тренируете свою собственную модель, используете ли вы существующую библиотеку или пытаетесь реализовать алгоритм word2vec самостоятельно? Есть ли причина, по которой вы хотите заменить все остальные слова на UNK? (Это не типично и, вероятно, сделает слова-слова для 100 оставшихся слов хуже, а вектор UNK также не имеет смысла. В word2vec чаще всего просто игнорируют менее частые /неинтересные слова.)
    2019-05-02 17: 19: 59Z
  2. @ правильно, думаю, это бессмысленно. О матрице встраивания я могу ограничить цикл первыми 100 случаями
    2019-05-02 17: 51: 45Z
0 ответов                              0                         
источник размещен Вот