Синонимайзер – мысли о
Было бы здорово перепечатывать новости, автоматически их обрабатывая с целью придать уникальностьтексту. Это, скорее всего, не исключит последующую ручную правку, но всёже материал будет уже немного уникальным. Облегчается автоматическая обработка в больших объёмах, для сателлитов вполне подойдёт.
В русском языке с синонимизацией текстов не всё просто. На данный момент ни один из существующих синонимайзеров русского языка не выдаёт на выходе читаемый текст. Отсюда и мысли попробовать тоже. Сам по себе скрипт, если писать на php, прост как три копейки. Это не С++, здесь есть эксплоды и имплоды, файл() и т.п., другими словами, бОльшая часть программы уже написана создателями языка. Техническая среда полностью благоприятствует, нам остаётся сущая малость – соорудить лишь сам алгоритм синонимизации.
Итак, стратегическая цель (возможно не достижимая)
Подавая на вход оригинальный текст, посредством автоматической обработки, получить на выходе удобочитаемый текст с процентом уникальности > 50% от исходного.
Возникающие проблемы
1. Основная проблема для русского языка: неточное соответствие синонимов. Каждое слово в русском языке имеет синонимы, каждый из которых в свою очередь не является точным, а имеет свои аспекты.
2. Падежи и склонения. Слов много, а их форм больше в разы. С английским (наверное) проще. Проследить, какой глагол относится к какому существительному – не всегда в состоянии даже Ворд. Куда уж нам со скромными скриптиками.
3. Недостаточность тупо заменять слова на синонимы, необходимость перефразирования. Иначе читаемость текста пропадает моментально.
4. Ещё одна фишка русского языка – род существительного. Даже если меняем слово на полный аналог, но другого рода – сразу получаем бред.
5. Отсутствие нормальных баз в готовом виде.
Как решать
Самый простой вариант, который напрашивается – нанять человека. Но так как речь изначально о создании этому варианту замены – создании человеко-подобного робота в нематериальном воплощении – отбрасываем. Из остального выводы: нужен скрипт, который будет учитывать морфологию русского языка, базу придётся как-то создавать свою и нужно решение по перефразированию.
База
Базы, которые есть на данный момент в паблике, не годятся. Насыщены устаревшими словами, слишком неточными синонимами, слишком просто простроены – нет информации по падежам, склонениям, родам, удалённости, контексту. При использовании готовых баз придётся править их скорее всего руками, что достаточно проблематично, но не невозможно.
Так как изначально не ставится задача получать на выходе много разных текстов, а речь идёт о преобразовании оригинала в один экземпляр авторерайта, то разные варианты замены для каждого слова нам понадобятся только в случае, если слово: а) имеет параллельные значения, и б) имеет разный смысл при разном контексте. Значит каждый элемент базы должен содержать: слово, его тематики, близкие тематики, варианты замены для каждой тематики, относится ли слово к существительным, глаголам, прилагательным и т.д. Причём под выражением “элемент базы” здесь принимается некое достаточно абстрактное понятие, возможна также матричная структура, где в “элемент” не будут входить варианты замены. Что-то похожее на морфолигию внутри Яндекса, где после переколдовки исходного запроса каждому слову присуждается некая величина, причём для редких и уникальных слов эта величина одна и та же, что в нашем случае означало бы тот случай, при котором слово заменять нельзя.
Источниками информации можно кстати считать словари, в них есть указание на принадлежность слова к глаголам, существительным и т.п. Необходимы изыскания по этому вопросу.
Синонимы
Нужна разработка, позволяющая заменять одно слово фразой и наоборот. Опять же нужны соответствующие базы. Необходимо учитывать падеж существительного. При замене существительного на аналог другого рода – менять соответствующие прилагательные, или допускать замену только в рамках своего рода.
Контекст
Нужно учитывать контекст, окружающий слово. Хотябы в рамках одного-двух предложений. И в соответствии с тематикой (во как круто) выбирать подходящие синонимы. Т.е. придётся каждому слову присваивать некий шифр тематики или тематик.
Перефразирование
Нет ни в одном синонимайзере. Нормально перефразировать может только человек. Тем не менее, иногда можно заменить слово фразой или наоборот, что может помочь. Ещё вариант фразу заменять целиком, но это совсем сложно. Других вариантов пока не вижу.
Оценочные параметры результата
Как определить процент уникальности текстов при сравнении? Вопрос не праздный, потому что алгоритм такого сравнения должен быть зашит в программу изначально, иначе программа будет как слепая лошадь – что-то делать, но без ориентации на результат. Предыдущие опыты (чужие) демонстрируют странные результаты, например ShinglesExpert при замене всего одного слова в предложении начинает показывать высокую уникальность, может так и есть, но визуально выглядит довольно странно.
С чего-то нужно начать
Где-то в интернете скачал базу синонимов. Не помню где и кто автор, так как качал штук 5 разных и 4 из них удалил. Около 20 минут ушло на простейший скрипт по тупой замене слов, в случае полного совпадения, из оригинала на первый вариант из словаря. Результат как у всех, фигня полная:
Оригинал:
На этой неделе открылся сервис вопросов и ответов Яндекса. Такие сервисы, как уже известно читателям нашей рассылки, могут быть инструментом интернет-маркетинга. Вопросно-ответные сервисы многие эксперты считают прототипом следующей ступени развития поиска в Интернете.
Подразумевается, что живые люди могут отвечать на вопросы других живых людей лучше, чем поисковые механизмы, так как первые могут понимать естественный язык, а вторые – нет.
Синонимизированный текст:
На этой неделе обнаружился сервис тем и решений Яндекса. Такие сервисы, как уже не секрет читателям нашей рассылки, могут иметься инструментом интернет-маркетинга. Вопросно-ответные сервисы многие эксперты думают прототипом должно ступени вырабатывания розыска в Интернете.
Подразумевается, что живые люди могут отзываться на темы вторых живых людей лучше, чем поисковые механизмы, так как главные могут ориентироваться природный язык, а другие – нет.
Время работы скрипта на локальной машине: 1,341 сек – вполне быстро, если учесть, что никакие SQL базы не используются, в таком виде это вполне годится для вртуального хостинга, что, впрочем, многие и сделали.
Проверяем уникальность методом шинглов, программой ShinglesExpert: процент совпадения 0%! Т.е. тексты, с точки зрения этой программы полностью уникальны.
Из этого можно сделать три вывода:
1) ShinglesExpert можно выкинуть, результат неверный. По опыту, просто глядя на тексты видно, и DCFinder и CopyScape сочтут их за частично схожие.
2) Базу синонимов всё-таки придётся чистить руками и не один раз, так как планы более далекоидущие, чем тупая замена слова на его синоним.
3) Если нужно набить ГС контентом, я уже знаю где его много =)
В любом случае думаю нужно придумать автоматизацию для первичной переборки базы в полуавтоматическом режиме, чтобы понять, стоит ли с этой темой вообще заморачиваться далее.
Продолжение следует… (возможно)
This entry was posted on Thursday, February 19th, 2009 at 20:05 and is filed under Hyde Park. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.


