I am currently in the middle of reading Applied Text Analysis with Python by Bengfort, Bilbro, and Ojeda, and encountered a sentence that I've struggled to wrap my head around. In the section discussion frequency, one-hot, and TF-IDF encodings as a way to encode words into vector spaces, the authors state that
Unfortunately, these vectorization methods produce document vectors with non-negative elements, which means we won’t be able to compare documents that don’t share terms (because two vectors with a cosine distance of 1 will be considered far apart, even if they are semantically similar).
I'm unclear why this is exactly the case- why are non-negative elements not useful for comparing documents that don't share terms? Wouldn't you just have a larger encoding space, with lots more 0s? Furthermore, if you really wanted to use negative elements, couldn't you standardize your encoding to have mean of 0?
I'm also unclear how this portion relates to non-negative elements at all. (I understand that a cosine distance of 1 is the maximum distance):
because two vectors with a cosine distance of 1 will be considered far apart, even if they are semantically similar
Could someone point me in the right direction of what the authors' intended meaning of this sentence is?