Автоматический синонимайзер. Его настоящее и будущее. Часть 2

Опубликованно: 04.06.2008 | Написал: Алексей | Комментариев: 0
В Части 1 я выявил две причины не читаемости текстов, повторюсь:
1. Неосознанность при замене слов. Пример: окончание – син. завершение. Хорошо если это «окончание матча», а если «окончание слова»?
2. Великий и могучий русский язык, со своими словоформами. Род, падеж, число, окончания, суффиксы, корни и т.д.
Где выход и какие перспективы? Самое вкусное я оставил на десерт.
п.2 решению поддается, при должном владении программированием, можно научить комп менять окончания у слов (word делает это «на хорошо»). В большинстве случаев будет работать корректно. Но, что делать с п.1?
Моя идея. Пришла мне в голову, ничего подобного не встречал, но не исключено что не я первый додумался до этого. Если она не нова, пишите в комментарии.
Расстановка баллов. Возьмем любое предложение.
«На днях в книжные магазины Бразилии поступила книга писателя Фернандо Мораиса «Маг».»
Возьмем слово «поступила». Синонимы: устроилась, зачислилась, определилась, попала, приткнулась. Теперь расставим балы следующим образом, по близости позиции слов к слову «поступила».
«На днях (0.125) в книжные(0.25) магазины(0.5) Бразилии(1) поступила книга (1) писателя(0.5) Фернандо(0.25) Мораиса(0.125) «Маг(0.06)».»
Частота встречаемости.

Зачем мы это делали? Представьте себе огромную таблицу, из слов русского языка, на определенную тему:

По горизонтали и вертикали идут слова. На пересечении слов мы проставляем баллы. Если слово «поступила» встречается рядом с: днях, книжные, магазины и т.д., то скорее всего оно подходит по контексту. За это мы ставим баллы. В этом и вся соль. Мы определяем связь слов.
При обращении к базе синонимов мы получаем их список. Потом каждое слово из списка проверяется по таблице встречаемости, со словами из предложения. Что мы имеем в результате, в идеале?
Устроилась 0
Зачислилась 1
Определилась 0
Попала 5.3 (может быть любое число)
Приткнулась 0

Подставляем слово «попала», и кричим «ура!».
Тут все дело упирается в подбор исходного материала, статейной базы. Надо научить комп, чтобы заполнить базу. Зато в будущем, можно использовать и пополнять ее.
Как вариант такой базы, XML запросы для поисковиков, у яндекса есть такая возможность. Можете посмотреть XML-игры. Они работают по схожему принципу. Вводите название предмета, а в результате получаете его свойство, например цвет. Опять же все основано на частоте встречаемости двух слов в контексте. Минус этого варианта в его «муссорности» и отсутствии единой тематики.
Старался объяснить, как можно доходчивее. Интересно услышать ваше мнение. Что вы скажете по данному методу? Стоит ли браться за реализацию?
Автор: Дробенков Алексей

Оставить комментарий

  • Обязательные поля обозначены *.

If you have trouble reading the code, click on the code itself to generate a new random code.
Security Code:
 
JFNull
Comment
http://jf0.ru/
08, 2009, 09:42:26
За реализацию НОРМАЛЬНОГО синонимайзера стоит браться однозначно. Продукт будет безусловно востребован. Другое дело - объём работы зашкаливающий и в том виде, который представлен в посте, наверное, бесперспективный
Дмитрий
Comment
www.dahka.ru
12, 2009, 17:51:00
Вот тоже нашол неплохой скрипт синонимайзера который написан на php, не использует базы данных, база синонимов находится в php файле и доступна для редактировании. При обработке теста скрипту не важно написано слово с большой буквы или с маленькой, стоит ли после или перед словом знак препинания. В скрипте предусмотрена функция добавления в базу слов и словосочетаний неограниченной длинны даже со знаками препинания. Вся база синонимов скрипта уникальна и собранна в ручную с учетом морфологии, в ней находится более 91 000 слов и словосочетаний, благодаря этому на выходе получатся на 80% - 90% читаемый текст без искажения смысла. Уникальной особенностью данного скрипта является то, что при размере базы почти в 100 000 слов и соответственно столько же синонимов к ним, скрипт обрабатывает текст за доли секунд, благодаря чему данный скрипт можно использовать как функцию и получать на выходе уже синонимизированный текст. Пример работы скрипта: http://www.phpsin.ru/sinonim/
за этот скрипт просят денег но походу он стоит этого.
Seobucks
Comment
http://seobucks.ru/
10, 2009, 21:26:03
При таком подходе текст всегда на выходе будет одинаковый. Нельзя будет один и тот же текст представить по-разному. И уникализация текста будет очень мала за счет того, что куча синонимов тупо отвалятся.
У меня уже была подобная реализация, только вместо Яндекса, я использовал запросы к Рамблеру. Текст получался осмысленным, но эффект не впечатлил.
Владимир
Comment
www.forexboom.ru
07, 2009, 02:06:50
Пожалуйста, все-таки посоветуйте действительно полезный и удобный синонимайзер.
mobile
Comment
http://mobilewallpapers.narod.ru
27, 2009, 14:08:24
Интересная идея, подскажите качественную реализацию, где можно скачать?
tanir23
Comment
http://webfilelink.narod.ru
13, 2009, 13:27:50
нужна помощь в оценке моего сининимайзера http://webfilelink.narod.ru/donwold.htm
Сергей
Comment
new comment
05, 2008, 09:43:54
Идея бальной системы, достаточна интересна, однако имхо будет теряться образность в описаниях.
ЕСли еще добавить проблему сленга и технических терминов, то оценка станет вообще сложна для реализации.
hz
Comment
new comment
29, 2008, 07:09:55
поставь капчу, етоже пиздец
Вася
Comment
new comment
06, 2008, 14:57:55
Есть один минус - при таком подходе нет случайного фактора, вероятность выбора слова укладывается в рамки статистической закономерности, а это значит, что у всех текстов, которые выдаст этот софт, будет абсолютно одинаковый "среднестатистический" стиль. Хотя для кого то, это может и преимущество.

