?

Log in

No account? Create an account

Previous Entry | Next Entry

Палиндрогены

По просьбе willich занимался генерацией списка слов, которые могут,
в принципе, быть применены в тексте палиндрома. Такие слова я буду
назвать палиндрогенными или палиндрогенами.
Для того, чтобы построить список таких
слов нужно построить список ВСЕХ палиндромов и из них взять слова.
Для начала мы ограничимся одним шагом.

Определение палиндрогена (первого порядка):

PG = [b,s1,s2,...sN,e],

где s1-sN - реверсированные слова,
то есть rev(s1), rev(s2),... rev(sN) - являются
полными словами,

rev(e) = end(w1), то есть реверсированная строка e является
концом какого-то слова,

rev(b) = beg(w2), то есть реверсированная строка b является
началом какого-то слова.

Если b и e пустые, то
PG s1 s2 ... sN это палиндром типа (1,N).

Палиндрогенами так же будут все слова rev(s1), rev(s2),... rev(sN).

При дальнейшем 'расширении' вполне возможно палиндром не сложится.

Алгоритм поиска таких палиндрогенов (и заодно палидромов (1,N)) просто - рекурсия.

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

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

Для проверки на принадлежность словарю, и проверке на начало и конец слова,
предварительно строятся индексы ('map' на C++).

На словаре Зализняка (вариант Хагена) - более 4 миллионов словоформ,
программа работает около 8 минут.

Для обратной раскладки слова, то есть для [rev(e),rev(sN)...rev(s1),rev(b)]
строятся синтаксические ключи, по которым в дальнейшем или сразу можно
отфильтровывать бессмысленные варианты. То есть варианты, не соответствующие
частям правильных предложений, например, где идут подряд несколько предлогов
и т.д. В качестве синтаксического ключа строится строка кодов частей речи слов
раскладки палиндрогена, разделенных символом '_'
(без родов, чисел, падежей и т.д - хотя это можно легко добавить,
если кому понадобится, впрочем это каждый может сделать и сам).

После построения палиндрогенов первого порядка, можно процесс повторить,
но в качестве словаря для проверки на начало и конец слов использовать не
весь словарь, а только словарь палиндрогенов первого порядка.
Сделав несколько подобных циклов можно, наверное, хорошо приблизиться к словарю
'истинных' палиндрогенов:
Pg(N+1) = PalGen(Pg(N)), если Pg(N+1) = Pg(N) (неподвижная точка отображения PalGen), то это и есть множество палиндрогенов.

combiproc.exe - программа (требуются также DLL, которые есть в архиве-дистрибутиве).
hagen.txt - словарь Хагена (Зализняка), в моей кодировке.
palfilter.txt - файл синтаксических фильтров (в качестве фильтров
могут использоваться подстроки синтаксических ключей - примеры - palsyntax.txt).
(в дистрибутиве это файл приведен только для иллюстрации - каждому
нужно строить свой). Если файл отсутствует, то фильтрация не производится.
palgen.bat - командный файл запуска программы.
Просто разархивируем дистрибутив в любую директорию (делаем ее текущей)
и запускаем palgen.bat

Выходные файлы:

palwords.txt - палиндрогены с вариантами раскладки для каждого (около миллиона).
palindroms1N.txt - палиндромы типа (1,N), с указанием N и синтаксического ключа.
palsyntax.txt - все варианты синтаксических ключей,
с примерами палиндрогенов (можно смотреть и выбирать из них фильтры).

Архив с программой находится здесь.
https://drive.google.com/open?id=0Bx5i8aQxfrleZU5XZ0E4Q3g3X0E

Comments

( 28 comments — Leave a comment )
willich
Jun. 3rd, 2016 08:14 am (UTC)
Палиндрогены
1. СПАСИБО, посмотрим
2. описание, в первом приближении - очень мудреное, нельзя ли попроще, с конкретными примерами?
marinol
Jun. 3rd, 2016 08:57 am (UTC)
Re: Палиндрогены
в этой версии позабыл складывать в список части
rev(s1), rev(s2),... rev(sN).
позже добавлю.
и примеры.

