Нет существенной причины использовать Word2Vec
для этого.Задача Word2Vec
состоит в том, чтобы сопоставить слова с многомерными «плотными» векторами со многими координатами с плавающей точкой.
Хотя Word2Vec
и сканирует ваш тренировочный корпус на наличие всех уникальных слов, и присваивает каждому уникальному слову целую позицию в его внутренних структурах данных, вы обычно не сделаете модель только одномерной (size=1
), или спросите модель для целочисленного слота слова (внутренняя деталь реализации).
Если вам просто нужно сопоставление (строковое слово) -> (int id), класс gensim Dictionary
может это сделать.См .:
https://radimrehurek.com/gensim/corpora/dictionary.html
from nltk.tokenize import word_tokenize
from gensim.corpora.dictionary import Dictionary
sometext = "hello how are you doing?"
tokens = word_tokenize(sometext)
my_vocab = Dictionary([tokens])
print(my_vocab.token2id['hello'])
Теперь, если на самом деле есть веская причина для использования Word2Vec
- например, требуются многомерные векторы для увеличения словарного запаса, обученного на значительномколичество различного текста - и ваша реальная потребность в том, чтобы знать его внутренние целочисленные слоты для слов, вы можете получить доступ к ним через внутренний * 10120 * словарь vocab
свойства:
print(model.wv.vocab['hello'].index)