#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) не будут иметь точных подсчетов, но по соглашению обычно внутренне упорядочены от наиболее частых к наименее частым.