Как найти семантическое значение сходства двух строк в Python - PullRequest
0 голосов
/ 21 октября 2019

вместо того, чтобы найти сходство между двумя строками, я просто хочу найти сходство значения двух строк для ex.

  1. , какие типы гиперпоточности
  2. есть ли какие-либо категории в гиперпоточности

должно иметь сходство. До сих пор я пробовал косинусное сходство и слово moverрасстояние, но я не получаю точный результат для некоторых строк

1 Ответ

0 голосов
/ 21 октября 2019

Это то, что действительно трудно сделать. Также трудно понять, что вы подразумеваете под «точным» семантическим сходством двух фраз. Вам нужно найти «хорошую» метрику, чтобы сделать это

В любом случае, если у вас ограниченный контекст (вам не нужно делать калькулятор семантического сходства общего назначения), очень простым подходом может быть созданиетекстовый классификатор (с машинное обучение ), в котором вы определяете основные классы, которые вы хотите использовать.

Например, для ваших примеров фраз вы можете иметь два текстовых класса:

  1. вопрос о гиперпоточности

  2. вопрос о еде

Чем вы много тренируете свою модельфраз и вероятностей вывода вашей модели для приведенных вами примеров фраз:

  1. "Какие типы гиперпоточности" :

    • спрашивая о гиперпоточности 0,9

    • спрашивая о еде 0,5

  2. "есть ли категориив гиперпоточности "

    • с запросом о гиперпоточности 0,8

    • спрашивая о еде 0,4

Обе фразы классифицируются как «спрашивающие о гиперпоточности» (потому что у них более высокий балл в этих классах), а затемМожно предположить, что они похожи. Можно также использовать оценки вероятностей, чтобы сделать что-то более изощренное (используя различия в оценках и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...