Часть 9. Семантическое сходство

В этом уроке мы продемонстрируем модуль Codeq’s NLP API, который можно использовать для анализа семантического сходства между текстами. Предыдущие уроки из этой серии можно найти здесь:

Полный список модулей Codeq NLP API можно найти здесь:



Вызов конечной точки семантического подобия

Конечная точка для получения семантического сходства между текстами также может быть вызвана с помощью экземпляра нашего Python SDK. Как обычно, для создания экземпляра этого клиента вам необходимо использовать свои учетные данные API в качестве входных параметров.

from codeq_nlp_api import CodeqClient

client = CodeqClient(user_id="USER_ID", user_key="USER_KEY")

Вместо определения конвейера с именами некоторых аннотаторов НЛП, как мы делали в предыдущих уроках, в этом случае вам нужно использовать другой метод клиента, чтобы получить сходство между текстами:

client.analyze_text_similarity(text1, text2)

Этот метод требует в качестве входных данных две строки и возвращает в качестве вывода словарь, содержащий text_similarity_score:

text1 = 'More than 100 injured in Texas plant blast'
text2 = 'Hundreds believed injured in Texas fertiliser plant blast'

similarity_score = client.analyze_text_similarity(text1, text2)

print(similarity_score)
# Output:
# 
# {"text_similarity_score": 4.55188775062561}

Оценка схожести указывает на семантическую связь между входными текстами, выраженную в диапазоне от 1 до 5, где 1 означает крайне несвязанные, а 5 означает высоко связанные:

  • 5.Эти два предложения полностью эквивалентны, так как означают одно и то же.
  • 4.Эти два предложения в основном эквивалентны, но различаются некоторые несущественные детали.
  • 3.Эти два предложения примерно эквивалентны, но некоторая важная информация отличается или отсутствует в одном или другом.
  • 2.Эти два предложения не эквивалентны, но имеют общие детали или относятся к одной и той же теме.
  • 1.Эти два предложения совершенно не похожи.

Заворачивать

В этом руководстве мы описали, как использовать конечную точку семантического подобия API Codeq NLP. В приведенном ниже коде показано, как перебирать его вывод: