Подбор синонимов на PHP

Скачать архив файла можно вот здесь http://dadon.ru/zip/syn.rar
Ссылка на блог приветствуйется.

Привожу кусок PHP программы «Подбор синонимов», которая позволяет менять одни слова на другие (делать подбор синонимов). Я написал код за 30 минут. Думаю и вам не составит труда понять что к чему, поэтому комментарии к программе подбора синонимов опускаю.

Структура файла для синонимов vocabulary.txt следующая:
Исходное Слово | Слово Замены

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

Чтобы поисковик не замечал подлога после работы программы по подбору синонимов нужно заменять каждое пятое слово. Ведь google слабо понимает конструкции, состоящие из пяти и большего количества слов.

Кусок программы на PHP «подбор синонимов» (к сожалению, вордпресс не корректно отображает ПХП код)



$file = $_GET[f];
$file="1.htm";

$filePoinr_w1=fopen("1".$file,"w");
$filePoinr_w2=fopen("2".$file,"w");
$filePoinr_w3=fopen("3".$file,"w");

$array_voc=file("vocabulary.txt");
$ss='';

for ($n=0; $n 

$s=$array_voc[$n];
$p=strpos($s, "|");

$s1=substr($s,0,$p);
$s2=substr($s,$p+1,1000);

$replace1[$s1] = $s2;
$replace2[$s1] = "*b*".$s1."";
$replace3[$s1] = "*b*".$s2.";

}

echo " 

\n”;

$array1=file($file);
for ($n=0; $n $str=$array1[$n];

$new_str = strtr($str, $replace1);
fwrite($filePoinr_w1,$new_str."\n");

$new_str = strtr($str, $replace2);
fwrite($filePoinr_w2,$new_str."\n");

$new_str = strtr($str, $replace3);
fwrite($filePoinr_w3,$new_str."\n");

}

fclose($filePoinr_w1);
fclose($filePoinr_w2);
fclose($filePoinr_w3); 

 

Написать программу для подбора синонимов не сложно. Сложно сделать текст осмысленным после синонимной обработки.

