Как я могу посчитать частоты слов в модели обучения Word2Vec? - PullRequest
0 голосов
/ 12 апреля 2019

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

term    count
apple   123004
country 4432180
runs    620102
...

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

1 Ответ

0 голосов
/ 13 апреля 2019

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

В популярной библиотеке gensim после того, как модель Word2Vec установила свой словарь (либо путем полного обучения, либо после вызова build_vocab()), свойство wv модели содержит объект KeyedVectors -типа, который в качестве свойства vocab является указанием объектов типа Vocab, которые имеют свойство 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() метода) победилине имеют точных подсчетов, но по правилам обычно внутренне упорядочены от наиболее частых к наименее частым.

...