Проверьте общность двух предложений.

Чтобы проверить общность двух предложений, я использовал модель 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 ответ

Я думаю, что это может быть проблемой с ограничениями модели. Особенно с улавливанием отрицаний и антонимов. Возможно, будет хорошей идеей использовать другую модель, которая, как известно, хорошо справляется с задачами семантического сходства.

Вот несколько вариантов:

  1. Универсальный кодировщик предложений (USE): разработан Google.

  2. BERT (представления двунаправленного кодировщика от трансформаторов)

  3. RoBERTa: RoBERTa — еще один вариант BERT, который еще больше совершенствует процесс обучения.

  4. Sentence-BERT (SBERT): Sentence-BERT — это расширение BERT, специально разработанное для вычисления встраивания предложений.

Удачи!

Другие вопросы по тегам