- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Я Вас понял. Примерная логика должна быть такой:
1. Берем массив словосочетаний, и перебираем его в цикле.
2. В цикле отдельное словосочетание разбиваем регуляркой на отдельные слова, и пробуем найти вхождения разных вариантов расположения этих слов в тексте через функцию substr_count(). При положительном результате, делаем str_replace() этого словосочетания в тексте на <b>словосочетание</b>
У меня вопрос больше не по php наверное, а по комбинаторике: как реализовать выбор всех возможных последовательностей слов из массива (т.е. как составить все возможные словосочетания из слов массива)? Алгоритм можете предложить? Массив может быть любого размера.
Так же по алгоритму БД вопрос. На ум пошлый пример приходит, извините:
Список мужчин, список женщин. Противоположный пол может иметь контакты друг с другом.
Завожу две таблицы: М, Ж.
Как реализовать учёт контактов? Отдельная таблица, в которой добавляются как строки, так и столбцы, или… не делал такие вещи ещё.
У меня вопрос больше не по php наверное, а по комбинаторике: как реализовать выбор всех возможных последовательностей слов из массива (т.е. как составить все возможные словосочетания из слов массива)? Алгоритм можете предложить? Массив может быть любого размера.
Посмотрите приложение, думаю это то что Вам нужно. То что Вы хотите, это называется код Грея.
Так же по алгоритму БД вопрос. На ум пошлый пример приходит, извините:
Список мужчин, список женщин. Противоположный пол может иметь контакты друг с другом.
Завожу две таблицы: М, Ж.
Как реализовать учёт контактов? Отдельная таблица, в которой добавляются как строки, так и столбцы, или… не делал такие вещи ещё.
Почитайте в сторону связи MANY TO MANY.
То что Вы хотите, это называется код Грея.
Спасибо, то что надо
Я Вас понял. Примерная логика должна быть такой:
1. Берем массив словосочетаний, и перебираем его в цикле.
2. В цикле отдельное словосочетание разбиваем регуляркой на отдельные слова, и пробуем найти вхождения разных вариантов расположения этих слов в тексте через функцию substr_count(). При положительном результате, делаем str_replace() этого словосочетания в тексте на <b>словосочетание</b>
Простите, но данный алгоритм не эффективен, т.к. при росте количества ключевых слов сложность алгоритма растёт экспоненциально. Необходимо делать наоборот, разбивать исходный текст на слова и искать наиболее длинные последовательности по словарю ключевых слов.
Вот так:
Результат выполнения:
Простите, но данный алгоритм не эффективен, т.к. при росте количества ключевых слов сложность алгоритма растёт экспоненциально. Необходимо делать наоборот, разбивать исходный текст на слова и искать наиболее длинные последовательности по словарю ключевых слов.
Да действительно. Вы правы! Спасибо большое, обязательно возьму себе на заметку:)
Простите, но данный алгоритм не эффективен, т.к. при росте количества ключевых слов сложность алгоритма растёт экспоненциально. Необходимо делать наоборот, разбивать исходный текст на слова и искать наиболее длинные последовательности по словарю ключевых слов.
Спасибо за идею.
А если усложнить задачу и учитывать морфологию: возьмем простой вариант - окончания (последние две буквы)
Тоже перебирать текст по словам и искать регекспом вхождение в массив ключей?
Оптимизайка, а не подскажете, зачем нужна переменная $found?
Она не нужна :) Это просто пример, который я накидал на скорую руку для демонстрации работы алгоритма.
---------- Добавлено 11.01.2013 в 16:47 ----------
Спасибо за идею.
А если усложнить задачу и учитывать морфологию: возьмем простой вариант - окончания (последние две буквы)
Тоже перебирать текст по словам и искать регекспом вхождение в массив ключей?