Я пытаюсь вставить примерно 60 миллионов фраз в векторное пространство , а затем вычислить косинусное сходство между ними. Я использовал sklearn CountVectorizer
с пользовательской функцией токенизатора, которая создает униграммы и биграммы. Оказывается, чтобы получить осмысленное представление, мне нужно учесть огромное количество столбцов, линейных по количеству строк. Это приводит к невероятно редким матрицам и убивает производительность. Это было бы не так плохо, если бы было всего около 10000 столбцов, что, я думаю, вполне разумно для встраивания слов.
Я думаю о том, чтобы попытаться использовать Google, word2vec
потому что я почти уверен, что он производит гораздо меньшие размеры и более плотные вложения. Но перед этим, есть ли какие-то другие вложения, которые могли бы сначала оправдать? Ключевым требованием будет возможность масштабировать около 60 миллионов фраз (строк).
Я довольно новичок в области встраивания слов, поэтому любой совет поможет.
Я также должен добавить, что я уже использую разложение по сингулярным числам для повышения производительности.