Одно место, через которое я столкнулся, находится в контейнерах, которые выделяют смежный буфер, а затем заполняют его объектами по мере необходимости. Как уже упоминалось, std :: vector может это сделать, и я знаю, что некоторые версии MFC CArray и / или CList сделали это (потому что именно там я впервые столкнулся с ним). Метод перераспределения буфера - очень полезная оптимизация, а размещение нового - это почти единственный способ построить объекты в этом сценарии. Он также иногда используется для создания объектов в блоках памяти, выделенных вне вашего прямого кода.
Я использовал его в аналогичной емкости, хотя он часто не возникает. Это полезный инструмент для инструментария C ++.
Какие предложения вы встраиваете, является ли это тем же доменом, что и домен, на котором были созданы встраивания fastText?
Попытайтесь получить представление ваших данных в токенах, т.е. набор всех токенов, или некоторые представления наиболее распространенных токенов, которые появляются в предложениях, которые вы хотите вставить с помощью fastText.
Вычислите перекрытия ваших токенов с токенами в fastText, удалите те из fastText, которые не отображаются в вашем представлении данных.
Я сделал это недавно и перешел из файла объемом 1,4 ГБ с некоторыми предварительно обученными вложениями слов в 200 МБ, главным образом потому, что частичное совпадение с моим корпусом составило около 10%.