Как я могу посчитать частоты слов в обучающей модели Word2Vec?

#python #word2vec #word-embedding #word-frequency #natural-language-processing

#python #word2vec #встраивание слов #частота слов #обработка естественного языка

Вопрос:

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

 term    count
apple   123004
country 4432180
runs    620102
...
  

Возможно ли это сделать? Как мне получить эти данные из word2vec?

Комментарии:

1. Добавьте то, что вы пробовали до сих пор

2. вы пробовали коллекции. Счетчик? он принимает итерацию и возвращает dict с подсчитанными элементами

Ответ №1:

Какую реализацию word2vec вы используете?

В популярной gensim библиотеке после того, как Word2Vec модель установила свой словарный запас (либо путем полного обучения, либо после build_vocab() вызова), свойство модели wv содержит KeyedVectors объект типа a, который в качестве свойства vocab , являющегося Vocab объектами типа dict, которые обладают count свойством частоты слова вотсканированный корпус.

Таким образом, вы могли бы получить примерно то, что ищете, с помощью чего-то вроде:

 w2v_model = Word2Vec(your_corpus, ...)
for word in w2v_model.wv.vocab:
    print((word, w2v_model.wv.vocab[word].count))
  

Простые наборы векторов слов (например, загруженные с помощью gensim load_word2vec_format() метода s) не будут иметь точных подсчетов, но по соглашению обычно внутренне упорядочены от наиболее частых к наименее частым.