Подбор синонимов на PHP: 35 комментариев

  1. Greignar

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

  2. serge_mikhailov Автор записи

    Да, словари синонимов полны слов, которые нормальные люди не употребляют.
    — abandon
    — abandoned
    — abandonee

    поэтому решил, что для конкретной отрасли нужно составлять свой набор «синонимов», например, вот так:

    — man | good man
    — happen | maybe happen

    Конечно, это не синонимы, в привычном понимании слова, но сделать более уникальным текст можно.

  3. Aleksey

    — serge_mikhailov: «…словари синонимов полны слов, которые нормальные люди не употребляют» Это верно, но если делать что-то хорошо, значит делать это самому. Соответственно словарь придется тоже составлять самому.

    Вот одна из идей: Если использовать просто замену слов то это приводит к неосмысленному тексту, но вот если использовать замену фраз — то текст становится намного лучше. К примеру: Свежий хлеб (мягкий хлеб); свежая газета (новая газета); свежая рубашка (чистая рубашка). При простой замене слов может получиться: мягкая газета и новый хлеб, но вот если использовать поиск и замену фраз с перебором прилагательных к какому то существительному (например: хлеб — мягкий, свежий, вкусный; газета — интересная, новая, свежая) то это возможно даст какой то положительный результат и сделает текст более осмысленным.

    Если у кого то есть какие либо еще идеи, то давайте обсудим. Идея создания программы для рерайтинга целого текста довольно-таки интересна и многим вебмастерам будет полезна, чем трудоемкий подбор каждого из слов мозгами или через словари синоннимов.

  4. serge_mikhailov Автор записи

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

    Пока, в цепочке Статья — Синонимизатор не хватает еще человека редактора.

  5. Aleksey

    Буквально вчера попробовал осуществить задуманное хотя бы теоретически, но в конце концов понял, что полностью автоматизировать весь этот процесс все равно не удастся, «пробегать глазами и выискивать ошибки» все равно придется, какой бы хороший скрипт не получился. Задумка такого плана не стоит этих трудозатрат. По мне сейчас более приемлем вариант когда в тексте будет подсвечиваться слово, синонимы которого имеются в базе. При клике по подсвеченному слову в правой колонке допустим высвечивается список доступных синонимов (уже проспряженных под окончание подсвеченного слова), а при клике по синониму подсвеченное слово заменяется на него.
    Может конечно и сказки, а вот задумка такова. Самое сложное в этом процессе, что это должен быть не скрипт, а целая программа в роде текстового редактора, в котором можно в режиме реального времени редактировать текст в некоторых случаях переставляя слова местами и заменяя фразы.
    Конечно, хороший програмист с этой задачей справится, не такая уж она и сложная, скрипт, о котором говорили раньше намного сложнее. А результата толкового все равно неполучится. Но вот в программах я не понимаю ничего. Как начну понимать — сделаю, но сколько до этого лет пройдет. Возможно ктото уже и до меня сделает :)

  6. serge_mikhailov Автор записи

    Встречал я подобные реализации. Они были сделаны на основе word.

    Недостаток был в том, что ворд не умеет сохранять нормально в html.

    Подсветку я решал простым способом. После подбора синонимов получал не один, а три файла. Первый с подсвеченными словами которые заменяли. Второй — с подсвеченными словами которые ЗАМЕНИЛИ. Файл без подстветки.

    В этом случае можно было легко проверить смысл и обращать внимение не на весь текст, а на избранные участки.

    Повторюсь, что скрипт, впрочем так и не довел до ума.

  7. serge_mikhailov Автор записи

    > Что вы скажете насчет синонимисации с помощью замены только прилагательных?

    Хорошая мысль и смысл предложения остается прежним. Было бы прилагательных побольше в тексте, так вообще был бы блеск.

  8. seogen

    я тоже страдаю этой проблемой, как-то же в поисковиках типа Google это дело работает и довольно быстро.. не успеешь запрос ввести, уже ответ с поиском по ключевому слову и синонимам, аббревиатурам и т.д.
    с одной стороны не хочется изобретать велосипед, а с другой хочется иметь свой, но его не продают :)

  9. артем

    А кто нибудь из вас(программеров) может выложиь просто скрипт…Без баз…Раз его за 30 минут можно написать…
    Я бы написал сам, если бы РНР знал.Наверное…
    Если кому не трудно выложитепожалуйста или скинте по почте на [email protected] .А то я его в сети ищу ищу.Запарися уже.Буду очень благодарен.Могу 10 семизаков подарить.

  10. serge_mikhailov Автор записи

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

    Выложить в архиве полный проект?

    ————

    Ссылка на блог приветсвуетя.

  11. артем

    Что значит локализовать?

    Попробывал залить ваш скрипт на хостинг. Залил запустил index.php. Пишет куу ошибок..Каких то 2 непонятных поля сверху..
    Если вам не трудно, поясните пожалуйста как его поставить и как им пользоваться? Заранее благодарен.

  12. Евгений

    Ссылка не работает dadon.ru/zip/syn.rar (((
    А вставлять со странички — ошибки…
    А вообще спасибо, что вы есть. Пользуюсь вашими наработками. Словарь с фразами есть, весит около 10 метров, смотрел, прикольные есть. Если интересует — покопаюсь в своих архивах.
    Тока править его тяжело — для реплейса разделителей синонимов в ворде компу требуется несколько минут, а блокнот затыкается намертво.

  13. serge_mikhailov Автор записи

    Если я правильно понял вас, то речь идет о замене избранных слов их синонимами.

    Конечно, это можно сделать. Для каждой серии текстов составляется свой словарь «синонимов».

  14. Наркоман в законе

    Я пробовал сделать синонимизатор самостоятельно, но возникла проблема со словарями. Не знаете, где можно найти хорошие словари?

  15. Leave a Reply

    У тех кого скрипт НЕРАБОТАЕТ.
    пусть поработает вниманием, написано-же что надо создать файл vocabulary.txt со структурой.

    /вот ненавижу таких уродов которые чужым трудом живут

  16. Alex Leo

    Использовать файлы как базу слов — это очень неудачное решение т.к долго работает … а если в базе 40000 слов как у меня ?

  17. Alexandr

    Да, действительно жалко нет ссылки на данную программу! Я сейчас пишу такой скрипт хотелось бы посмотреть как люди делают!

  18. Skai

    Может стоит обернуть это в графическую оболочку, подключить словарик и… Весьма полезная програмка могла бы получиться.. И неплохой инструмент для CEO.

  19. phpsin

    Ну вот синонимайзер у Вас уже есть, а хорошую базу синонимов к нему можно составить при помощи программы «synonyme» оф. сайт synonyme.ru/

  20. prommm

    Ну вот синонимайзер у Вас уже есть, а хорошую базу синонимов к нему можно составить при помощи программы “synonyme” оф. сайт ///
    Спасиб, очень помогли!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *