Проверьте общность двух предложений.
Чтобы проверить общность двух предложений, я использовал модель text-embedding-ada-002 из azure openai. Однако это не очень точно с отрицательными предложениями и антонимами. Пример 2 предложения: Я ненавижу есть конфеты и мне нравится есть конфеты, сходство равно 0,927. Означает ли это, что я использую неправильную модель или мне нужно что-то настроить?
Ниже приведен код Python для поиска общей точки в двух предложениях.
resp = openai.Embedding.create(
input=[dict["text1"], dict["text2"]],
engine="solize-dokushokai-openai-embeddings")
embedding_a = resp['data'][0]['embedding']
embedding_b = resp['data'][1]['embedding']
similarity_score = np.dot(embedding_a, embedding_b)
1 ответ
Я думаю, что это может быть проблемой с ограничениями модели. Особенно с улавливанием отрицаний и антонимов. Возможно, будет хорошей идеей использовать другую модель, которая, как известно, хорошо справляется с задачами семантического сходства.
Вот несколько вариантов:
Универсальный кодировщик предложений (USE): разработан Google.
BERT (представления двунаправленного кодировщика от трансформаторов)
RoBERTa: RoBERTa — еще один вариант BERT, который еще больше совершенствует процесс обучения.
Sentence-BERT (SBERT): Sentence-BERT — это расширение BERT, специально разработанное для вычисления встраивания предложений.
Удачи!