MicroProger
@MicroProger
Работает - не трогай

Как сравнивать два текста и находить между ними сходство средствами python?

Для одного проекта, мне потребовалось разобраться в работе NLP. И тут следующий вопрос - а как сравнить заготовленный заранее текст с тем, что мы только что получили, чтобы выполнить последующие действия?

Подскажите пожалуйста какую-либо литературу или статью, не могу найти.
  • Вопрос задан
  • 497 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
а как сравнить заготовленный заранее текст с тем, что мы только что получили, чтобы выполнить последующие действия?

А ты уверен, что тебе нужно сравнение двух текстов? Выглядит как на вход текст за тем он его сопоставит с определенным действием. То есть задача на классификацию с текстом, то есть у тебя есть набор действий labels (1,..n) и есть разный текст который нужно классифицировать в одну из групп, ну и затем просто выполнить код (действия) который наступает в случае (1,..n). Tensorflow + keras гуглить text classification, там есть все что нужно, основная возня будет закодировать при чем именно входные данные, сам target там one-hot-encoding и он там из коробки есть. В общем это довольно обычная задача, полно туториалов.

Если же речь идет именно о сравнении двух текстов, то тут все на много сложнее. Во первых тут нужно определить критерий их "похожести", определить способы кодировки, в остальном принцип будет метрика "дистанция" там обычно начинают с cosine similarity. Библиотеки как scikit-learn так tensorflow+kears ну и конечно же NLTK для этого используют. Возни будет больше в разы по этому посмотри а не можешь ли ты сгруппировать то есть пользователь вводит текст и нужно его сопоставить (1,..n).

Что бы разобраться конкретно какие вопросы перед тобой станут, как кодировать, какие виды похожести (similarity), рекомендую вот этот большой гайд, https://www.newscatcherapi.com/blog/ultimate-guide.... Ну а делал бы я лично все это дело на tensorflow+keras.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ну, к примеру, "[Имя] привет", а в качестве обработанного "[Имя] добрый день!"
Задача сильно упрощается в этом случае.

Пример:
"Гриша, привет"
6504d7437d2f9811683768.png
Для пущей надёжности можно сопоставить слово со словарём имён.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы