У меня есть файл со встраиванием слов (определяющий встраивание слов как векторное представление слова) в следующем формате:
a | [0.23, 0.04, ..., -0.22]
aaron | [0.21, 0.08, ..., -0.41]
... | ...
zebra | [0.97, 0.01, ..., -0.34]
Этот файл имеет размер около 2,5 ГБ.У меня также есть большое количество предложений, которые я хочу преобразовать в векторы, например:
Yes sir, today is a great day.
Would you want to buy that blue shirt?
...
Is there anything else I can help you with?
Моя стратегия встраивания предложений пока проста:
For each sentence:
For each word:
Obtain the vector representation of the word using the word embedding file.
End
Calculate the average of the word vectors of the sentence.
End
Я подумал, что так как яу меня есть большое количество предложений, которые я хочу вставить, я мог бы использовать Spark для этой задачи;хранение вложений слов в виде файла в HDFS и использование Spark SQL для запроса предложений из таблицы Hive, но, поскольку каждому узлу, вероятно, потребуется доступ ко всему файлу внедрения слов, что подразумевает сбор всего слова, внедряющего СДР, в каждыйузел, что делает связь между узлами очень дорогой.
Кто-нибудь имеет какие-либо идеи о том, как эта проблема может быть эффективно решена?Пожалуйста, дайте мне знать, если проблема не ясна или вы думаете, что я неправильно понял, как работает Spark.Я все еще учусь и буду очень признателен за вашу помощь!
Заранее спасибо.