Собрался писать простенький синонимайзер Идея проста до безобразия, есть некий словарь синонимов где каждому слово соотвествует один синоним, необходимо произвести замены встречаемых в исходном тексте слов на их синонимы. Главное обстоятельство - это производительность сего дела! Ибо такого рода замены пусть даже не для больших по объему текстов но в большом количестве сильно грузят... Мало того база синонимов весит около 5 Мб. Посмотрел на другие реализации синонимайзеров. но все какие то уж "коленочные" и жутко тормозные.. особенно те где база синонимов (словарь) лежит в MySQL. Свою базу решил положить в ассоциативныы массив который тупо закинул в php файл (где ключ- слово, значение - синоним). первое что пришло в голову: // $base - ассициативный массив базы синонимов (словарь) $search =& array_values($base); $replace =& array_keys($base); $sText = str_ireplace($search, $replace, $_POST['text']); работает крайне медленно.. подскажите пожалуйста может кто уже сталкивался с такими задачами и смог успешно и главное с минимальными затратами производительности их решить?
Смотри в сторону "Алгоритмы оптимального поиска"(структуры данных) и хеш - таблицы. Когдато, года 2 назад писал подобное приложение. Если найду исходник поделюсь алгоритмом.
может пригодится: http://lib.custis.ru/index.php/PHP-разгон:_серебряная_пуля_из_автомата_Комменца-Вальтера»_(Commentz-Walter)