Python gensim создает модель word2vec из векторов (в ndarray) - PullRequest
1 голос
/ 14 мая 2019

У меня есть ndarray со словами и их вектором (размером 100 на слово).Например:

Computer 0.11 0.41 ... 0.56
Ball     0.31 0.87 ... 0.32

И т. Д.

Я хочу создать из нее модель word2vec:

model = load_from_ndarray(arr)

Как это можно сделать?Я видел

KeyedVectors

, но он принимает только файл, а не массив

1 Ответ

1 голос
/ 14 мая 2019

Нет никаких удобных методов, чтобы превратить ваш собственный массив / список слов в KeyedVectors. Так что вам придется создать это вручную в своем собственном коде.

Но это довольно простой объект, в основном один необработанный массив и дикт для сопоставления слов с индексами, и доступен весь источник:

https://github.com/RaRe-Technologies/gensim/blob/develop/gensim/models/keyedvectors.py

Я бы особенно предложил стратегии выполнения одного или обоих из:

  • . Подробно рассмотрим метод load_word2vec_format(), включающий вспомогательную функцию с аналогичным названием в файле base_any2vec.py, и просматриваем каждый из шагов, которые они используют при чтении файла и создании полного экземпляра * 1015. *

  • обучение манекена KeyedVectors одним из поддерживаемых способов - например, путем обучения Word2Vec некоторому синтетическому корпусу, который включает в себя именно те слова, которые вам нужны, а затем либо осмотр этого объекта, чтобы понять необходимые части рабочего экземпляра, или мутирование этого экземпляра на месте, чтобы затем иметь векторные отображения, которые вы предпочитаете.

...