izbushka

izbushka
Рейтинг
110
Регистрация
08.06.2007
systemiv:
Щас такое практически и не встретишь
Мало кто вообще знает про это

Тут вы не правы. Все кто юзают SSL (https) версию сайта знают и пользуются.

+ google именно так советует включать их код с CDN: //ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js

Оптимизайка:
да, в простейшем случае можно использовать стеммер портера для выделения корней слов и сравнивать их.

Ага, тут есть класс на php

Оптимизайка:
Простите, но данный алгоритм не эффективен, т.к. при росте количества ключевых слов сложность алгоритма растёт экспоненциально. Необходимо делать наоборот, разбивать исходный текст на слова и искать наиболее длинные последовательности по словарю ключевых слов.

Спасибо за идею.

А если усложнить задачу и учитывать морфологию: возьмем простой вариант - окончания (последние две буквы)

Тоже перебирать текст по словам и искать регекспом вхождение в массив ключей?

systemiv:
То что Вы хотите, это называется код Грея.

Спасибо, то что надо

systemiv:
Я Вас понял. Примерная логика должна быть такой:
1. Берем массив словосочетаний, и перебираем его в цикле.
2. В цикле отдельное словосочетание разбиваем регуляркой на отдельные слова, и пробуем найти вхождения разных вариантов расположения этих слов в тексте через функцию substr_count(). При положительном результате, делаем str_replace() этого словосочетания в тексте на <b>словосочетание</b>

У меня вопрос больше не по php наверное, а по комбинаторике: как реализовать выбор всех возможных последовательностей слов из массива (т.е. как составить все возможные словосочетания из слов массива)? Алгоритм можете предложить? Массив может быть любого размера.

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

systemiv, Еще такой вопрос: надо в тексте искать словосочетания регулярками, пусть без морфологии, просто вхождения слов.

Есть допустим массив

$words=array('word1','word2','word3','word4');

Надо, скажем все словосочетания с этими словами (в любой последовательности) делать в тексте жирным (обрамлять в <b>)

Как реализовать перебор всех комбинаций этих слов?

Т.е. могут быть фразы "word1 word2 word3 word4", "word1 word4 word3 word2" и тд

systemiv:
Все больше поражаюсь реакции форумчан
Я совершенно бескорыстно предлагаю помощь. Откуда тут столько тролей 80-го лэвэла?

А вы чего, собственно, ожидали? Вы хотите чтоб вам задавали элементарные вопросы? Или вы думаете, что вместо тог чтоб создать свою тему, кто-то будет спрашивать срочные вопросы в вашей?

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

Что скажете о регулярных выражениях для UTF8?

В часности, недавно сталкивался:

mb_ereg(preg_quote('╨)'),'text'); говорит что не закрыта скобка, хотя preg_quote должен ее экранировать. Как быть?

Russian Traveller:
составить регулярку на поиск всех ссылок на данной странице в пределах блоков div с class="qwerty"

Для этого конкретного случая, я думаю ТС сможет вам составить регулярку, а вообще регулярками парсить html не получится, надо строить DOM, а потом его обрабатывать, чтоб без ошибок.

Что быстрее и что лучше использовать:

@$_GET['var'] или if(isset($_GET['VAR'])) ?

Mr.Boba:
Извините, у меня с первого раза что-то не сработало.

А причина есть :)

Вы видите разницу между строками "AT" и "АТ"? А она есть, и именно поэтому не сработало. Будьте внимательны с этим и в своей функции

PS. набор символов разный (кириллица и латинница)

Mr.Boba:
этот вариант не работает

Как это не работает? :)

var_dump('AT600'>'AT568' and 'AT600'<'AT984'); //bool(true) 
var_dump('AT500'>'AT568' and 'AT500'<'AT984'); //bool(false)

Еще есть strnatcmp

Всего: 904