marinol
Jun. 5th, 2016 06:20 pm (UTC)
Re: Палиндрогены
Сейчас готовлю новую версию, где в вариантах раскладки
палиндрогенов явно будут выделены носовые и хвостовые части в качестве индекса, чтобы потом можно в рекурсии-цикле быстро их 'склеивать' по индексу в составные палиндрогены (или палиндромы, при пустых носах и хвостах).
В принципе они и в прошлой версии есть, но явно не обозначены.
willich
Jun. 6th, 2016 09:16 pm (UTC)
Re: Палиндрогены
1. да, это больше, чем можно было ожидать! Вы практически вплотную подошли к синтезу палиндромов по синтаксическим схемам. скорость - фантастическая!
2. мало того, что полный список палиндрогенов (термин представляется удачным) так еще и все варианты их реверсной разбивки (анализа), респект!
3. я лично для себя при реверсном анализе начала или концы слов помечаю дефисом "-", например у Вас для "болван" всего 3 варианта:
-н а в лоб ("Болван"? А в лоб?)
на в лоб (На в лоб, болван!)
-нав лоб, (Болван зуб еб - узнав лоб.)
а можно добавить еще 4:
-н а в лоб- (Баран, а в лобуде лев ел еду, болван - араб!)
-на в лоб (Барана - в лоб, болван-араб?)
-на в лоб- (Барана в лобок овца - бац, в око болвана - раб! Ведь шина в лоб - оболванишь дев!)
-нав лоб- (Кот, ужинав лобио - и болван и жуток!).
4. короткое слово в реверсе м.б. не разрезано на части, а полностью входить внутрь реверса (РР конфетка или носохвостик): кот (ис)ток(и), тогда это надо записать так: -ток-, а для поиска с регулярными выражениями: *ток*.
5. надо ли все эти варианты хранить в словаре или м.б. синтезировать на лету при запросе конкретного слова, тем более, что это очень быстро?
6. то, что Вы опять называете "палиндромом" без носика и хвостика на самом деле всего лишь часть РР челюсть: болван // на в лоб (1:3). это опять информационный шум: палиндром - это комбинация слов, имеющих СТРУКТУРУ SVO(W), все что не имеет такой структуры - часть палиндрома, незаконченный палиндром, неполный палиндром, заготовка для палиндрома, "болванка", но только не палиндром, ОК? почему такое внимание к челюстям, они, право, того не заслуживают! м.б. это как любовь к круглым числам: 10, 100, 1000?
7. после работы программы получился файл размером 463 Мв, который я не могу открыть даже вордом - почему-то выдает ошибку! вообще-то нужен был просто суженный список слов с оригинальными пометами Хагена, чтобы не искать по всему 5-миллионному словарю при составлении палиндропар: можно ли выложить именно такой список? самому мне его никак не составить!
8. как бы еще более "сузить" - убрав экзотические, узкоспециальные, малоупотребляемые слова? м.б. сравнить его со списком общеупотребимых слов, но вот есть ли он в парадигме?
9. Ваши синтаксические пометы хороши и понятны, но для синтеза (а для чего же они еще?) не совсем достаточны, например для существительных очень важно одушевленный/неодушевленный, чтобы знать кто Субъект (Актор), а кто Объект; для глаголов - переходный/непереходный: переходный требует обязательного Объекта (и без него предложение неполное),например, Я ел (КОГО/ЧТО?), млея => Я ел МУХУ (МЯСО ЛОСЯ), млея; непереходный содержит [Объект] в себе синкретически: Я выл(=ДЕЛАЛ(V) ВОЙ(O), плывя(=ДЕЛАЛ(V) ПЛАВАНЬЕ(O))); для глаголов - лицо: например, Увижу бабу - живу! 1-е лицо глаголов увижу и живу однозначно восстанавливает эллиптический Субъект [Я], поэтому такое предложение все-равно будет полным! ну, при синтезе еще можно будет посмотреть как улучшить пометы...
10. м.б. при реверсном анализе слова сначала отдавать предпочтение все-таки не служебным коротким словам (междометия, предлоги, союзы, частицы), особенно если они идут подряд, а более длинным, пусть и односложным, но знаменательным словам (имена, атрибуты, глаголы, местоимения и т.п.), например, вора зад > во раз ад > в о Ра за д-? или Вы хотите все-таки невозможные схемы?

