PCA на вложениях word2ve c с использованием уже существующей модели - PullRequest
0 голосов
/ 14 июля 2020

У меня есть модель word2ve c, обученная на твитах. У меня также есть список слов, и мне нужно получить вложения из слов, вычислить первые два основных компонента и построить каждое слово в двухмерном пространстве.

Я пытаюсь следовать руководствам, таким как этот: https://machinelearningmastery.com/develop-word-embeddings-python-gensim/

Однако во всех таких руководствах они создают модель на основе случайного предложения, которое они используют, а затем вычисляют PCA для всех слов в модели. Я не хочу этого делать, я хочу только вычислить и построить график c слов. Как я могу использовать модель, которая у меня уже есть, которая содержит тысячи слов, и вычислить первые два основных компонента для заданного списка слов, которые у меня есть (около 20)? у них есть «модель», состоящая только из слов из написанного предложения. Затем они выполняют «X = model [model.wv.vocab]», затем «pca.fit_transform (X)». Если бы мне пришлось скопировать этот код, я бы сделал PCA на огромной модели, чего я не хочу делать. Я просто хочу извлечь вложения некоторых слов из этой модели, а затем вычислить PCA для этих нескольких слов. Надеюсь, это имеет смысл, заранее спасибо. Пожалуйста, дайте мне знать, если мне нужно что-то уточнить.

1 Ответ

0 голосов
/ 14 июля 2020

Создайте коллекцию с той же структурой (словарь), что и

model.wv.vocab,

, заполните ее целевыми словами и вычислите PCA.

Вы можете сделать это с помощью следующего кода:

my_vocab = {}
for w in my_words:
    my_vocab[w] = model.vw.vocab[w]

X = model[my_vocab]
pca.fit_transform(X)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...