<p>In FastText, the sentence embedding is basically an average of the word vectors, as is shown in one of the <a href="https://arxiv.org/pdf/1607.01759.pdf" rel="nofollow noreferrer">FastText papers</a>:</p>

<p><a href="https://i.stack.imgur.com/0jpTZ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0jpTZ.png" alt="FastText figure"></a></p>

<p>Given this fact, zeroes might a logical choice. But, the answer depends on what you want to do with the embeddings. </p>

<p>If you use them as an input for a classifier, it should be fine to select an arbitrary vector as a representation of empty string and the classifier will learn what that means. FastText also learns a special embedding for <code>&lt;/s&gt;</code>, i.e., end of a sentence. This is another natural candidate for an embedding of the empty string, especially if you do similarity search.</p>
Replacing empty texts - text embedding
<p>I am trying to embed texts, using pre-trained fastText models. Some are empty. How would one replace them to make embedding possible? I was thinking about replacing them with dummy words, like that (docs being a pandas DataFrame object):
        <code>docs = docs.replace(np.nan, 'unknown', regex=True)</code></p>

<p>However it doesn't really make sense as the choice of this word is arbitrary and it is not equivalent to having an empty string.</p>

<p>Otherwise, I could associate the 0 vector embedding to empty strings, or the average vector, but I am not convinced either would make sense, as the embedding operation is non-linear.</p>