Edited at 2016-06-07 12:25 am (UTC)
marinol
Jun. 7th, 2016 04:34 pm (UTC)
Re: Палиндрогены
3. да, стоит помечать обрывки слов. В ключах я их помечал, но потом убрал. Поставлю обратно.
5. Сгенерированный файл может быть полезен тому, кто будет дальше вести обработку собственной программой. Ну а так конечно, мне можно просто генерить, когда потребуется (при развитии программы).
6. В любом случае это, по определению Википедии, 'палиндром'. Почему палиндромная пара может не иметь смысла, а палиндром должен иметь смысл - непонятно. Если это просто 'по определению', так опубликуйте свои определения в виде статьи-поста, тогда и будем дальше разбираться с этим. А идти по третьему кругу в комментариях к постам не хочется - не на что ссылаться. Всякое развитие требует промежуточных фиксаций.
7. Просто список я уже выдаю, выложу новую версию. А 'смотреть' такие файлы можно только вьюером. 'Редактировать' же только программой (не редактором).
8. Да ради бога, сделайте список либо 'малоупотребляемых слов', либо наоборот. Я смогу и то и другое использовать.
9. Я уже писал, могу выдавать полную характеристику слов (одушевленность там присутствует).
Единственно что, кодировку частей речи и других характеристик я составил сам. Но существует уже общепринятые, в словаре открытого корпуса русского языка (кстати надо его сравнить с тем что есть у меня), а также в теории и практике 'универсальных зависимостей'. Я их не сравнивал, но если кодировки одинаковые, то я возьму их за основу. Если разные, то нужно подумать.
10. Либо я не понял, либо это касается фильтрации. А так - какая разница в каком порядке (предпочтении) их обрабатывать, если все равно нужно обрабатывать их все (чтобы отфильтровать). Пока нет никаких проблем со временем обработки, то можно фильтр накладывать на конечный результат целиком, а не на промежуточные тексты.
marinol
Jun. 7th, 2016 04:39 pm (UTC)
Re: Палиндрогены
Как прикольный эксперимент, можно в качестве исходного словаря использовать словарь слов, собранных из всех существующих палиндромов. И построить 'замыкание' этого множества палиндромов (ограниченного размера) - то есть вывести все возможные вариации, ну с учетом ограничений на синтаксическую структуру. Для начала вообще можно задать только 'очень правильные' предложения. Посмотреть, что выдаст программа.
willich
Jun. 7th, 2016 06:40 pm (UTC)
Re: Палиндрогены
1. отлично, к этому все и идет! можно для начала построить все возможные "аргентинки" или тридромы типа Аргентина манит негра (SVO): http://willich.livejournal.com/441361.html?nc=35#comments особенно комменты прочитайте - там много теории.
2. а дальше - квадромы (SVO(W)), где W - второстепенный член.
3. но проще всего, наверное, строить Дативы: Толпе - плот; Ноге - бег; Коту - уток Руке - кур; Бабе - плоть, толпе - баб!; Руке - баб, бабе - кур!
willich
Jun. 7th, 2016 07:28 pm (UTC)
Re: Палиндрогены
так, Ноге - бег - не то, тогда так: Ноте - бетон, ну и т.п.
willich
Jun. 7th, 2016 06:48 pm (UTC)
Re: Палиндрогены
такой список у Вас уже есть, там только нужны синтаксические и семантические пометы и добавить столбцы, о которых я уже писал, кол-во букв, например. подозреваю, что он достаточно полный для палиндрогенов и если еще сузить миллионный список на малоупотребительные и синтаксически невозможные, то он вполне к нему может приблизится.
marinol
Jun. 7th, 2016 05:05 pm (UTC)
Re: Палиндрогены
Или еще эксперимент.
Взять простую структуру - 'подлежащее сказуемое дополнение' (с согласованием ессно, то есть фактически это будет приличное множество структур) и построить вообще ВСЕ палиндромы такой структуры на основе полного словаря.
willich
Apr. 26th, 2017 04:09 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
ОК, Олег!
1. сегодня с удивлением нашел в RSS и скачал Вашу книгу МОИ ФРАЗЫ - АФОРИЗМЫ! гениально! поздравляю! чего молчали? есть ли бумажный вариант? думаю, многие фразы - должны выйти в народ. им надо "приделать ноги"... во-первых, это красиво! :))
2. я вообще-то сторонник (и это меня в первую очередь увлекает) "актуальной палиндромии" (в данном случае - анаграммии) - палиндромных (шире - вообще комбинаторных) диалогов или дуэлей, если хотите (жалко Термитник сдох, там этого было, а что?), но Ваш рафинированный и ректифицированный сборник с удовольствием почитаю!
3. есть просьба, если возможно: 1) сделать выборку из словаря Хагена всех Субъектов - существительных в Именительном падаже ед. и мн. числа со всеми пометами; 2) сделать выборку из словаря Хагена всех Объектов - существительных в Винительном падаже ед. и мн. числа со всеми пометами; 3) сделать выборку из словаря Хагена всех Глаголов со всеми пометами, исключив все инфинитивы (инф) и непереходные глаголы (непер) - пытаюсь построить все возможные Аргентинки (правильные SVO) + Змеедки + Руконожки. а то у меня проблемы с производительностью компа и даже словарь Хагена полностью открыть в Ехеле не могу - не помещается, сорри :((
4. было бы здорово, если бы Вы предложили Свой список, для сравнения...
marinol
Apr. 27th, 2017 01:06 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
1. Как же я 'молчал', если Вы его в ленте увидели ))
Бумажный вариант этого издания будет летом.
Но есть предыдущий, не такой рафинированный, бумажный, но без картинок. Отпечатанный в качестве первого блина. Информация о нем, кстати, в ЖЖ тоже была.
Если Вы или кто-то из Ваших друзей будете в Москве, то на Красных Воротах можете зайти и получить его в подарок. Телефон я дам.

