LINUX.ORG.RU

Как замутить генерацию предложений из слов?

 


1

2

У меня есть база состоящая из определенных слов. Если проще то мне нужна утилита которая сможет составлять мне предложения, из предоставленных мною слов. Рандомные, даже если они не существуют.

Допустим:

did
been
now
look
back
my
no
your
which
about
time
down
into
who
can
know
if
just
their
get
over

Как или с помощью чего можно сделать чтобы все слова сгенерировались во все возможные комбинации?

Примерно вот так:

over know into
time if now
get over
their whoknow time did
и так далее? и все возможные комбинации. тому кто поможет готов выслать $ вознаграждение!



Последнее исправление: Proxerboss (всего исправлений: 2)
In [1]: from itertools import permutations

In [2]: dick = ['my', 'dick', 'is', 'big']

In [3]: list(map(" ".join, permutations(dick)))
Out[4]:
['my dick is big',
 'my dick big is',
 'my is dick big',
 'my is big dick',
 'my big dick is',
 'my big is dick',
 'dick my is big',
 'dick my big is',
 'dick is my big',
 'dick is big my',
 'dick big my is',
 'dick big is my',
 'is my dick big',
 'is my big dick',
 'is dick my big',
 'is dick big my',
 'is big my dick',
 'is big dick my',
 'big my dick is',
 'big my is dick',
 'big dick my is',
 'big dick is my',
 'big is my dick',
 'big is dick my']
zolden ★★★★★
()
Ответ на: комментарий от zolden

а если допустим слов тысяча будет? как сделать чтобы можно было указать путь до текстового документа со словами?

Proxerboss
() автор топика
Ответ на: комментарий от zolden

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

могу ли я вам выслать вознаграждение на биткоин?

Proxerboss
() автор топика
Ответ на: комментарий от bvn13

а что не так? подвох) плачу за помощь вот и все

Proxerboss
() автор топика
Ответ на: комментарий от bvn13

много людей готовы отправить вознаграждение за помощь здесь?

Proxerboss
() автор топика
Ответ на: комментарий от Proxerboss

Это python, писать можно в любом текстовом редакторе.
Скопируйте вышеупомянутые строки в файл dick.py
Дальше вводите

python dick.py > result.txt

zolden ★★★★★
()
Ответ на: комментарий от Proxerboss

Циферки в скобочках убери, это так ipython форматирует... И надо будет поменять чтение из файла, а то переводы строк тоже учтутся

dick = open("filename.txt").readlines()
на
dick = open("filename.txt").read().split()

zolden ★★★★★
()
Последнее исправление: zolden (всего исправлений: 1)
Ответ на: комментарий от anonymous

ненадолго*

Тем более, что раздел этот не для рыбоедов.

anonymous
()
Ответ на: комментарий от Proxerboss

Я имел в виду, что с такими запросами надо было тред создавать в разделе Job. А тут постят те, кто неросредственно разработкой занимается. Вот если бы ты книгу по питону попросил или во время написания скрипта у тебя возникли трудности, тогда да, а так...

anonymous
()

$i = минимальное число $a = максимальное число

perl -nle 'BEGIN{$i = 1; $a = 3}; @d = (@d, $_); }{ $f = sub { print $_[0] if ($_[1] >= $i); return if($_[1] > $a); $f->((join " ", $_[0], $_), $_[1] + 1) for @d; }; $f->($_, 0);' /tmp/words
anonymous
()

случайные цепи маркова.

или просто перестановки, если результат не обязан быть осмысленным

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

Ему нужны все возможные комбинации, не взлетит твой вариант

somequest1
()

Рандомные

Скрипт. Скопируй его в текстовый редактор и сохрани как файл с расширением .py, например «make_me_laugh.py». Разреши выполнение файла с помощью chomd +x make_me_laugh.py или файлового менеджера и запускай из консоли:

$ ./make_me_laugh.py
Usage: 
    ./make_me_laugh.py <dictionary.txt> <count> [len_from [len_to]] [-u|-w]

count       can be negative or "inf" which means infinite
len_from    defaults to 3, minimum sentence length
len_to      defaults to 12, maximum sentence length

-u          each word in a sentence will be unique.
-w          weights of words are extracted from dictionary file


$ ./make_me_laugh.py dict_w.txt 10 -w
Thing the the need to the one in quality may.
That by man in where.
As culture lot.
Test she make of and prove of and of so do.
Be then night.

dict_w.txt — 1000 наиболее популярных слов с частотами их употребления из корпуса современного американского английского языка: http://www.wordfrequency.info/free.asp?s=y

anonymous
()

Как или с помощью чего можно сделать чтобы все слова сгенерировались во все возможные комбинации?

Слова в предложении могут повторяться? Тогда множество комбинаций бесконечно.

beroal
()
Ответ на: комментарий от Proxerboss

После вопроса про редактор я как-то рещко засомневался в том, что у тебя получится ;)

А вообще надо обратиться к нашим депутатам, они, судя по некоторым законопроектам, уже вполне себе написали такой генератор ;)

Zhbert ★★★★★
()

Начать с того, что артикли, предлоги и прочее имеют свое место в предложении. Это придется учитывать, как и прочие моменты. Иначе белиберда получается, которая любому непонятна.

poshat ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.