Вы не упомянули, получили ли вы какие-либо ошибки или неудовлетворительные результаты, поэтому трудно понять, какая помощь вам может понадобиться.
Ваши конкретные строки кода, включающие модель Word2Vec
, примерно верны: правдоподобно полезные параметры (если у вас есть набор данных, достаточно большой для обучения 300-мерных векторов) и соответствующие шаги. Таким образом, реальным доказательством будет то, являются ли ваши результаты приемлемыми.
Что касается вашей попытки использовать Phrases
bigram-creation заранее:
Перед тем, как добавить дополнительную сложность предварительной обработки, вы должны работать как обычно и с многообещающими результатами.
Параметр max_vocab_size=50
серьезно ошибочен и может сделать шаг фразы бессмысленным. max_vocab_size
- это жесткое ограничение на количество слов / биграмм в классе, чтобы ограничить использование памяти. (Всякий раз, когда число известных слов / биграмм попадает в этот предел, многие низкочастотные слова / биграммы удаляются - на практике большинство всех слов / биграмм каждое сокращение сокращается, что приводит к большой точности в обмен на ограниченное использование памяти.) Значение по умолчанию max_vocab_size
в gensim
составляет 40 000 000, но по умолчанию в источнике Google word2phrase.c
, на котором основан метод gensim, было 500 000 000. Используя только 50
, вы не узнаете ничего полезного о тех 50 словах / биграммах, которые выдержат множество сокращений.
Что касается вашей get_mat()
функции и более позднего DataFrame
кода, я понятия не имею, что вы пытаетесь с ней сделать, поэтому не могу высказать свое мнение по этому поводу.