2. Как гласит название сборника (тоже анаграмма), там отобраны анаграммы в стиле афоризмов, анаграммы, к которым не прикопаешься ни с какой стороны.
Несколько сотен самых самых анаграмм.

3. Выборки сделаю.
willich
Apr. 27th, 2017 03:31 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
1. спасибо!
2. сорри, не читаю френдленту уже давно, только периодически делаю поиск по блогам по слову "палиндром", мог и пропустить (просто я, если что-то важное, стараюсь лично запостить месседж на страничке реципиента, чтобы дошло наверняка :))
3. что значит "не прикопаешься"? это все просто здорово, здорово, здорово! мне вообще интересно: вот Вы фиксите анаграммы программно, но потом же это все надо организовать в текст, вряд ли и это программно, надо ж посидеть, отобрать, скомпоновать, что-то оставить, что-то в утиль (представляю себе - какой зуд м.б. у "бумажного" или "умозрительного" анаграммиста при анаграммировании слова АФОРИЗМЫ, когда нащупано слово ФРАЗЫ и тут неожиданно закрывается гештальт словом МОИ и все это складывается в правильный текст: МОИ ФРАЗЫ - АФОРИЗМЫ!, и оказывается у них "сакральная" анаграммная (буквенная) неразрывная связь, в противоположность, скажем, МОИ ФРАЗЫ - КАЛАМБУРЫ, или, например, ШУТКИ, что не менее прикольно, но, увы, не анаграммно), так вот, можете приоткрыть завесу: как Вы компонуете и отбираете? особенно интересно, как формируете синтагмы?
marinol
Apr. 29th, 2017 09:44 am (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
Программа, пока, на данном этапе, лишь помогает мне
разбивать фразы на ряд слов. И группировать в удобном
для просмотра и зрительной фильтрации виде.

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

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

У меня есть алгоритм и программа последовательного формирования сколь угодно длинных анаграмм. Хотя я предпочитаю анаграммы средней длины.

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

Могу дать еще одну аналогию. 'Ручные' анаграммисты это музыканты, которые неплохо играют на пастушьей свирели. Обычно они играют
простые и скучные мелодии. Иногда бывают находки, редко.
Программное же создание анаграмм - это использование высокотехнологичного саксофона или тромбона. На нём можно сыграть любую симфонию. Его можно совершенствовать - это часть создания текстов. Но и для использования нужен солидный опыт - немного другой правда.
willich
Apr. 29th, 2017 03:33 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
1. очень интересно, хотя и туманно :))
2. э, кескесе "За это время я проверил процентов 30% из своей книги 'крылатых фраз' и устойчивых оборотов."? проверил где, как, чем, что? из какой книги: "Мои фразы - афоризмы" или книги Ехель?
3. ну, в принципе, синтаксическая матрица SVO(W) конечна, и синтагмы там: управление, согласование, примыкание - вроде все пофиксены, так что можно, в общем-то, алгоритмизировать...
4. ИМХО, проблема всех комбинаторных жанров: палиндром, анаграмма, омограмма, что еще?, в "попадании" в смысл и синтаксис, а не в формировании новых смыслов. через какое-то время эта банальность начинает набивать оскомину, особенно у тех, кто в теме. мостик к новому, опять же ИМХО, новословы и метафоры, м.б. ритм, рифма, а? хотя, черт возьми, двойной набор букв - это уже повтор, как основной элемент поэзии! поэтому комби-текст всегда нитересен уже сам по себе, несмотря на банальность высказывания... мне, например, палиндромы за многие годы никак не приедаются как-то! :)
5. ну и Вы не очень-то конкретны, никогда не приводите примеров...
marinol
Apr. 29th, 2017 04:33 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
что тут туманного?
программа делит на слова, предлагает (ВСЕ) варианты.
все остальное - синтаксис, смысл -
делает (отбирает) автор-человек при просмотре.
willich
May. 19th, 2017 05:39 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
ОК, Олег! боюсь спросить: как там выборка Субъект, переходной Глагол, Объект?
marinol
May. 19th, 2017 06:49 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
marinol
May. 23rd, 2017 03:58 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
посмотрели?
willich
Jun. 2nd, 2017 05:15 pm (UTC)
Re: Палиндрогены 'подлежащее сказуемое дополнение'
ОК, Олег! сорри, файл скачал конечно. забыл отзвониться, сорри. сейчас обрабатываю, но маркировка там Ваша, хорошо бы оригинальную, хагеновскую... не хотите ли Вы пофиксить все возможные аргентинки со своей стороны, чтобы потом сравнить списки?
willich
Jun. 7th, 2016 06:06 pm (UTC)
Re: Палиндрогены
6. во-первых, википедию - пишут википедики! :) во-вторых если называть палиндромом все что шевелится (т.е. симметричное), то как же тогда называть конечный результат, то к чему мы стремимся: предложение-палиндром, текст-палиндром, палиндром в широком смысле v.s. палиндром в узком смысле? предложите свое название! термин палиндром уже давно существует для обозначения жанра худлита. я не могу пока сформулировать канон, но очевидно, что он не сводится ни к афоризму, парадоксу, паремии, лозунгу, императиву, одностишию, а имеет свою, м.б. трудноуловимую специфику. но если мы находимся внутри системы "палиндром" и вообще не рассматриваем несимметричные структуры, то к чему нам вообще само слово "палиндром"? РР - часть палиндрома, это способ взаимодействия аверса и реверса в границах слов. в общем случае - это случайные слова и даже если они случайно образуют синтагму, то в процессе построения палиндрома, как законченного осмысленного предложения, они могут далеко разойтись др. с другом в процессе составления матрешки и образовать другие синтагмы со словами из других РР. Палиндром в широком смысле (википедии) включает в себя все симметричные относительно центра структуры, как осмысленные, структурированные (палиндром в узком смысле, как жанр малой формы худлита) так и бессмысленные, неструктурированные ("заготовки" с точки зрения палиндрома в узком смысле). Вас все эти узкие/широкие смыслы еще не задолбали? особенно когда в качестве худлита печатаются эти самые "заготовки"... думаю, что незачем лодить лишние сущности!
7. можно по-подробнее: каким вивером смотреть, какой прогой редить?
8. ну, это был вопрос: есть ли словарь общеупотребимых слов РЯ чтобы с ним сравнить этот миллионный список и поудалять слова, отсутствующие?
9. да, в корпусе РЯ отличаются, я по-моему Вам даже ссылку давал на их пометы. о "теории и практике 'универсальных зависимостей'" - можно поподробнее?
10. т.е. сначала получать все варианты анализа реверса, а потом отфильтровывать синтаксически невозможные? ну тогда нужны "невозможные" комбинации синтаксических помет или, наоборот, список допустимых синтаксических структур. вот тут токо вопрос: чего больше (какой список длиннее)? это как-то напоминает список невозможных буквосочетаний в РЯ, а он-то как раз "уже" возможных! :)
marinol
Jun. 7th, 2016 07:34 pm (UTC)
Re: Палиндрогены
6. Пока не напишите и не опубликуете текст со своими определениями, я этот вопрос обсуждать не буду - это уже точно. Тем более, что слово палиндром применяется и в физике и в химии и в арифметике и еще черт те знает где.
И за ним застолблено только общее их всех свойство, которое легко проверяется.

