I have tried different models for sentence similarity, namely:

distilbert-base-uncased
bert-base-uncased
sentence-transformers/all-mpnet-base-v2

I used them together with the packages sentence-similarity 2 and sentence-transformers 2, which simplify the programming.
I have also tried Universal Sentence Encoders (en_use_md and en_use_cmlm_lg).
However, while these models generally correctly detect similarity for equivalent sentences, they all fail when inputting negated sentences. E.g., these opposite sentences:

“I like rainy days because they make me feel relaxed.”
“I don’t like rainy days because they don’t make me feel relaxed.”

return a similarity of 0.993 with the model distilbert-base-uncased.
However, sentences that could be considered very similar:

“I like rainy days because they make me feel relaxed.”
“I enjoy rainy days because they make me feel calm.”

return a similarity of 0.996, which is barely higher.
To my understanding, opposite sentences should have a small similarity, especially when semantics are taken into account.
My question is: Are there any models/approaches that are able to capture the affirmative/negative nature of sentences when calculating similarity?