@Grizmar

Как проверить встречается ли одна из фраз в тексте?

Есть набор похожих по смыслу фраз, но отличающихся по написанию, например
скидка,
возможна скидка,
скидки до 30 ноября,
огромные скидки,
скидки года

Каким способом можно проверить встречается ли одна из этих фраз в тексте?
(желательно чтобы при большом числе фраз (>300) поиск проходил быстро)

Или посоветуйте, что можно почитать на эту тему.
  • Вопрос задан
  • 352 просмотра
Решения вопроса 1
@AM5800
Если я вас правильно понял, то алгоритм Ахо-Корасик
делает ровно то, что вам нужно. Причем за линейное время
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
AnnTHony
@AnnTHony
Интроверт
Можно попробовать найти сначала совпадение по общему слову, например. "СКИДК"
Узнаете начальную позицию слова, обрезаете 10-20 символов вперед и назад (У НАС САМЫЕ ОГРОМНЫЕ СКИДКИ И ПОДАР...) и в получившейся строке уже ищете остальные более полные фразы.
Всяко быстрее чем по всему тексту рыскать.
Ответ написан
iam_not_a_robot
@iam_not_a_robot
str_replace будет работать быстрее чем preg_match думаю из последнего аргумента достанете количество
Ответ написан
Ваш ответ на вопрос

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

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