Как узнать процент вхождения словосочетания в строку на python?

Здравствуйте
Я имею словосочетание 'создание чат-ботов'.

Мне необходимо узнать процент вхождения этого словосочетания в каком-либо тексте, например

"Добрый день, Требуется создать телеграм бота для размещения объявлений."

Или предложите пожалуйста свои версии поиска в тексте по ключевым словам/словосочетаниям
  • Вопрос задан
  • 143 просмотра
Пригласить эксперта
Ответы на вопрос 2
bravebug
@bravebug
Можно к примеру использовать fuzzywuzzy
По ссылке есть примеры использования:
https://pypi.org/project/fuzzywuzzy/
Ответ написан
Комментировать
@dmshar
Если строго следовать тому, что вы написали, то процент вхождения словосочетания
'создание чат-ботов' в вашу строку равен 0. Поскольку словосочетание - это вхождение всех представленных в качестве образца слов, а слово "чат" или "чат-бот" в заданном предложении отсутствует.
Если же вас интересует процент вхождения слов из примера в набор слов целевого предложения - то это проще. Правда, если слова будут находиться в одинаковой словоформе.
ex='создать чат бота'
ex_set=set(ex.split(' '))
sent="Добрый день, Требуется создать телеграм бота для размещения объявлений"
sent_set=set(sent.split(' '))
print(1-len(sent_set.difference(ex_set))/len(sent_set))

Результат:
0.2222222222222222
А вот если словоформы будут разные, то тут придется попотеть. Приведение слов к одинаковой словоформе - отдельная и весьма нетривиальная задача.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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