Как стать автором
Обновить

Поиск самых длинных цепочек слов в русском языке с помощью языка Wolfram Language (Mathematica)

Время на прочтение 6 мин
Количество просмотров 42K
Всего голосов 80: ↑77 и ↓3 +74
Комментарии 24

Комментарии 24

Сразу вспомнился испорченный телефон, хотя этот вариант более упорядочен.

А Вы не хотите проделать аналогичный вариант с искусственным языком, каким-нибудь Ифкуилем?
Если сообществу понравится такая идея или же развитие идеи для русского языка, то, думаю, вполне возможно.
Хм, все длиннейшие 6-буквенные цепочки содержат «печаль» и заканчиваются на «грусть»…
Это великолепно подмечено)
По какому алгоритму искались самые длинные цепочки? Очевидно, что диаметр компонента связности не обязательно равен длине максимальной цепочки, скорее надо искать длиннейший путь без самопересечений. Возможно, поэтому приведённая выше цепочка из 19 слов «прищеп-прицеп-...-приход-проход» не является максимальной в своей компоненте, её можно удлинить, добавив в конце «провод».
В свою очередь поиск длиннейшего пути без самопересечений является NP-сложной задачей, поскольку это обобщение NP-полной задачи о поиске Гамильтонова пути. Правда для графов с 1000 вершинами это наверняка не требует очень больших вычислений.
Можно конечно, если чуть поменять условия (добавить возможность повторения слов), найти «путь китайского почтальона», обходящий все вершины компонента связности, скажем, в рассматриваемом вами случае эта последовательность будет:

просос — прасол — просол — продол — продел — пробел — пробег — пробел — продел — придел — прицел — прицеп — прищеп — прицеп — прицел — придел — предел — продел — продол — прокол — прикол — прокол — прокоп — прокос — прокус — прикус — примус — примас — припас — припай — припой — пропой — пробой — пробор — прибор — призор — призёр — призор — прибор — прибой — пробой — пропой — припой — привой — привоз — провоз — провод — проход — приход — привод — провод — провоз — привоз — привод — привой — кривой — привой — прибой — припой — припай — припас — примас — примат — примаж — примат — примак — примас — примак — примаж — примас — примус — прикус — прикуп — прикус — прокус — крокус — прокус — прокос — прекос — прокос — профос — прокос — прокол — просол — просос — профос — пронос — прокос — просос — пронос — принос — присос

В данном случае ищутся периферийные вершины графа и пути между ними. Согласен, если усложнить алгоритм, можно в некоторых случаях немного удлиннить некоторые из полученных цепочек. Это может стать развитием данного поста.
Ну, повторения — это не интересно, так можно вообще бесконечные цепочки построить ;)
украл-...-выпил-...-в тюрьму засел-...-украл-...-выпил-…
Оказывается я русского языка почти и не знаю, столько совершенно незнакомых слов:)
Да, это проблема. Было бы полезно отфильтровать по частотному словарю. Например, оставить только те слова, которые встречаются в национальном корпусе не реже одного раза на миллион слов. Или на сто тысяч. Цепочки бы были не такие длинные, но более интересные.
НЛО прилетело и опубликовало эту надпись здесь
Интересная была бы новость. «Программист-злоумышленник вчера...»
НЛО прилетело и опубликовало эту надпись здесь
Можно ещё добавить в цепочку «капот» после «капор» — будет 41.
Можно после фидер, поставить редкое слово сидер и возможно удастся пойти ещё дальше.

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

Там ещё полно вариантов таких можно найти. -спора-свора-скора-, -куток-курок-кусок-, -ворона-корона-борона-, -тропка-трёпка-тряпка-…
Такая большая работа и потрачена впустую! Где решение первостепенной задачи: превращение мухи в слона? Разочарован.
МУХА–МУЛА–КУЛА–КИЛА–КИЛТ–КИОТ–КЛОТ–КЛОН-СЛОН
НЛО прилетело и опубликовало эту надпись здесь
светочувствительность — цветочувствительность
Как насчёт самого длинного цикла?
игрался когда-то с чем-то похожим, можно менять одну букву либо добавлять. сохранилась цепочка:
ёж -> уж -> буж -> бук -> бок -> блок -> блик -> бзик -> узик -> узник -> ушник -> пушник -> путник -> путаник -> путание -> питание -> писание -> списание -> спивание -> спаивание -> опаивание -> опаливание -> осаливание -> оскаливание -> оскабливание -> поскабливание -> проскабливание
Неисчерпаемые запасы для, простите, русского рэпа.
Можете подсказать, что это за слово?
image
Зарегистрируйтесь на Хабре , чтобы оставить комментарий