7. внутренние вьюеры в Total Commander или FAR открывают
на просмотр без проблем хоть гигабайтные файлы. А программа для редактирования - я имел ввиду программное редактирование - какую напишете, читаете построчно и меняете как хотите.

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

9. http://universaldependencies.org/
willich
Jun. 8th, 2016 05:53 am (UTC)
Re: Палиндрогены
я имел в виду м.б. академический словарь общеупотребительной лексики, есть такой? или вручную почистить?
marinol
Jun. 7th, 2016 04:59 pm (UTC)
Re: Палиндрогены
Есть еще один 'теоретический' вопрос. Если эту программу применить несколько раз, подставляя полученный список пандрогенов как новый словарь для следующего шага (в новой версии он строится такой же формы как и исходный словарь), то на четвертом шаге этот список 'стабилизируется', то есть перестает изменяться. Возникает вопрос - действительно ли это уже список 'истинных' палиндрогенов. То есть, правда ли, что для любого слова из этого списка можно найти палиндром, в котором оно участвует.
Если рассматривать эту программу как отображение одного множества слов (изначально полный словарь) в другое множество, то я получил 'неподвижную точку' этого преобразования. Похоже, что это и есть множество истинных палиндрогенов. Попробую это доказать.
willich
Jun. 7th, 2016 07:26 pm (UTC)
Re: Палиндрогены
не совсем понимаю, по идее - должно быть достаточно 1-го шага чтобы получить все анализирующиеся в реверсе слова, почему же происходит уменьшение списка? кстати, Вы как-то фиксируете - на сколько он уменьшается? можете разжевать - почему? м.б. на примерах?
marinol
Jun. 7th, 2016 07:46 pm (UTC)
Re: Палиндрогены
Я делаю только по одному дополнительному шагу вправо и влево.
Поэтому нет никакой гарантии, что это приведет в дальнейшем
к палиндрому, и, соответственно, исходное слово может и не быть палиндрогеном. Поэтому я и назвал результат палиндрогенами первого порядка.
Допустим что к слову с конца цепляется только одно слово и оно не является палиндрогеном первого порядка (то есть выделенным на первом цикле). Соответственно на втором цикле оно будет исключено из списка, потому что на вход подан не весь словарь (там нет того слова что к нему цеплялось ранее).
Словарь уменьшается, но очень незначительно.
willich
Jun. 8th, 2016 05:30 am (UTC)
Re: Палиндрогены
1. "нет никакой гарантии, что это приведет в дальнейшем
к палиндрому" - вот Вы тут под палиндромом что имеете ввиду: законченное предложение SVO или просто любую симметричную последовательность согласно википедии?
2. "Допустим что к слову с конца цепляется только одно слово и оно не является палиндрогеном первого порядка" - это в реверсе: золотЦЕ -зо лот ЦЕ- => пип-ЕЦ? тут опять не совсем понятно: можете показать на конкретном примере?
3. "на втором цикле оно будет исключено из списка, потому что на вход подан не весь словарь (там нет того слова что к нему цеплялось ранее)" - не будет ли это ошибкой, "обеднением" словаря?
marinol
Jun. 8th, 2016 09:49 am (UTC)
Re: Палиндрогены
1. У меня нет другого строгого определения палиндрома (то, что пишут филологи не в счёт), кроме симметричного текста. Будет - будем обсуждать. На самом деле мне нужна конечно иерархия строгих определений. Но эа отсутствием таковой пока я использую в описании алгоритмов единственный термин, который используется многими в почти одинаковом смысле.

2. 'Золотце'. Допустим, что в словаре есть единственное слово кончающееся 'ец' и выглядит оно так 'ккккккппппппппец'. Ну вот блин есть такое (а слов 'пипец' и других нет в словаре). Тогда на первом шаге 'золотце' попадет в палиндрогены (к его 'ец' есть что прицепить). Но чтобы с ним составить палиндром, нужно же прицепить что-то потом и к 'ккккккппппппппец'. А вот дальше дело не идет. С таким словом не будет никакого палиндрома. А значит не будет палиндрома и с 'золотце'. Поэтому 'ккккккппппппппец' уже на первом шаге не попадёт в палиндрогены. А 'золотце' выскочит из палиндрогенов на втором шаге, так как на втором шаге его уже не к чему будет цеплять по 'ец'.
3. Будет ли обеднением выбрасывание слов с которыми заведомо невозможно построить палиндром, типа 'ккккккппппппппец' ?
На самом деле мне кажется что в том, что остается, еще много слов, которые не смогут участвовать в палиндромах. При этом суть этого простого пошагового алгоритма и связанной с ним проблемы остается одной и той же, независимо от того, применяю я синтаксический или семантический фильтр или не применяю. Будут ли на выходе просто симметричные тексты или это будут 'правильные' палиндромы.
( 28 comments — Leave a comment )

Latest Month

June 2018
S M T W T F S
     12
3456789
10111213141516
17181920212223
24252627282930
Powered by LiveJournal.com
Designed by Lilia Ahner