Синонимайзер

Статус
В этой теме нельзя размещать новые ответы.

Nezzar

Гуру форума
Регистрация
29 Дек 2006
Сообщения
337
Реакции
89
Всем привет.
Собственно изучаю PHP потихоньку, решил написать небольшой синонимайзер.

Собственно что делает: из файла такого вида
HTML:
слово|его синоним
слово|может состоять из нескольких слов

далее подключается к MySQL, берет таблицу и запись, и синонимизирует ее.

По первой операции вопросов нет, уже написал, вроде и работает)
Как лучше и экономичнее сделать поиск слова и его замену в записе??

Просьба к алгоритму указывать и применяемые в нем функции, если можно.

Всем заранее спасибо.


PS: если есть герои, которые готовы взглянуть на имеющийся у меня говнокод(полный скрипт, я заново переписываю), могу выслать. Но он не работает =(
 
вроде это делается довольно просто
Единственное- файл с синонимами очень большой? И
HTML:
слово|его синоним
слово|может состоять из нескольких слов
У одного слова 1 синоним?
 
кидай сюда под хайд - поправим
 
замену делай через регекспы, так как проще.
ещё совет сделать так
слово|синоним1|синоним2|...|синонимN

чтобы много вариантов было.
вопрос ещё так - словарь синонимов сам будешь составлять? если нет, то лучше на синтаксис имеющихся словарей ориентируйся.
 
Файл синонимов может быть(по идее) неограниченно большим. 1 слово - 1 синоним. Хотя если кто подправит под несколько, то будет круто


Почему собственно хайд такой - оригинальная идея в корявом исполнении =(
Я аналога не видел, и поэтому решил сделать так. Зачем стадо конкурентов?)






Если у кого то получится исправить, с меня спасибо и по желанию дам денег на пыво =)
 
PHP:
function rap(){
 global $sin_arr;
 $e = mt_rand(1, count($sin_arr)-1);
 return  $sin_arr[$e];
}
$array_main = file('s.txt'); // файл с синонимами в формате ЧТО ЗАМЕНИТЬ|ЧЕМ ЗАМЕНИТЬ|ЧЕМ ЗАМЕНИТЬ|ЧЕМ ЗАМЕНИТЬ
//$text_arr - здесь массив постов в которых заменяем
$text_arr[] =' Инвестиционный форум. Паевые инвестиционные фонды (ПИФ),  валютный рынок, рынок акций, облигации, финансы и кредит, банковский кредит';
$text_arr[] =' форум. Паевые инвесрынок, рынок акций, облигации, финансы и кредит';

foreach ($array_main as $sin_str){
 $sin_arr = explode('|', str_replace(array("\n", "\r"),'', $sin_str));
 foreach ($text_arr as $id=>$post){
  if(substr_count($post, $sin_arr[0])){
   $post = preg_replace_callback('|'.$sin_arr[0].'|is', 'rap', $post);
   $text_arr[$id]=$post;
  }
 }
 
}
print_r($text_arr);
 
Посмотрел кто-нибудь скрипт, который я оставил?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху