ОК, так что вы должны самостоятельно обучить модели word2vec. Что вам нужно сделать, так это убедиться, что ваши хэштеги на самом деле не имеют знака #
и строчных букв.
Теперь сгруппируйте хэштеги по почте. Итак, если в каком-то сообщении были хэштеги #red
, #Wine
, #party
, вы должны составить из него список, который будет выглядеть так: [red, wine, party]
. Повторите это для каждого сообщения и сохраните список из каждого сообщения в новый список. Таким образом, вывод из этого должен быть список списков: [[red, wine, party], [post_2_hashtags], ...]
. Теперь вы можете ввести это в модель word2vec и обучить ее следующей строкой:
model = gensim.models.Word2Vec(
documents,
size=150,
window=10,
min_count=2,
workers=10)
model.train(documents, total_examples=len(documents), epochs=10)
model.save("word2vec.model")
documents
- список списков, созданных на предыдущем шаге. Затем вы можете загрузить модель с помощью model = gensim.models.Word2Vec.load("word2vec.model")
. А в остальном тоже самое. Вы по-прежнему используете метод most_similar()
, чтобы получить наиболее похожее слово (в данном случае хэштег)
Единственное, что вам нужно знать, это размер вектора (параметр size
в word2vec.model
). Вы определяете это перед тренировкой. Если у вас много данных, вы устанавливаете большее значение, а если у вас меньшее количество данных, установите меньшее значение. Но это то, что вы должны выяснить, так как вы единственный, кто может видеть данные, которые у вас есть. Попробуйте поиграть с параметром size
и оцените модель методом most_similar()
.
Надеюсь, это достаточно ясно:)