Имхо, для разных тематик софтину приедется "обучать" отдельно.
Приколист
Comment
new comment
06, 2008, 14:54:57
Для формирования приличной, качественной базы слов с цифрами понадобятся охрененные ресурсы или тупо время.
План
Comment
new comment
06, 2008, 14:41:20
Идея очень хорошая, только обратите внимание, что для разных текстов, точнее разных авторов исходного материала числа будут довольно сильно отличаться. Возможно для "обучения" понадобится очень большой текст, собранный из множества разных источников.
Синонимайзер
Comment
new comment
05, 2008, 19:12:07
Очень интересно, однако способ далеко не однозначен. Подход интересный. А что если в качестве альтернативы просто заменять словосочетания или целые предложения. Так проще будет :)
Colonel Fizz
Comment
new comment
20, 2008, 11:33:37
Идея про таблицу хороша, но есть ньюанс ;)

Возьмем к примеру количество слов 1 млн, для них будет матрица миллион на миллион получается триллион ;) причем 90% в ней будут нули. А если еще и всю морфологию обрабатывать - вообще ужас. Как и где этот терабайт хранить?

Есть другие, более эффективные методы. Результат работы в автоматическом режиме привожу здесь http://www.nulled.ws/showpost.php?p=559200&postcount=400
Shadx
Comment
new comment
01, 2008, 19:40:15
Идея реализуема, тока базу(читай таблицу) нада дорабатывать, так как при полном словаре, получится дикий хлам в базе данных.
По словам в предложении можно определить тематичность, исходя из встречаимости и набора слов в предложении и соответственно выставить определенный бал поподания в тематику. После этого, соответственно брать таблицу синонимов с этой тематикой. Итого получаем по два прохода в каждом предложении. Первый проход, определяем тематику, второй проход, заменяем знакомые слова на синонимы. Если при этом прикрутить стимер, то в полне неплохо получится)))
Anshir
Comment
new comment
11, 2008, 10:02:59
Вроде идею понял боле-менее, тоже попробую реализовать...
Anshir
Comment
new comment
11, 2008, 09:55:08
А можно в табличке писать не слово1, слово2, а конкретные слова из вашего примера? И результирующие баллы тоже проставить реальные? Пока сложно разобраться..
Дробенков Алексей
Comment
new comment
05, 2008, 20:21:57
Евгений,пиши о результатах, всем будет интересно.
Евгений
Comment
new comment
05, 2008, 16:08:40
Интересная идея.
Стоит попробовать погонять алгоритм на небольшой, но тематической базе...

А я пока с морфологией балуюсь, пробую "метаправила" создавать... :)
Дробенков Алексей
Comment
new comment
05, 2008, 15:39:48
Согласен, что идея еще сырая. Но если появится время, то займусь реализацией. Может чего и выйдет. Если есть интересные ссылки по теме, то кидайте в комменты, буду очень благодарен.

SeoGen и Владимир, учту, использовать устойчивые выражения.

Владимир, я не слышал про такой метод. Если всетаки заглянешь на блог, отпишись.

Вирусное СЕО, на 100% не осилит, но улучшит качество синонимизации это точно.
Вирусное СЕО
Comment
new comment
05, 2008, 04:51:06
Сильный ход мысли :)

Насколько я понял, основная мысль здесь упирается в определение тематики и синонимизацию слов исходя уже из соответствующей тематики тому слову, которое синонимизирует...

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

Можно конечно пробовать. Попытка не пытка, как говорится.
Toxic_Cat
Comment
new comment
05, 2008, 01:38:51
В общем идея понравилась, но во первых нужны тонны исходного текста для анализа.
Во вторых объем данных будет огромен, я даже незнаю каким фигом их хранить и обрабатывать перед генерацией :)

Плюс тематичность теста нужно соблюдать.
SeoGen
Comment
new comment
05, 2008, 00:27:02
Идея хорошая, подобного не встречал также. Но надо её доработать и сравнить с уже существующим решением. А на данный момент делают так:
отдельно хранятся базы синонимов и устойчивых выражений. Сначала мы разбиваем текст и ищем устойчивые выражения вроде "железная дорога", "xml запросы" и т.д. чтобы не синонимизировать и не рассматривать их вообще в этом процессе, выражения должны остаться неизменными.
В вашем случае получается что-то вроде цепи Маркова, но это на первый взгляд.
Спасибо за идею, надо обдумать.
Владимир
Comment
new comment
04, 2008, 17:49:43
В MS-Word синонимайзер отдает правильные словоформы, плюс еще необходим проход по словосочетаниям, а не по одному слову. Даже в ручном режиме текст все равно корежется. Тут скорее надо вести речь о генирации псевдочитаемогг текста на основе имеющегося: типа алгоритма приемов журналистики. А почему нет подписки по почте на комментарии, а то я и не зайду сюда для ответа